在安装之前,已经查阅过Hadoop2.7.x与HBase版本是否兼容的问题。但是版本兼容,能安装上HBase并不代表HBase能够正常运行,因此建议在安装HBase之后启动一下HBase,执行bin/hbase shell运行一下help/list/status,观察一下这些命令是否能执行。
首先分享一下HBase历史版本的下载链接(花费了不少时间掏出来的,因为在官网是很难找到这个网址的):http://archive.apache.org/dist/hbase/
而http://archive.apache.org/dist则是Apache产品的历史版本下载网址,如果是需要下载历史版本的话,需要访问这个网址找到对应版本
本人在测试HBase时出现的错误:
错误1:ERROR: The node /hbase is not in ZooKeeper. It should have been written by the master. Check the value configured in 'zookeeper.znode.parent'. There could be a mismatch with the one configured in the master.
错误2:hbase client.ConnectionManage$HConnectionImplementation
错误3:stop-hbase.sh /tmp/hbase-hadoop-master.pid:没有那个文件或目录
其中错误1是疯狂的出现,根据网上大部分的参考资料,错误的原因有以下三个:
原因1:zookeeper的端口号被占用
原因2:hbase-site.xml没有对zookeeper.znode.parent进行配置
原因3:conf文件夹下的hbase-site.xml或hbase-env.sh没有配置好
经过观察,发现原因3可能更能说明报错的原因。因此下面的工作便是对conf/hbase-env.sh以及conf/hbase-site.xml进行修改。
首先观察/usr/local/hbase(本人)目录,创建logs文件夹用于存放HBase日志。
[hadoop@www ~]$ ll /usr/local/hbase/
总用量 364
drwxr-xr-x. 4 hadoop hadoop 4096 9月 8 2018 bin
-rw-r--r--. 1 hadoop hadoop 153175 9月 8 2018 CHANGES.txt
drwxr-xr-x. 2 hadoop hadoop 178 3月 18 10:36 conf
drwxrwxr-x. 2 hadoop hadoop 6 3月 13 08:55 hbase-tmp
drwxr-xr-x. 7 hadoop hadoop 80 9月 8 2018 hbase-webapps
-rw-rw-r--. 1 hadoop hadoop 261 9月 8 2018 LEGAL
drwxr-xr-x. 3 hadoop hadoop 8192 3月 13 08:38 lib
-rw-rw-r--. 1 hadoop hadoop 143082 9月 8 2018 LICENSE.txt
drwxrwxr-x. 2 hadoop hadoop 4096 3月 18 13:56 logs
-rw-rw-r--. 1 hadoop hadoop 42115 9月 8 2018 NOTICE.txt
-rw-r--r--. 1 hadoop hadoop 1477 6月 3 2018 README.txt
[hadoop@www ~]$
其中bin放置执行文件,conf放置配置文件,logs放置日志文件
hbase-tmp是原来创建用于存放pids的目录,但是该目录最终并没有使用到。
参考大量网络资料,最终的conf/hbase-env.sh添加的配置内容如下:
export HBASE_MANAGES_ZK=true
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export HBASE_LOG_DIR=/usr/local/hbase/logs
export HADOOP_HOME=/usr/local/hadoop
export HBASE_HOME=/usr/local/hbase
export HBASE_CLASSPATH=/usr/local/hadoop/etc/hadoop
配置的时候一定要写明的有:
HBASE_MANAGES_ZK(是否使用自带的ZooKeeper)、JAVA_HOME(CentOS 7下JDK的安装路径,最好是与Hadoop的JDK路径一致)、
HADOOP_HOME(Hadoop2.7.3的安装路径)、
HBASE_HOME(HBase1.2.7的安装路径),
最好加上的有:
HBASE_LOG_DIR(HBase日志文件存放的位置)、HBASE_CLASSPATH(Hadoop2.7.3的jar包路径)
参考大量网络资料,最终的conf/hbase-site.xml添加的配置内容如下:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>localhost</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
配置好两个文件之后,在启动HBase之前先启动Hadoop。
[hadoop@www ~]$ cd /usr/local/hadoop/
[hadoop@hadoop ~]$ ./sbin/start-all.sh
[hadoop@hadoop ~]$ cd /usr/local/hbase/
[hadoop@hbase ~]$ ./bin/start-hbase.sh
[hadoop@hbase ~]$ ./bin/hbase shell
使用JPS命令查看,结果有
关闭HBase
分享其他的相关链接:
(1)Hadoop2.7.5-HBase1.2.6伪分布式安装
(2)HBase2.2.2安装和编程实践指南——厦大林子雨老师 http://dblab.xmu.edu.cn/blog/2442-2/#more-2442 (3)HBase - 伪分布式安装过程
#conf/hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://Kouri(localhost,127.0.0.1):9000/hbase</value> //hbase依赖到hdfs上 - 可以在hdfs上查看到文件夹
</property>
<property>
<name>hbase.cluster.distributed</name> //使用分布式
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/hbase/data/zookeeper</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name> //启动zk的服务器列表,分布式下必配
<value>Kouri</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name> //client链接zookeeper端口,默认2181
<value>2182</value>
</property>
</configuration>
(4)Hadoop、Hbase伪分布式安装
#conf/hbase-env.sh
export JAVA_HOME=/home/pay/soft/java
export HBASE_CLASSPATH=/home/pay/pin/hbase-1.2.3/conf
export HBASE_MANAGES_ZK=true
#conf/hbase-site.xml
<configuration>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<!-- Hbase的web UI端口 -->
<property>
<name>hbase.master.info.port</name>
<value>8171</value>
</property>
</configuration>
(5)Hadoop完整伪分布式搭建(包含zookeeper+hbase+hive)