工作中一般使用的都是zookeeper和Hbase的分布式集群.
more /etc/profile cd /usr/local zookeeper-3.4.5.tar.gz
zookeeper在安装部署的时候,节点数量必须是不少于三个的奇数个.
===================================
伪分布式搭建(3个节点):
伪分布式集群,就是在一台pc中,启动多个zookeeper的实例,完全分布式是指每台pc,启动一个zookeeper实例.
1.1 解压缩zookeeper-3.4.5.tar.gz
tar -zxvf zookeeper-3.4.5.tar.gz mv zookeeper-3.4.5 zookeeper cd zookeeper rm -rf docs/ rm -rf src/ cd conf/
1.2 执行命令:
cp zoo_sample.cfg zoo1.cfg more zoo1.cfg tickTime=2000:集群中,各个节点通信的单位叫tick,通信时间是2000毫秒. initLimit=10:10个tick,初始化同步时需要的时间. syncLimit=5:同步使用的时间. dataDir=/tmp/zookeeper:存储数据使用的一些目录. clientPort=2181: 客户端与zookeeper通信所使用的端口.
1.3 修改文件conf/zoo1.cfg,修改内容如下:
vi zoo1.cfg dataDir=/usr/local/zookeeper/zoo1/data/ clientPort=2181 #描述zookeeper三个节点之间的关系, #4:每个节点的标示. hadoop4:标示zookeeper所在的机器. server.1=hadoop4:2888:3888 server.2=hadoop4:2889:3889 server.3=hadoop4:2890:3890
1.4 执行命令:
cp zoo1.cfg zoo2.cfg
1.5 修改文件conf/zoo2.cfg,修改内容如下:
vi zoo2.cfg dataDir=/usr/local/zookeeper/zoo2/data/ clientPort=2182//客户端访问需要使用2182端口,三个不同放入节点,不能都是用同一个端口2181 server.1=hadoop4:2888:3888 server.2=hadoop4:2889:3889 server.3=hadoop4:2890:3890
1.6 修改文件conf/zoo2.cfg,修改内容如下:
vi zoo2.cfg dataDir=/usr/local/zookeeper/zoo2/data/ clientPort=2182//客户端访问需要使用2182端口,三个不同放入节点,不能都是用同一个端口2181 server.1=hadoop0:2888:3888 server.2=hadoop0:2889:3889 server.3=hadoop0:2890:3890 cp zoo1 .cfg zoo3.cfg vi zoo3.cfg dataDir=/usr/local/zookeeper/zoo3/data/ clientPort=2183//客户端访问需要使用2182端口,三个不同放入节点,不能都是用同一个端口2181 server.1=hadoop4:2888:3888 server.2=hadoop4:2889:3889 server.3=hadoop4:2890:3890
1.7 执行命令,产生存储数据的目录:
clear mkdir -p /usr/local/zookeeper/zoo1/data/ mkdir -p /usr/local/zookeeper/zoo2/data/ mkdir -p /usr/local/zookeeper/zoo3/data/
1.8 产生标记文件:
//myid 标注在这个节点下的数据是输入哪一个节点的. cd .. echo '1' > zoo1/data/myid echo '2' > zoo2/data/myid echo '3' > zoo3/data/myid
1.9 分别启动节点:
cd zookeeper bin/zkServer.sh start conf/zoo1.cfg bin/zkServer.sh start conf/zoo2.cfg bin/zkServer.sh start conf/zoo3.cfg
jps 查看节点,多出一个zookeeper进程:QuorumPeerMain
在一个节点上启动三个zookeeper进程,组成的节点就是zookeeper的伪分布.
zookeeper的操作:
bin/zkCli.sh //连接某一个节点 connect hadoop4:2182 //ls 显示zookeeper的目录结构 ls / ls /zookeeper/quota //create 创建节点 create /crxy hadoop //get 读取节点的值 get /crxy //set 修改节点的值 set /crxy 44444 zookeeper就是一个读写数据的,管理这些数据的时候,就是一个树状结构. zookeeper最大的特点:保证数据的同步.
ip修改和主机名绑定:
修改主机名: vi /etc/sysconfig/network 修改ip: vi /etc/sysconfig/network-scripts/ifcfg-Auto-eth1 删除硬件地址:HWADDR,UUID 修改ip地址:IPADDR 重启网络: service netwotk restart 查看ip地址: ifconfig 添加ip地址和主机名绑定: vi /etc/hosts
===================================
Hbase伪分布式搭建(只有一个节点,使用自己的zookeeper实例):
2.1 解压缩:
tar -zxvf hbase-0.94.13-security.tar.gz mv hbase-0.94.13-security.tar.gz hbase rm -rf *.gz cd hbase rm -rf docs/ rm -rf src/
2.2 编辑文件conf/hbase-env.sh,修改内容:
vi conf/hbase-env.sh export JAVA_HOME=/usr/local/jdk //告诉HBASE是否应该自己管理自己的zookeeper实例,true 表示zookeeper是hbase自己搭建的,与外部的没有关系. export HBASE_MANAGES_ZK=true
2.3 编辑文件conf/hbase-site.xml 修改内容:
vi conf/hbase-site.xml
<configuration> <!-- 存放数据的目录--> <property> <name>rootDir</name> <value>hdfs://hadoop4:9000/hbase</value> </property> <!--是否是分布式 --> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <!-- zookeeper存放的机器--> <property> <name>hbase.zookeeper.quorum</name> <value>hadoop4</value> </property> </configuration>
2.4 启动hbase之前,需要检查hadoop的hdfs是否正常运行的.
启动hbase
cd hbase
bin/start-hbase.sh
2.5 检查,执行jps命令,看到三个新的java进程,分别是:
HQuorumPeer,HMaster,HRegionServer
查看hdfs://hadoop4:60010
===================================
zookeeper集群部署:
1.在hadoop4上解压缩zookeeper-3.4.5.tar.gz
2.执行命令cp conf/zoo_sample.cfg conf/zoo.cfg
3.修改文件conf/zoo.cfg
dataDir=/usr/local/zookeeper/data clientPort=2181 server.1=hadoop4:2888:3888 server.2=hadoop5:2889:3889 server.3=hadoop6:2890:3890
4.执行命令,产生存储数据的目录
mkdir -p /usr/local/zookeeper/data
5.产生标记文件
echo '0' > /usr/local/zookeeper/data/myid
6.把hadoop4上的zookeeper复制到其他节点
scp -rq zookeeper hadoop5:/usr/local
scp -rq zookeeper hadoop6:/usr/local
7.在hadoop5,hadoop6上产生标记文件:
在hadoop5上执行 echo '1' > /usr/local/zookeeper/data/myid
在hadoop6上执行 echo '2' > /usr/local/zookeeper/data/myid
8.在三个节点分别执行bin/zkServer.sh start
9.检查(1)执行jps查看 (2)执行bin/zkServer.sh status
hbase关闭: hbase/bin/stop-hbase.sh 查看zookeeper的状态: bin/zkServer.sh ststus
===================================
搭建Hbase集群(hadoop4作为主节点,hadoop5和hadoop6作为从节点):
1.在hadoop4上 解压缩,
2.编辑文件conf/hbase-env.sh
export JAVA_HOME=/usr/local/jdk export HBASE_MANAGES_ZK=false
3.编辑文件conf/hbase-site.xml
<configuration> <!-- 存放数据的目录--> <property> <name>rootDir</name> <value>hdfs://hadoop4:9000/hbase</value> </property> <!--是否是分布式 --> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <!-- zookeeper存放的机器--> <property> <name>hbase.zookeeper.quorum</name> <value>hadoop4,hadoop5,hadoop6</value> </property> </configuration>
4.编辑文件conf/regionservers修改内容
hadoop5
hadoop6
5.复制hbase到其他节点,hadoop5,hadoop6
cd .. scp hbase hadoop5:/usr/local scp hbase hadoop6:/usr/local
6. 启动hbase之前,要检查hadoop的hdfs,zookeeper,集群是否正常运行.
hadoop4上执行bin/start-hbase.sh
7.检查.执行jps命令,在hadoop0看到看到一个新的进程,HMaster
查看http://hadoop4:60010