Hbase 的部署
部署 Hbase
Habase 的部署及配置(根据实际情况修改路径)
下载 Hbase
wget -P /export/software/ https://repo.huaweicloud.com/apache/hbase/2.6.0/hbase-2.6.0-bin.tar.gz
tar -zxvf /export/software/hbase-2.6.0-bin.tar.gz -C /export/servers/
mv /export/servers/hbase-2.6.0 /export/servers/hbase
修改文件夹所有者
sudo chown -R hadooper:hadooper /export/servers/hbase/
配置环境变量便于随时调用
sudo vim /etc/profile
在文件末尾添加以下内容:
export PATH=$PATH:/export/servers/hbase/bin
刷新终端的环境变量
source /etc/profile
验证安装
hbase version

配置hbase-env.sh
sudo vim /export/servers/hbase/conf/hbase-env.sh
添加下面配置
export JAVA_HOME=/export/servers/jdk
export HBASE_CLASSPATH=/export/servers/hbase/conf
export HBASE_MANAGES_ZK=false
export HBASE_USER_CLASSPATH_FIRST=true
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"

配置hbase-site.xml并替换所有内容
sudo vim /export/servers/hbase/conf/hbase-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 核心:HBase存储路径指向Hadoop HA集群逻辑名称(与core-site.xml一致) -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://mycluster/hbase</value>
</property>
<!-- 启用分布式模式(集群/HA模式必须为true) -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- ZooKeeper集群地址(与Hadoop core-site.xml的ha.zookeeper.quorum一致) -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop01,hadoop02,hadoop03</value>
</property>
<!-- ZooKeeper客户端端口(默认2181,与集群配置一致) -->
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<!-- ZooKeeper数据目录(仅HBase内置ZooKeeper生效,独立ZooKeeper忽略此配置) -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/export/servers/zookeeper/data</value>
</property>
<!-- HA模式必需:禁用HDFS流能力强制检查 -->
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
<!-- 可选优化:HBase临时目录 -->
<property>
<name>hbase.tmp.dir</name>
<value>/export/servers/hbase/tmp</value>
</property>
<!-- 禁用异步 WAL -->
<property>
<name>hbase.wal.async.enabled</name>
<value>false</value>
</property>
<!-- 禁用异步 HDFS 写入(关键!)-->
<property>
<name>hbase.fs.async.impl</name>
<value></value>
</property>
</configuration>主要修改如图所示

配置子节点
配置regionservers文件(指定 RegionServer 节点)
sudo vi /export/servers/hbase/conf/regionservers
删除原有内容,添加所有节点的主机名
hadoop01
hadoop02
hadoop03

拷贝文件
hadoop 的core-site.xml文件和hdfs-site.xml文件到 hbase 的conf目录以便于 Hbase 能够读取 hadoop 的运行配置
sudo cp /export/servers/hadoop/etc/hadoop/core-site.xml /export/servers/hbase/conf
sudo cp /export/servers/hadoop/etc/hadoop/hdfs-site.xml /export/servers/hbase/conf
分发配置文件
将主节点中配置好的文件和 hadoop 目录 copy 给子节点
scp -r /etc/profile hadoop02:/tmp
scp -r /etc/profile hadoop03:/tmp
scp -r /export/servers/hbase hadoop02:/tmp
scp -r /export/servers/hbase hadoop03:/tmp
进入子节点
分别在各个节点执行以下指令
sudo mv /tmp/hbase /export/servers
sudo mv /tmp/profile /etc/
启动
启动 HBase 集群(主节点启动即可)
start-hbase.sh

启动剩余节点
在 hadoop02 启动第 2 个 HMaster 刷新终端的环境变量
source /etc/profile
hbase-daemon.sh start master

在 hadoop03 启动第 3 个 HMaster 刷新终端的环境变量
source /etc/profile
hbase-daemon.sh start master

查找程序
jps | grep -E 'HMaster|HRegionServer'
hadoop01

hadoop02

hadoop03

测试结果
查看选举结果
浏览器访问 主节点 ip

连接 hbase 并测试
hbase shell

list 查询测试
list

若出现以上结果且不报错即为部署完成 然后按 ctrl+D 或输入 exit 回车退出
错误分析
Hbase 出现的问题较多且复杂,请每次运行前强制杀死 Hbase 原有进程(所有节点),清理logs目录(所有节点),先运行主节点的start-hbase.sh,查看主节点的logs目录的logs文件中是否出现 error,未出现 error 后再运行子节点的hbase-daemon.sh start master,若子节点的logs目录里的logs文件也无 error,再进行hbase shell的测试,并观察终端是否正确输出,若没有请再次查看各节点的 logs 日志
正常关闭 Hbase 命令(主节点运行)
stop-hbase.sh
强制杀死 Hbase 命令(每个节点都要运行)
kill -9 $(jps | grep -E "HMaster|HRegionServer" | awk '{print $1}')
喜欢的话,留下你的评论吧~