夜间模式暗黑模式
字体
阴影
滤镜
圆角
主题色
HBase 2.3.3 HA搭建

Apache HBase是Hadoop数据库,这是一个分布式,可扩展的大数据存储。如果需要对大数据进行随机,实时的读/写访问时,可以使用HBase,HBase可以在群集上托管非常大的表(数十亿行数百万列)。

特性

  • 线性和模块化可扩展性。
  • 严格一致的读写。
  • 表的自动和可配置分片。
  • RegionServer之间的自动故障转移支持。
  • 方便的基类,用于通过Apache HBase表备份Hadoop MapReduce作业。
  • 易于使用的Java API用于客户端访问。
  • 块缓存和布隆过滤器用于实时查询。
  • 通过服务器端过滤器查询谓词下推。
  • Thrift网关和REST-ful Web服务,支持XML,Protobuf和二进制数据编码选项。
  • 可扩展的基于Jruby的(JIRB)Shell。
  • 支持通过Hadoop指标子系统将指标导出到文件、Ganglia、JMX。

集群搭建准备工作

准备工作

node1node2node3node4node5
MasterMaster
RegionServerRegionServerRegionServerRegionServerRegionServer

时间同步,hadoop用户免密钥,zookeeper集群,hadoop集群,linux设置。这些在配置hadoop集群的时候都已经配置过了,详情可以参考下hadoop-3.3.0 完全分部署安装这篇文章

centos8打开文件和远程文件数量设置

vim /etc/security/limits.conf
#打开文件的数量限制
* soft nofile 204800
* hard nofile 204800
#打开进程数量限制
* soft nproc 204800
* hard nproc 204800

下载HBase,创建Hbase目录,赋予权限。

#利用管理员用户创建Hbase存放目录
mkdir /data/hbase
#赋予权限(hadoop用户)
chown -R hadoop.hadoop /data/hbase

下载文件解压缩(我用的hadoop用户启动,你们也可以使用root用户启动)

#进入到hbase存放目录
[hadoop@node1 ~]$ cd /data/hbase 
#下载文件
[hadoop@node1 hbase]$ wget https://mirror.bit.edu.cn/apache/hbase/2.3.3/hbase-2.3.3-bin.tar.gz
#解压文件
[hadoop@node1 hbase]$ tar -xf hbase-2.3.3-bin.tar.gz
#进入目录
[hadoop@node1 hbase]$ cd hbase-2.3.3

HBase集群设置

Hbase启动设置(可选)

vim ~/.bash_profile
export HBASE_HOME=/data/hbase/hbase-2.3.3
export PATH=$HBASE_HOME/bin:$PATH

#加载下配置
source ~/.bash_profile

集群环境变量配置 hbase-env.sh

[hadoop@node1 hbase-2.3.3]$ vim conf/hbase-env.sh
export JAVA_HOME=/usr/java/jdk-11.0.9
export HADOOP_HOME=/data/hadoop/hadoop-3.3.0
#是否使用自带zk 默认为true,由于hadoop集群已经配置zk集群,所以不使用自带默认集群。
export HBASE_MANAGES_ZK=false

HBase集群信息配置 hbase-site.xml

[hadoop@node1 hbase-2.3.3]$ vim conf/hbase-site.xml
<configuration>
  <!--设置HBase存放的HDFS路径-->
  <property>
      <name>hbase.rootdir</name>
      <!--当前目录不需要自己创建,hbase会自己创建,如果存在目录hbase会进行迁移,可能会出现其他的错误。
       zsjcluster是HA集群的名称,做hbase HA需要指定hadoop的集群名称而不是节点名称,需要和core-site.xml 和hdfs-site.xml里面的名称对应。-->
      <value>hdfs://zsjcluster/hbase</value>
  </property>

  <!--设置开启完全分布式-->
  <property>
      <name>hbase.cluster.distributed</name>
      <value>true</value>
  </property>

  <!--设置zookpper集群地址-->
  <property>
      <name>hbase.zookeeper.quorum</name>
      <value>node1,node2,node3,node4,node5</value>
  </property>

  <!--设置zookeeper通信端口,默认2181-->
  <property>
      <name>hbase.zookeeper.property.clientPort</name>
      <value>2181</value>
  </property>

  <!--HBase在zookeeper上数据的目录-->
  <property>
      <name>zookeeper.znode.parent</name>
      <value>/hbase</value>
  </property>
  <!--hbase.tmp.dir和hbase.unsafe.stream.capability.enforce的配置已经进行删除-->
</configuration>

需要将hadoop集群中的core-site.xml和hdfs-site.xml放到hbase/conf文件中,也可以使用软连接

ln -sf /data/hadoop/hadoop-3.3.0/etc/hadoop/core-site.xml conf/core-site.xml
ln -sf /data/hadoop/hadoop-3.3.0/etc/hadoop/hdfs-site.xml conf/hdfs-site.xml

在检查下HA集群的名称是否相同,否则启动会报错误。

解决日志包冲突问题

[hadoop@node1 hbase-2.3.3]$ rm -f lib/client-facing-thirdparty/slf4j-log4j12-1.7.25.jar

添加备选节点node5(在哪个节点启动哪个节点就是主节点)

[hadoop@node1 hbase-2.3.3]$ vim conf/backup-masters
node5

regionServer节点设置

[hadoop@node1 hbase-2.3.3]$ vim conf/regionservers
node1
node2
node3
node4
node5

最后同步一下所有的配置文件。可以单独节点重复上述配置也可以使用scp、sync命令

[hadoop@node1 ~]$ cd /data/hbase
#传到node2
[hadoop@node1 ~]$ scp -r hbase-2.3.3 hadoop@node2:`pwd`
#传到node3
[hadoop@node1 ~]$ scp -r hbase-2.3.3 hadoop@node2:`pwd`
#传到node4
[hadoop@node1 ~]$ scp -r hbase-2.3.3 hadoop@node2:`pwd`
#传到node5
[hadoop@node1 ~]$ scp -r hbase-2.3.3 hadoop@node2:`pwd`

需要将软连接重新链接下

ln -sf /data/hadoop/hadoop-3.3.0/etc/hadoop/core-site.xml conf/core-site.xml
ln -sf /data/hadoop/hadoop-3.3.0/etc/hadoop/hdfs-site.xml conf/hdfs-site.xml

HBase启动

node1节点启动

#需要配置环境变量~/.bash_profile
[hadoop@node1 ~]$ start-hbase.sh
#若没有配置
[hadoop@node1 ~]$ /data/hbase/hbase-2.3.3/bin/start-hbase.sh

node1、node5节点中的master节点已经启动完成,可以去UI界面看一下:node1:16010/master-status

暂无评论

发送评论 编辑评论


				
上一篇
下一篇