Ubuntu下安装单机版hbase

来源:互联网 发布:淘宝主营怎么修改 编辑:程序博客网 时间:2024/04/30 12:23
1.下载安装hbase:
    wget http://mirror.bit.edu.cn/apache/hbase/1.2.6/hbase-1.2.6-bin.tar.gz


2.我解压放在了/usr/local的目录下


3.在/etc/profile中添加环境变量
    export HBASE_HOME=/usr/local/hbase
    export PATH=${HBASE_HOME}/bin:$PATH


4.使环境变量生效:
    source /etc/profile


5.配置HBase:
    修改hbase环境配置:进入hbase目录下的conf目录,然后编辑目录下的hbase-env.sh文件,在文件中找到export  JAVA_HOME语句,设置JAVA_HOME
    export JAVA_HOME=/usr/local/javaDevelopment/jdk1.8.0_25


6.修改HBase的主配置文件hbsae-site.xml:
    在单实例HBase运行环境下,主要是修改指定HBase和ZooKeeper的写数据目录
    HBase数据保存目录为:file:/home/tmp/hbase
    Zookeeper的数据保存目录为:/home/tmp/zookeeper
    <configuration>
        <property>
            <name>hbase.rootdir</name>
            <value>file:/home/tmp/hbase</value>
        </property>
        <property>
            <name>hbase.zookeeper.property.dataDir</name>
            <value>file:/home/tmp/zookeeper</value>
        </property>
    </configuration>
    
    我们需要在启动hbase前设置属性hbase.rootdir,来制定hbase数据的存储位置。
    注意:不设置,hbase.rootdir默认为/tmp/hbase-${user.name},这样你每次重启系统都会丢失数据!!!


7.为更方便使用hbase命令,可以进行环境变量的配置,将hbase的启动、关闭等脚本写入系统环境变量中
    转换目录到根目录下:cd /;使用sudo vi ~/.bashrc 命令
    在.bashrc文件的末尾加上下面的语句:
        export HBASE_HOME=/usr/local/hbase-1.2.6
        export HBASE_CONF_DIR=$HBASE_HOME/conf
        export HBASE_CLASS_PATH=$HBASE_CONF_DIR
        export PATH=$PATH:$HBASE_HOME/bin
    添加完成后保存退出:wq


8.使用source ~/.bashrc命令语句使修改的 .bashrc文件立即生效
    source ~/.bashrc


9.测试看下是否安装成功
   hbase version
   hbase 1.2.6...


10.运行测试一下。
    cd /usr/local/hbase
    bin/start-hbase.sh#用于启动hbase
    bin/hbase shell#打开hbase的命令行模式,可以通过命令行操作数据库了。
11.停止hbase运行:

    sudo bin/stop-hbase.sh


Hbase分布式链接出错的问题,启动后不能连上其他节点处理问题。一直报错The node /hbase is not in ZooKeeper.不能同步的问题!!!


如果有以下报错:
2017-11-21 05:08:11,045 ERROR [main] client.ConnectionManager$HConnectionImplementation: 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


很明显说明2181端口被占用了,又由于查了半天不知道这个端口是被哪个占用的, 
我个人猜想是不是hadoop中间件系列哪个里面开了这个自带的zookeeper把这个默认的端口给占用了。 
又不能确定,所以也不好kill掉这个端口,因此只能修改默认端口: 
hbase-site.xml中修改 
让2181变成2182


<property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>2182</value>
</property>


你要不是伪分布式,请一定要指定
<property>
    <name>hbase.cluser.distributed</name>
    <value>true</value>
</property>