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的hbase创建表报错 ubuntu启动hbase_ubuntu的hbase创建表报错


放到Ubuntu的某个目录下解压

ubuntu的hbase创建表报错 ubuntu启动hbase_xml_02

ubuntu的hbase创建表报错 ubuntu启动hbase_ubuntu的hbase创建表报错_03


进入conf目录,打开文件hbase-env.sh

ubuntu的hbase创建表报错 ubuntu启动hbase_ubuntu的hbase创建表报错_04

需要保证文件里面总计三行代码,
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

还有一行是原本配置文件就有

ubuntu的hbase创建表报错 ubuntu启动hbase_hbase_05


打开hbase-site.xml文件

ubuntu的hbase创建表报错 ubuntu启动hbase_hdfs_06


需要修改配置如下

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

ubuntu的hbase创建表报错 ubuntu启动hbase_xml_07

启动zookeeper,我没有配置zookeeper的环境变量

ubuntu的hbase创建表报错 ubuntu启动hbase_hdfs_08

启动hbase(hbase主目录 ./bin/start-hbase.sh, 和./bin/stop-hbase.sh,和hdfs一样)

ubuntu的hbase创建表报错 ubuntu启动hbase_zookeeper_09

执行命令,进入shell

./bin/hbase shell

执行list,status没有报错就ok。

ubuntu的hbase创建表报错 ubuntu启动hbase_zookeeper_10

web网页查看hbase

修改hbase-site.xml中配置,添加

ubuntu的hbase创建表报错 ubuntu启动hbase_ubuntu的hbase创建表报错_11

<property>
                <name>hbase.master.info.port</name>
                <value>60010</value>
        </property>

,然后,重启hbase,如果是在服务器上记得放通60010端口。

ubuntu的hbase创建表报错 ubuntu启动hbase_ubuntu的hbase创建表报错_12

使用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>

ubuntu的hbase创建表报错 ubuntu启动hbase_hdfs_13


3、删除hdfs上的存放hbase数据的文件夹,启动hbase

ubuntu的hbase创建表报错 ubuntu启动hbase_zookeeper_14

执行list,status没有问题代表成功

遇到的问题

1、ConnectionLoss for /hbase/master

这应该是没有连接到zookeeper,使用外部的zookeeper需要保证ip正确,端口正确,并且线程存在QuorumPeerMain这个就是zookeeper的线程

ubuntu的hbase创建表报错 ubuntu启动hbase_zookeeper_15

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>

解决

ubuntu的hbase创建表报错 ubuntu启动hbase_zookeeper_16

ubuntu的hbase创建表报错 ubuntu启动hbase_hdfs_17

3、日志:Failed to become active master

ubuntu的hbase创建表报错 ubuntu启动hbase_zookeeper_18

这些问题主要需要查看日志,日志默认放在hbase主目录下的logs文件夹中,遇到这些问题必须查看日志啊

总结

搞了很久这个,配置完成,记录过程,以便不时之需。