大数据技术之HBase原理与实战归纳分享-上( 三 )

  • Zookeeper:HBase 通过 Zookeeper 来做 master 的高可用、记录 RegionServer 的部署信息、并且存储 有 meta 表的位置信息 。HBase 对于数据的读写操作时直接访问 Zookeeper 的,在 2.3 版本推出 Master Registry 模式,客户端可以直接访问 master 。使用此功能,会加大对 master 的压力,减轻对 Zookeeper 的压力 。
  • HDFS:HDFS 为 Hbase 提供最终的底层数据存储服务,同时为 HBase 提供高容错的支持 。
  • 安装前置条件
    • Zookeeper(使用前面文章已部署集群)
    • HDFS(使用前面文章已部署集群)
    部署# 下载最新版本HBasewget --no-check-certificate https://dlcdn.apache.org/hbase/2.5.0/hbase-2.5.0-bin.tar.gz# 解压tar -xvf hbase-2.5.0-bin.tar.gz# 进入目录cd hbase-2.5.0# 配置环境变量vim /etc/profileexport HBASE_HOME=/home/commons/hbase-2.5.0export PATH=$HBASE_HOME/bin:$PATH# 将配置文件分发到另外两台节点上scp /etc/profile hadoop2:/etc/scp /etc/profile hadoop3:/etc/# 在三台上执行环境变量生成命令source /etc/profile# 修改conf目录下配置文件hbase-env.sh , vim conf/hbase-env.sh# false 取消 不需要自己管理实例 用zookeeperexport HBASE_MANAGES_ZK=false# 声明JAVA_HOMEexport JAVA_HOME=/home/commons/jdk8# HBase的jar包和Hadoop的jar包有冲突,导致服务没有起来,报错如object is not an instance of declaring class可以配置这个export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"
    • 修改conf目录下配置文件vim conf/hbase-site.xml
    ##修改,  <property>    <name>hbase.cluster.distributed</name>    <value>true</value>  </property>##去掉  <property>    <name>hbase.tmp.dir</name>    <value>./tmp</value>  </property>  <property>    <name>hbase.unsafe.stream.capability.enforce</name>    <value>false</value>  </property>##增加 <property>   <name>hbase.zookeeper.quorum</name>   <value>zk1,zk2,zk3</value>   <description>The directory shared by RegionServers.   </description> </property><!-- <property>--><!-- <name>hbase.zookeeper.property.dataDir</name>--><!-- <value>/export/zookeeper</value>--><!-- <description> 记得修改 ZK 的配置文件 --><!-- ZK 的信息不能保存到临时文件夹--><!-- </description>--><!-- </property>--> <property>   <name>hbase.rootdir</name>   <value>hdfs://hadoop2:9000/hbase</value>     <!--8020这个端口号,要跟hadoop的NameNode一样-->   <description>The directory shared by RegionServers.   </description> </property>
    • 修改regionservers配置vim conf/regionservers
    hadoop1hadoop2hadoop3
    • 将Hadoop的配置文件core-site.xml和hdfs-site.xml拷贝到HBase的conf目录下
    cp /home/commons/hadoop/etc/hadoop/core-site.xml conf/cp /home/commons/hadoop/etc/hadoop/hdfs-site.xml conf/
    • 分发HBase目录到其他两个节点上
    scp -r /home/commons/hbase-2.5.0 hadoop2:/home/commonsscp -r /home/commons/hbase-2.5.0 hadoop3:/home/commons启动服务# 单点启动bin/hbase-daemon.sh start masterbin/hbase-daemon.sh start regionserver# 群启bin/start-hbase.sh# 停止服务bin/stop-hbase.sh群启后查看服务进程
    大数据技术之HBase原理与实战归纳分享-上

    文章插图
    启动成功后,可以通过“host:port”的方式来访问 HBase 管理页面 ,  http://hadoop1:16010
    大数据技术之HBase原理与实战归纳分享-上

    文章插图
    高可用在 HBase 中 HMaster 负责监控 HRegionServer 的生命周期,均衡 RegionServer 的负载 ,  如果 HMaster 挂掉了,那么整个 HBase 集群将陷入不健康的状态,并且此时的工作状态并不 会维持太久 。所以 HBase 支持对 HMaster 的高可用配置 。
    # 先关闭上面启动的HBase集群bin/stop-hbase.sh# 在 conf 目录下创建 backup-masters 文件touch conf/backup-masters# 在 backup-masters 文件中配置高可用 HMaster 节点echo hadoop2 > conf/backup-masters# 将conf/backup-masters scp 到其他节点scp /home/commons/hbase-2.5.0/conf/backup-masters hadoop2:/home/commons/hbase-2.5.0/confscp /home/commons/hbase-2.5.0/conf/backup-masters hadoop3:/home/commons/hbase-2.5.0/conf# 重启 hbasebin/start-hbase.sh

    推荐阅读