在安装之前,已经查阅过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

hbaseconfiguration代码 hbase version报错_zookeeper


使用JPS命令查看,结果有

hbaseconfiguration代码 hbase version报错_hadoop_02


关闭HBase

hbaseconfiguration代码 hbase version报错_zookeeper_03

分享其他的相关链接:
(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)