HBase集群搭建部分配置

Hbase集群基本组件说明

Client:
包含访问Hbase的接口,并维护cache来加快对Hbase的访问,比如region的位置信息。

HMaster:
是hbase集群的主节点,可以配置多个,用来实现HA
为RegionServer分配region
负责RegionServer的负载均衡
发现失效的RegionServer并重新分配其上的region

RegionServer:
Regionserver维护region,处理对这些region的IO请求
Regionserver负责切分在运行过程中变得过大的region

Region:
分布式存储的最小单元。

Zookeeper:
Zookeeper作用:
通过选举,保证任何时候,集群中只有一个活着的HMaster,HMaster与RegionServers 启动时会向ZooKeeper注册
存贮所有Region的寻址入口
实时监控Region server的上线和下线信息。并实时通知给HMaster
存储HBase的schema和table元数据
Zookeeper的引入使得HMaster不再是单点故障。

前期准备:hadoop HA环境已搭建成功,zookeeper能正常运行。

安装流程:

1.解压tar -zxvf hbase-1.2.6-bin.tar.gz  (当前1.2.*版本最为稳定,1.3.*还在优化中)

   vi /etc/profile 环境变量

  1. export HBASE_HOME=/hadoop/hbase-1.2.6  
  2. export PATH=$PATH:$HBASE_HOME/bin  

 

2.vi /hadoop/hbase-1.2.6/conf/hbase-site.xml

  1. <property>  
  2.     <name>hbase.rootdir</name>  
  3.     <value>hdfs://cluster_name/hbase</value>  
  4. <description>一定要把hadoop中的core-site.xml和hdf-site.xml复制到hbase的conf目录下,才能成功解析该集群名称;如果是hadoop单namenode集群,配置写成hdfs://master:9000/hbase (master是namenode主机名)</description> 
  5. </property>  
  6. <property>  
  7.     <name>hbase.cluster.distributed</name>  
  8.     <value>true</value>  
  9. </property>  
  10. <property>  
  11.       <name>hbase.zookeeper.quorum</name>  
  12.       <value>master,node1,node2</value>  
  13. </property>
  14. <property>  
  15.       <name>hbase.zookeeper.property.dataDir</name>#需要与zookeeper集群上配置一样  
  16.       <value>/hadoop/zookeeper</value>  
  17. </property>  

 

3.vi /hadoop/hbase-1.2.6/conf/hbase-env.sh

  1. export JAVA_HOME=/usr/java/jdk1.8.0_65  
  2. export HBASE_MANAGES_ZK=false  

 

4.vi /hadoop/hbase-1.2.6/conf/regionservers

  1. node1  
  2. node2  

提醒:由于hadoop做了HA,namenode可能进行切换,为了解析集群名称,必须把hadoop的core-site.xml和hdfs-site.xml拷贝到hbase的conf下,然后启动hbase。

 

5.启动

   cd /hadoop/hbase-1.2.6/bin

   ./start-hbase.sh

 

Web UI: 稳定版hbase1.2.*系列默认的web UI端口为16010,在网址内输入hmaster主机 ip:16010 即可访问(如hbase版本不同导致无法打开web UI,可去官网文档查看对应版本的默认端口号)

 

几个命令:

启动所有节点:start-hbase.sh

关闭所有节点:stop-hbase.sh

启动单台节点:hbase-daemon.sh start master/regionserver

关闭单台节点:hbase-daemon.sh stop master/regionserver

hbase-site.xml其他相关配置

 <!-- hbase客户端rpc扫描一次获取的行数,默认是2147483647, -->

    <property>

       <name>hbase.client.scanner.caching</name>

        <value>2000</value>

    </property>

    <!-- HRegion分裂前最大的文件大小(默认1.25G)-->

    <property>

       <name>hbase.hregion.max.filesize</name>

        <value>10737418240</value>

    </property>

    <!-- HRegionServer中最大的region数量 -->

    <property>

       <name>hbase.regionserver.reginoSplitLimit</name>

        <value>2000</value>

    </property>

    <!-- StoreFile开始合并的阀值 -->

    <property>

        <name>hbase.hstore.compactionThreshold</name>

        <value>6</value>

    </property>

    <!-- 当某一个region的storefile个数达到该值则block写入,等待compact-->

    <property>

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

        <value>14</value>

    </property>

    <!--当MemStore占用内存大小超过hbase.hregion.memstore.flush.size

    MemStore刷新缓存的大小的4倍,开始中block该HRegion的请求,进行flush

    释放内存,后台会有服务线程在周期内hbase.server.thread.wakefrequency

    定时检查-->

    <property>

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

        <value>4</value>

    </property>

    <!-- service工作的sleep间隔 -->

    <property>

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

        <value>500</value>

    </property>

    <!--ZK并发连接的限制-->

    <property>

        <name>hbase.zookeeper.property.maxClientCnxns</name>

        <value>300</value>

    </property>

    <!--RegionServer进程block进行flush触发条件:该节点上所有region的memstore之和达到upperLimit*heapsize-->

    <property>

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

        <value>0.4</value>

    </property>

    <!--RegionServer进程触发flush的一个条件:该节点上所有region的memstore之和达到lowerLimit*heapsize-->

    <property>

       <name>hbase.regionserver.global.memstore.size.lower.limit</name>

        <value>0.3</value>

    </property>

    <property>

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

        <value>0.4</value>

    </property>

    <!--HRegionserver处理IO请求的线程数-->

    <property>

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

        <value>100</value>

    </property>

    <!-- 客户端最大重试次数 -->

    <property>

       <name>hbase.client.retries.number</name>

        <value>5</value>

    </property>

    <!-- 客户端重试的休眠时间 -->

    <property>

       <name>hbase.client.pause</name>

        <value>100</value>

    </property>
posted @ 2020-05-21 18:33  Q1Zhen  阅读(139)  评论(0编辑  收藏  举报