目录
解决HBase和Hadoop的log4j兼容性问题,修改HBase的jar包,使用Hadoop的jar包
在backup-masters文件中配置高可用HMaster节点
部署前提
保证Hadoop和zookeeper集群可以正常启动
HBase的解压
解压Hbase到指定目录
tar -zxvf hbase-2.4.11-bin.tar.gz -C /opt/module/
改名
mv /opt/module/hbase-2.4.11 /opt/module/hbase
配置环境变量
sudo vim /etc/profile.d/my_env.sh
使用source让配置的环境变量生效
source /etc/profile.d/my_env.sh
HBase的配置文件
cd到hbase的conf目录
hbase-env.sh修改内容,可以添加到最后
export HBASE_MANAGES_ZK=false
hbase-site.xml修改内容:
hbase-site.xml配置项详解
1. 运行模式
<property> <name>hbase.cluster.distributed</name> <value>true</value> </property>
hbase.cluster.distributed
:定义HBase的运行模式。true
:HBase以分布式模式运行,这是生产环境中的常用设置。false
:HBase以单机模式运行,通常用于开发和测试环境。
2. 临时目录
<property> <name>hbase.tmp.dir</name> <value>./tmp</value> </property>
hbase.tmp.dir
:指定HBase使用的临时目录。./tmp
:表示临时文件将存储在当前目录的tmp
文件夹中。这个目录用于存储HBase在运行过程中生成的临时文件。
3. 流能力安全检查
<property> <name>hbase.unsafe.stream.capability.enforce</name> <value>false</value> </property>
hbase.unsafe.stream.capability.enforce
:决定是否强制执行流能力安全检查。false
:表示禁用流能力的强制检查。某些文件系统可能不支持流能力,禁用此检查可以避免相关问题。true
:表示启用流能力的强制检查,以确保文件系统的安全性。
4. ZooKeeper集群
<property> <name>hbase.zookeeper.quorum</name> <value>hadoop102,hadoop103,hadoop104</value> <description>The directory shared by RegionServers.</description> </property>
hbase.zookeeper.quorum
:指定ZooKeeper集群的主机名或IP地址列表。hadoop102,hadoop103,hadoop104
:表示ZooKeeper集群中的三个节点。HBase使用ZooKeeper进行分布式协调,管理元数据和配置信息。
5. HBase根目录
<property> <name>hbase.rootdir</name> <value>hdfs://hadoop102:8020/hbase</value> <description>The directory shared by RegionServers.</description> </property>
hbase.rootdir
:指定HBase数据存储的根目录。hdfs://hadoop102:8020/hbase
:表示HBase的数据存储在HDFS上,根目录为/hbase
。使用HDFS路径格式,指定主节点(例如hadoop102
)和端口(例如8020
)。
6. WAL提供者
<property> <name>hbase.wal.provider</name> <value>filesystem</value> </property>
hbase.wal.provider
:指定Write-Ahead Log (WAL)的提供者。filesystem
:表示使用文件系统作为WAL的存储介质。WAL用于记录写操作日志,以保证数据的持久性和故障恢复。
综合解释
这些配置项共同作用,定义了HBase集群的基本运行环境和存储策略:
- 运行模式:通过
hbase.cluster.distributed
设置HBase为分布式模式,以便在多台机器上运行。 - 临时目录:通过
hbase.tmp.dir
指定HBase运行过程中使用的临时目录。 - 流能力安全检查:通过
hbase.unsafe.stream.capability.enforce
决定是否启用流能力的强制检查。 - ZooKeeper集群:通过
hbase.zookeeper.quorum
指定ZooKeeper集群的节点信息,用于分布式协调。 - 数据存储位置:通过
hbase.rootdir
指定HBase数据在HDFS上的根目录,确保所有RegionServer共享同一个存储位置。 - WAL提供者:通过
hbase.wal.provider
确定使用文件系统作为WAL的存储介质,以保证数据写入操作的持久性和可靠性。
通过合理配置这些参数,可以确保HBase集群稳定、高效地运行,并且具备良好的容错和恢复能力
regionservers
RegionServers绑定的主机名
解决HBase和Hadoop的log4j兼容性问题,修改HBase的jar包,使用Hadoop的jar包
解决HBase和Hadoop的log4j兼容性问题以及调整相应的jar包通常是为了避免日志记录系统之间的冲突,并确保日志的正确记录和管理
mv/opt/module/hbase/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar /opt/module/hbase/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar.bak
HBase远程发送到其他集群
xsync /opt/module/hbase/
HBase服务的启动
单点启动
在hbase目录执行:
bin/hbase-daemon.sh start master
bin/hbase-daemon.sh start regionserver
群启
start-hbase.sh
对应的停止服务
stop-hbase.sh
成功启动图片查看HBase页面
启动成功后,可以通过“host:port”的方式来访问HBase管理页面,例如http://hadoop102:16010
高可用(可选)
在HBase中HMaster负责监控HRegionServer的生命周期,均衡RegionServer的负载,如果HMaster挂掉了,那么整个HBase集群将陷入不健康的状态,并且此时的工作状态并不会维持太久。所以HBase支持对HMaster的高可用配置
关闭HBase集群(如果没有开启则跳过此步)
stop-hbase.sh
在conf目录下创建backup-masters文件
touch conf/backup-masters
在backup-masters文件中配置高可用HMaster节点
将整个conf目录scp到其他节点
xsync /opt/module/hbase/conf/
重启hbase,打开页面测试查看
start-hbase.sh
点击hadoop103出现以下页面就代表部署成功了
部署高可用是因为,当主master挂掉从master可以代替主master工作。