HBase
前提:需要保证三台虚拟机hadoop102-104已经部署好基本配置。未完成的可以参考:https://blog.csdn.net/weixin_73195042/article/details/135886619
安装
上传HBase安装包到/opt/software文件夹内
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
在末尾添加
#HBASE_HOME
export HBASE_HOME=/opt/module/hbase
export PATH=$PATH:$HBASE_HOME/bin
使用 source 让配置的环境变量生效
source /etc/profile.d/my_env.sh
将环境变量分发到其他虚拟机上,并且也要source环境变量.
hbase-env.sh 修改内容,可以添加到最后:
export HBASE_MANAGES_ZK=false
hbase-site.xml 修改内容:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop102,hadoop103,hadoop104</value>
<description>The directory shared by RegionServers.
</description>
</property>
<!-- <property>-->
<!-- <name>hbase.zookeeper.property.dataDir</name>-->
<!-- <value>/export/zookeeper</value>-->
<!-- <description> 记得修改 ZK 的配置文件 -->
<!-- ZK 的信息不能保存到临时文件夹-->
<!-- </description>-->
<!-- </property>-->
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop102:8020/hbase</value>
<description>The directory shared by RegionServers.
</description>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
</configuration>
修改regionservers文件
hadoop102
hadoop103
hadoop104
解决 HBase 和 Hadoop 的 log4j 兼容性问题(原因是hadoop和hbase都引入了log4j的依赖,加载时候会出现重复加载依赖的冲突),修改 HBase 的 jar 包,使用 Hadoop 的 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 hbase/
启动
1)单点启动
bin/hbase-daemon.sh start master
bin/hbase-daemon.sh start regionserver
2)群启
bin/start-hbase.sh
3)对应的停止服务
bin/stop-hbase.sh
查看 HBase 页面
启动成功后,可以通过host:port的方式来访问 HBase 管理页面,位置:http://hadoop102:16010
hbase:005:0> create 'bigdata:student', {NAME => 'info', VERSIONS => 5}, {NAME => 'msg'}
整合 Phoenix
(1)上传并解压jar包
tar -zxvf phoenix-hbase-2.4-5.1.2-bin.tar.gz -C /opt/module/
mv phoenix-hbase-2.4-5.1.2-bin/ phoenix
(2)复制 server 包并拷贝到各个节点的 hbase/lib
cd /opt/module/phoenix/
cp phoenix-server-hbase-2.4-5.1.2.jar /opt/module/hbase/lib/
xsync /opt/module/hbase/lib/phoenix-server-hbase-2.4-5.1.2.jar
(3)配置环境变量
#phoenix
export PHOENIX_HOME=/opt/module/phoenix
export PHOENIX_CLASSPATH=$PHOENIX_HOME
export PATH=$PATH:$PHOENIX_HOME/bin
配置完别忘source一下
(4)重启 HBase
stop-hbase.sh
start-hbase.sh
(5)连接 Phoenix
/opt/module/phoenix/bin/sqlline.py hadoop102,hadoop103,hadoop104:2181
(6)错误解决
出现下面错误的原因是之前使用过 phoenix,建议删除之前的记录
警告: Failed to load history
java.lang.IllegalArgumentException: Bad history file syntax! The
history file /home/atguigu/.sqlline/history
may be an older
history: please remove it or use a different history file.
解决方法:在/home/atguigu 目录下删除.sqlline 文件夹
rm -rf .sqlline/