HBase 安装

HBase 安装

安装

相关组件

部署模式

单机模式(standalone)

单机模式不依赖hadoop,直接使用本地文件系统,数据存储在本地文件系统目录。

  • conf/hbase-site.xml

    1
    2
    3
    4
    5
    6
    7
    
    <configuration>
        //Here you have to set the path where you want HBase to store its files.
        <property>
            <name>hbase.rootdir</name>
            <value>file:///hbase/data</value>
        </property>
    </configuration>
    

伪分布式模式

伪分布式模式依赖于hadoop的hdfs提供存储,所以要先配置hadoop

  • hadoop

分布式模式

  • start: $ bin/start-hbase.sh

shell操作

  • 基础操作

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    
    $ bin/hbase shell
    > list
    > create 't1', 'cf1'
    > put 't1', 'row1', 'cf1:name1', 'value1'
    > scan 't1'
    > get 't1', 'row1', 'cf1:name1'
    > delete 't1','r1','cf1:name1'
    > count 't1'
    > disable 't1'
    > drop 't1'
    > grant 'user1', 'RWC', 't1'
    > user_permission
    > revoke 'user1', 't1'
    > echo  "update_all_config" | bin/hbase shell -n   #更新配置
    

常见问题

  1. hadoop执行warn

    1
    
    18/06/15 17:33:41 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
    

    解决:

    hadoop-env.sh 中增加:
    
    1
    
    export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
    
  2. authentication

  3. 1
    
    org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): SIMPLE authentication is not enabled.  Available:[TOKEN]
    

    解决:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    
    hbase rootdir 和 hadoop 中 的 defaultFS 配置不一致
    经过各方查找,最终发现问题是$HBASE_HOME/conf/hbase-site.xml中的如下属性配置错了:
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://master:8020/hbase</value>
    </property>
    
    注:此配置中的IP或域名必须与$HADOOP_HOME/etc/hadoop/core-site.xml中的如下配置保持一致:
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:8020</value>
    </property>
    
updatedupdated2024-05-152024-05-15