安装HBase
提示:需要安装好hadoop和zookeeper
安装zookeeper可参考
一、确定HBase版本
去网站确认
https://hbase.apache.org/book.html#hadoop
二、下载HBase安装包
去清华大学镜像站下载
https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/
三、安装HBase
3.1 上传HBase到hadoop集群
上传HBase安装包到任一结点即可,比如node1
通过windows cmd上传HBase安装包到node1的tmp目录下,192.168.88.100是node1的IP
scp hbase-2.4.17-bin.tar.gz hadoop@192.168.88.100:/tmp
3.2 解压缩HBase压缩包到指定目录
-C表示解压到指定路径
tar -zxvf /tmp/hbase-2.4.17-bin.tar.gz -C /export/server/
3.3 创建软连接
便于访问
ln -s hbase-2.4.17/ hbase
3.4 配置文件
HBase配置文件目录在hbase-2.4.17/conf下
3.4.1 hbase-env.sh
输入
vim hbase-env.sh
内容如下,注意根据机器上jdk实际安装路径配置
export JAVA_HOME=/export/server/jdk/
export HBASE_MANAGES_ZK=false
# 划到最下面找到“export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"”,去掉前面的“#”
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"
PS:划到最下面找到“export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=“true””,去掉前面的“#”可以解决ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet问题以及“stop-hbase.sh”等待时间过长甚至无法停止问题。
3.4.2 hbase-site.xml
输入
vim hbase-site.xml
内容如下
vim hbase-site.xml
------------------------------
<configuration>
<!-- HBase数据在HDFS中的存放的路径 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://node1:8020/hbase</value>
</property>
<!-- Hbase的运行模式。false是单机模式,true是分布式模式。若为false,Hbase和Zookeeper会运行在同一个JVM里面 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- ZooKeeper的地址 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>node1,node2,node3</value>
</property>
<!-- ZooKeeper快照的存储位置 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/export/server/zookeeper/data</value>
</property>
<!-- V2.1版本,在分布式情况下, 设置为false -->
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
</configuration>
在hdfs创建hbase文件夹
hdfs dfs -mkdir /hbase
3.4.2 region
执行
vim regionservers
输入结点名称
node1
node2
node3
3.5 配置环境变量
用root用户编辑profile文件
su root
vim /etc/profile
添加环境变量
export HBASE_HOME=/export/server/hbase
export PATH=$PATH:${HBASE_HOME}/bin:${HBASE_HOME}/sbin
使环境变量生效,root执行完后再用hadoop执行一遍,否则在hadoop用户不一定生效
source /etc/profile
3.6 转移配置文件
cp $HBASE_HOME/lib/client-facing-thirdparty/htrace-core4-4.2.0-incubating.jar $HBASE_HOME/lib
3.7 分发HBase安装包到其余结点
执行
scp -r hbase-2.4.17/ node2:/export/server/
scp -r hbase-2.4.17/ node3:/export/server/
分别在node2和node3创建hbase-2.4.17的软连接;并配置和使生效/etc/profile,配置内容同node1
PS:即使忘了配置,启动hbase会报错,补上即可
ln -s hbase-2.4.17/ hbase
vim /etc/profile
#export HBASE_HOME=/export/server/hbase
#export PATH=$PATH:${HBASE_HOME}/bin:${HBASE_HOME}/sbin
source /etc/profile
# 用echo命令打印$HBASE_HOME,若输出不为空,则环境变量已生效
echo $HBASE_HOME
3.8 验证HBase是否启动成功
启动zookeeper和hdfs!启动zookeeper和hdfs!启动zookeeper和hdfs!
然后启动HBase
start-hbase.sh
启动hbase交互命令行
hbase shell
输入status,出现图示结果说明安装成功!
四、问题
问题如图所示,出现SLF4J冲突
修改hbase-env.sh,追击以下内容即可。
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"
在追加这条内容之前,除了SLF4J冲突问题,安装过程中还遇到stop-hbase.sh等待时间过长和hbase shell执行status或者list打印ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet问题。追加之后这些问题都消失了。