ubuntu安装hbase和单独的zookeeper
- 安装外部的zookeeper
- 下载安装hbase
- web网页查看hbase
- 使用hbase内置zookeeper
- 遇到的问题
- 总结
安装外部的zookeeper
可以不用配置环境变量,我是觉得麻烦,不配置环境变量启动命令如下
zookeeper启动停止,在zookeeper主目录下执行
./bin/zkServer.sh start
./bin/zkServer.sh stop
或者bin目录下执行
./zkServer.sh start
./zkServer.sh stop
下载安装hbase
hbase官网下载地址
放到Ubuntu的某个目录下解压
进入conf目录,打开文件hbase-env.sh
需要保证文件里面总计三行代码,
1、配置jdk
2、export HBASE_MANAGES_ZK=false。配置false代表使用外部zookeeper,true代表使用hbase内置zookeeper
export JAVA_HOME=/home/qinjie/jdk1.8/
export HBASE_MANAGES_ZK=false
还有一行是原本配置文件就有
打开hbase-site.xml文件
需要修改配置如下
1、hbase.rootdir hbase存放数据的地方,我放在hdfs上面
2、hbase.zookeeper.quorum zookeeper的访问地址
3、hbase.unsafe.stream.capability.enforce 不知道,反正要加,不加后面会有问题
4、hbase.cluster.distributed Hbase的运行模式。false是单机模式,true是分布式模式。若为false,Hbase和Zookeeper会运行在同一个JVM里面。
<property>
<name>hbase.rootdir</name>
<!--<value>file:///home/qinjie/datasfile/hbase</value>-->
<value>hdfs://master:9000/hbase</value>
</property>
<!--<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>hdfs://master:9000/zookeeper</value>
</property>-->
<property>
<name>hbase.zookeeper.quorum</name>
<value>127.0.0.1:2181</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master.info.port</name>
<value>60010</value>
</property>
然后,完成了。
启动hdfs
启动zookeeper,我没有配置zookeeper的环境变量
启动hbase(hbase主目录 ./bin/start-hbase.sh, 和./bin/stop-hbase.sh,和hdfs一样)
执行命令,进入shell
./bin/hbase shell
执行list,status没有报错就ok。
web网页查看hbase
修改hbase-site.xml中配置,添加
<property>
<name>hbase.master.info.port</name>
<value>60010</value>
</property>
,然后,重启hbase,如果是在服务器上记得放通60010端口。
使用hbase内置zookeeper
1、修改hbase-env.sh
export HBASE_MANAGES_ZK=true
2、修改hbase-site.xml
注释hbase.zookeeper.quorum
修改
<property>
<name>hbase.cluster.distributed</name>
<value>false</value>
</property>
3、删除hdfs上的存放hbase数据的文件夹,启动hbase
执行list,status没有问题代表成功
遇到的问题
1、ConnectionLoss for /hbase/master
这应该是没有连接到zookeeper,使用外部的zookeeper需要保证ip正确,端口正确,并且线程存在QuorumPeerMain这个就是zookeeper的线程
2、NoNode for /hbase/master
日志:Hmaster Aborted
Failed get of master address: java . io . TOException: Can’t get master address from ZooKeeper; znode data = null
这里好像是说没有权限写什么东西进入某个文件,我在hbase-site.xml接加上
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
解决
3、日志:Failed to become active master
这些问题主要需要查看日志,日志默认放在hbase主目录下的logs文件夹中,遇到这些问题必须查看日志啊
总结
搞了很久这个,配置完成,记录过程,以便不时之需。