Linux系统中对ZooKeeper和Hbase的安装与配置

在hadoop集群中对ZooKeeper和Hbase的安装与配置

前置需要安装配置好hadoop
hadoop的安装与配置传送门

zookeeper的定义与作用

.zk的作用
分布协调服务,解决分布式服务在工作时产生的问题

1)竞态条件    //多个主机同时对一个文件进行操作,俗称抢资源
2)死锁:        //多个主机互相等待对方完成
3)不一致性:    //资源文件丢失或者主机宕机

hadoop的namenode的高可用,也就是在多namenode 情况下,对namenode 管理节点的active以及standby,具体是:

在zk启动的情况下再启动hadoophdfs文件系统时,zk会根据自身的领袖推选机制,建立一个activenamenode,此时该namenode节点的active存放在ActiveStandbyElectorLock结点(zk的结点存储位置),它是临时结点,也就是负责存储active状态下的节点地址.而zk中的另一个节点ActiveBreadCrumb是永久结点,它存储的active的节点信息,当zk会话关闭或者中断时,再次启动,通过领袖推选机制获取的active节点首先会与永久节点储存的信息做比较,如果此时的推选出来的active与永久结点上的信息一样,则不做任何操作,如果信息不一样,zk会首先将之前永久结点上存储的namenode的状态改为standby,然后再去修改新的active的节点信息,以完成正确分配active节点,避免脑裂(brain-split),即两个active节点状态的问题

Hbase的定义与作用

HBASE是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。
hbase是列式的分布式数据库

hbase依赖zookeeper
  1、 保存Hmaster的地址和backup-master地址
    hmaster:
      a) 管理HregionServer
      b) 做增删改查表的节点
      c) 管理HregionServer中的表分配
  2、 保存表-ROOT-的地址
    hbase默认的根表,检索表。
  3、 HRegionServer列表
    表的增删改查数据。
    和hdfs交互,存取数据

Hbase 和zookeeper的安装与配置

zookeeper 的安装与配置

1,选用版本zookeeper-3.4.6.tar.gz,可自行百度下载
2,解压到opt目录下并改名(三个机器都需要安装)

[root@hadoop122 software]# tar -zxf zookeeper-3.4.6.tar.gz -C /opt
[root@hadoop122 opt]# mv zookeeper-3.4.6 zookpr

3,在主机下配置conf文件
修改zoo.cfg文件
把原来文件夹中的zoo_sample.cfg改名为zoo.cfg

[root@hadoop102 opt]# cd zookpr/conf/
[root@hadoop102 conf]# mv zoo_sample.cfg zoo.cfg
[root@hadoop102 conf]# vi zoo.cfg

修改里面的内容,修改的地方已备注

# The number of milliseconds of each tick
tickTime=2000
maxClientCnxns=0                 //添加一行
# The number of ticks that the initial
# synchronization phase can take
initLimit=50                    //改成50
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/opt/hadoop/zookprdata       //设置一个地址存放data文件
# the port at which the clients will connect
clientPort=2181
server.1=hadoop121:2888:3888

server.2=hadoop122:2888:3888

server.3=hadoop123:2888:3888           //添加这三行,地址是集群的主机名

# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

把配置好的zoo.cfg文件复制给另外两台集群机器

scp zoo.cfg root@192.168.211.122:/opt/zookpr/conf/zoo.cfg

两个都复制过去之后记得要把之前的sample.cfg删除
4,新建目录,这个目录就是刚配置cfg文件中自己定的目录

mkdir /opt/hadoop/zookprdata
echo "1" > /opt/hadoop/zookprdata/myid

其他机器上也进行同样的操作,但把echo “1” 改成2和3
5,启动zookeeper(每台机器都需要启动)

cd /opt/oracle/zookeeper

./bin/zkServer.sh start

tail zookeeper.out

如果出现启动错误的问题,可以查看日志,看看是哪里出了问题,
6,关闭

./bin/zkServer.sh stop

Hbase的安装与配置

1,解压安装文件
选用hbase-1.2.0-cdh5.14.2.tar.gz文件,可以去百度下载

[root@hadoop102 opt]# tar -zxf hbase-1.2.0-cdh5.14.2.tar.gz
[root@hadoop102 opt]# mv hbase-1.2.0-cdh5.14.2 hbase

2,配置hbase-site.xml文件
在configuration中插入以下内容

<property>

<name>hbase.rootdir</name>

<value>hdfs://hadoop121:9000/hbase</value>            //这里添自己的主机名

<description>The directory shared by region servers.</description>

</property>

<property>

  <name>hbase.cluster.distributed</name>

  <value>true</value>

</property>

<property>

  <name>hbase.master.port</name>

  <value>60000</value>

</property>

<property>

  <name>hbase.zookeeper.quorum</name>

  <value>hadoop003,hadoop004,hadoop005</value>         //运行zookpr的机器,至少三台

</property>

<property>

  <name>hbase.regionserver.handler.count</name>

  <value>300</value>

</property>

<property>

  <name>hbase.hstore.blockingStoreFiles</name>

  <value>70</value>

</property>

<property>

  <name>zookeeper.session.timeout</name>

  <value>60000</value>

</property>

 

<property>

<name>hbase.regionserver.restart.on.zk.expire</name>

<value>true</value>

<description>

Zookeeper session expired will force regionserver exit.

Enable this will make the regionserver restart.

</description>

</property>

 

<property>

  <name>hbase.replication</name>

  <value>false</value>

</property>

 

 

<property>

  <name>hfile.block.cache.size</name>

  <value>0.4</value>

</property>

 

<property>

  <name>hbase.regionserver.global.memstore.upperLimit</name>

  <value>0.35</value>

</property>

 

<property>

  <name>hbase.hregion.memstore.block.multiplier</name>

  <value>8</value>

</property>

 

<property>

  <name>hbase.server.thread.wakefrequency</name>

  <value>100</value>

</property>

 

<property>

  <name>hbase.master.distributed.log.splitting</name>

  <value>false</value>

</property>

 

<property>

  <name>hbase.regionserver.hlog.splitlog.writer.threads</name>

  <value>3</value>

</property>

<property>

  <name>hbase.hstore.blockingStoreFiles</name>

  <value>20</value>

</property>

<property>

<name>hbase.hregion.memstore.flush.size</name>

<value>134217728</value>

</property>

<property>

  <name>hbase.hregion.memstore.mslab.enabled</name>

  <value>true</value>

</property>

3,配置hbase.env.sh文件
在最后添加以下内容

export JAVA_HOME=/opt/jdk8            //java的路径

export HBASE_OPTS="-Xmx4g -Xms4g -Xmn128m -XX:+UseParNewGC  -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -verbose:gc  -XX:+PrintGCDetails -XX:+PrintGCTimeStamps  -Xloggc:$HBASE_HOME/logs/gc-$(hostname)-hbase.log"

export HBASE_MANAGES_ZK=false

export HBASE_CLASSPATH=/opt/hadoop/etc/hadoop          //hadoop的配置的路径

env文件配置以后复制到其他两台机器上

4,配置log4j.properties文件
修改以下内容

18行       hbase.root.logger=WARN,console
第94行       log4j.logger.org.apache.hadoop.hbase=WARN

5,配置regionservers文件
在里面加入集群机器
在这里插入图片描述
6,启动
要先启动hadoop
三个机器的zookeeper也要启动
主机上启动hbase

[oracle@hadoop003 ~]$ cd /opt/hbase

[oracle@hadoop003 hbase]$ ./bin/start-hbase.sh

7,测试
输入./bin/hbase shell 进入shell
输入list,能返回结果,就是配置成功了,
在这里插入图片描述
如果失败,看失败的情况,如果是zookeeper连接不上,或者端口被占,返回检查一下自己的配置,或者虚拟机的时间和本机时间不同步,可以通过以下方法同步时间,需要下载一下虚拟机上的tools工具包
在这里插入图片描述
8,关闭

[oracle@hadoop003 hbase]$ ./bin/stop-hbase.sh

猜你喜欢

转载自blog.csdn.net/yanglitian_123/article/details/106990134