上面一篇博客讲了如何安装hadoop。
现在就来说下为分布方式下安装hbase,走了好多坑啊。
**
一 hbase包准备
**
这里下载hbase-2.2.4注意下载bin版不要下载src版本的(踩过坑了,不信你可以试试)。
home下新建hbase文件夹
将下载好的文件传输至/home/hbase
解压
tar xzvf hbase-2.2.4-bin.tar.gz
二 添加环境变量
vi /etc/profile
添加
使环境变量生效
source /etc/profile
三 修改hbase-env.sh
/home/hbase/hbase-2.2.4/conf 下找到hbase-env.sh
修改如下配置
使用hbase自带的zk
export HBASE_MANAGES_ZK=true
hbase 路径
export HBASE_CLASSPATH=/home/hbase/hbase-2.2.4/conf
jdk 路径:配置成你自己的jdk路径
如果不知道或者忘了jdl安装路径,可以用
which java 或echo $JAVA_HOME查看
export JAVA_HOME=/usr/java/jdk1.8.0/
四 配置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.quorum</name>
<value>localhost</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2182</value>
</property>
</configuration>
这里为了不和我本地的zk冲突,特意改了zk的端口号为2182。
五 启动hbase
start-hbase.sh
输入jps查看多了如下三个进程则启动成功。
然后浏览器http://localhost:16030界面查看hbase web界面。
这里有一个坑:这个WEB界面的端口1.0版本后改为16030端口了,以前是60070,网上教程大部分也是这个,导致我开始的时候一直以为没有启动成功,原来是端口变了。
六 遇到的坑
(1)zk端口冲突
启动报错,查看/home/hbase/hbase-2.2.4/logs下的带有zookeeper的日志。发现hbase自带的zk默认也是使用2181端口,和我本地的zk端口冲突了。修改hbase-site.xml,添加下面即可解决:
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2182</value>
</property>
(2)Master 报
Please check the config value of ‘hbase.procedure.store.wal.use.hsync’
解决方式:hbase-site.xml增加配置
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
(3)hbase时间不同步问题
Master is initializing
输入命令 sudo ntpdate time.nist.gov
再重新启动hbase即可。