Zookeeper,Hbase 伪分布,集群搭建

时间:2022-02-18 19:43:20

工作中一般使用的都是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