企业级HBase集群搭建

参考HBase的基本原理,本次实验在配置好的Hadoop HA集群之上,将HMaster服务部署在HDFS的namenode1和namenode2节点,将RegionServer部署在datanode节点,使用独立的ZooKeeper集群进行搭建。

一、配置Linux系统

针对企业级的应用场合,需要修改Linux系统的部分参数,主要是以下几点。

1. 查看系统的最大文件打开数和最大进程数
这里写图片描述

2. 打开/etc/security/limits.conf文件,添加如下内容
这里写图片描述

3. 打开/etc/sysctl.conf文件,修改Linux内核参数
这里写图片描述

二、配置HBase

1. 获取hbase压缩包
这里写图片描述

2. 解压缩、移动hbase文件夹到~/apache/hbase

3. 在集群各节点上修改用户环境变量
这里写图片描述

4. 进入hbase的conf文件夹,设置hbase-site.xml

<configuration>  
  <!-- 设置HRegionServers共享目录 -->  
  <property>  
    <name>hbase.rootdir</name>  
    <value>hdfs://mycluster/hbase</value>  
  </property>  

  <!-- 设置HMaster的rpc端口 -->  
  <property>  
    <name>hbase.master.port</name>  
    <value>16000</value>  
  </property>  

  <!-- 设置HMaster的http端口 -->  
  <property>  
    <name>hbase.master.info.port</name>  
    <value>16010</value>  
  </property>  

  <!-- 指定缓存文件存储的路径 -->  
  <property>  
    <name>hbase.tmp.dir</name>  
    <value>/home/trvo/apache/hbase/tmp</value>  
  </property>  

  <!-- 开启分布式模式 -->  
  <property>  
    <name>hbase.cluster.distributed</name>  
    <value>true</value>  
  </property>  

  <!-- 指定ZooKeeper集群位置 -->  
  <property>  
    <name>hbase.zookeeper.quorum</name>  
    <value>namenode1, namenode2, datanode</value>  
  </property>  

  <!-- 指定ZooKeeper集群端口 -->  
  <property>  
    <name>hbase.zookeeper.property.clientPort</name>  
    <value>2181</value>  
  </property>  

  <!--指定Zookeeper数据目录,需要与ZooKeeper集群上配置相一致 -->  
  <property>  
    <name>hbase.zookeeper.property.dataDir</name>  
    <value>/home/trvo/apache/zookeeper/data</value>  
  </property>  

  <!-- \\\\\\\\\\以下为优化配置项\\\\\\\\\\ -->  
  <!-- 关闭分布式日志拆分 -->  
  <property>  
    <name>hbase.master.distributed.log.splitting</name>  
    <value>false</value>  
  </property>  

  <!-- hbase客户端rpc扫描一次获取的行数 -->  
  <property>  
    <name>hbase.client.scanner.caching</name>  
    <value>2000</value>  
  </property>  

  <!-- HRegion分裂前最大的文件大小(10G) -->  
  <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大小的倍数达到该值则block所有写入请求,自我保护 -->  
  <property>  
    <name>hbase.hregion.memstore.block.multiplier</name>  
    <value>20</value>  
  </property>  

  <!-- service工作的sleep间隔 -->  
  <property>  
    <name>hbase.server.thread.wakefrequency</name>  
    <value>500</value>  
  </property>  

  <!-- ZooKeeper客户端同时访问的并发连接数 -->  
  <property>  
    <name>hbase.zookeeper.property.maxClientCnxns</name>  
    <value>2000</value>  
  </property>  

  <!-- 根据业务情况进行配置 -->  
  <property>  
    <name>hbase.regionserver.global.memstore.lowerLimit</name>  
    <value>0.3</value>  
  </property>  
  <property>  
    <name>hbase.regionserver.global.memstore.upperLimit</name>  
    <value>0.39</value>  
  </property>  
  <property>  
    <name>hbase.block.cache.size</name>  
    <value>0.4</value>  
  </property>  

  <!-- RegionServer的请求处理IO线程数 -->  
  <property>  
    <name>hbase.reginoserver.handler.count</name>  
    <value>300</value>  
  </property>  

  <!-- 客户端最大重试次数 -->  
  <property>  
    <name>hbase.client.retries.number</name>  
    <value>5</value>  
  </property>  

  <!-- 客户端重试的休眠时间 -->  
  <property>  
    <name>hbase.client.pause</name>  
    <value>100</value>  
  </property>  
</configuration>  

5. 修改hbase-env.sh

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk   //设置jdk的路径
export HADOOP_HOME=/home/trvo/apache/hadoop   // 设置hadoop安装路径
export HBASE_HEAPSIZE=1024    // 设置HBase内存堆的大小
export HBASE_LOG_DIR=${HBASE_HOME}/logs       //设置HBase的日志目录
export HBASE_PID_DIR=/home/trvo/apache/hbase/pids
export HBASE_MANAGES_ZK=false       //选用独立的zookeeper集群

6. 修改regionservers文件

datanode

7. 新建backup-masters文件

namenode2

8. 返回hbase主目录,创建相关文件夹

$mkdir tmp
$mkdir pids
$mkdir logs

9. 将hbase工作目录同步到集群其它节点

$scp -r /home/trvo/apache/hbase trvo@namenode2:/home/trvo/apache/
$scp -r /home/trvo/apache/hbase trvo@datanode:/home/trvo/apache/

三、启动HBase

1. 在集群各节点上启动zookeeper

$zkServer.sh start

2. 在namenode1上启动hadoop

$start-all.sh

3. 启动YARN的另一个ResourceManager

$yarn-daemon.sh start resourcemanager

4. 在namenode1上启动hbase

$start-hbase.sh

5. 进入Web UI,查看主Master状态
这里写图片描述

6. 查看备份Master状态
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值