概述

Hbase是一个基于HDFS的面向列的分布式数据库,源于Google的BigTable论文。HBase不支持关系数据库的SQL,并且不是以行存储的关系结构存储数据。而是以键值对的方式按列存储。

安装

下载cdh版本的 http://archive.cloudera.com/cdh5/cdh/5/
hadoop 安装的Hadoop 2.6.0-cdh5.7.0,因此hbase安装的也需要是cdh5.7.0的

  1. # wget wget http://archive.cloudera.com/cdh5/cdh/5/hbase-1.2.0-cdh5.7.0.tar.gz
  2. # tar -zxvf hbase-1.2.0-cdh5.7.0.tar.gz -C ~/app
  3. # cd app
  4. # mv hbase-1.2.0-cdh5.7.0/ hbase

apache版本

  1. # wget http://mirrors.tuna.tsinghua.edu.cn/apache/hbase/1.3.5/hbase-1.3.5-bin.tar.gz
  2. # tar -zxf hbase-1.3.5-bin.tar.gz -C /opt/module/
  3. # cd /opt/module
  4. # mv hbase-1.3.5/ hbase

配置环境变量

  1. # vim ~/.bash_rc
  2. export HBASE_HOME=/opt/module/hbase
  3. export PATH=$PATH:$HBASE_HOME/bin

查看当前版本

  1. # hbase version
  2. OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
  3. HBase 1.2.0-cdh5.7.0
  4. Source code repository file:///data/jenkins/workspace/generic-binary-tarball-and-maven-deploy/CDH5.7.0-Packaging-HBase-2016-03-23_11-28-41/hbase-1.2.0-cdh5.7.0 revision=Unknown
  5. Compiled by jenkins on Wed Mar 23 11:46:29 PDT 2016
  6. From source with checksum 91b52afd1a8dfc556696ed78433f5621

配置

查看JAVA和HADOOP安装信息

  1. # echo $JAVA_HOME
  2. /usr/lib/jvm/java-1.8.0-openjdk
  3. # echo $HADOOP_HOME
  4. /root/app/hadoop

修改/root/app/hbase/conf/hbase-env.sh

  1. export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
  2. export HBASE_CLASSPATH=/root/app/hadoop/conf
  3. export HBASE_MANAGES_ZK=true

ubuntu配置

  1. export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
  2. export HBASE_CLASSPATH=/opt/module/hadoop/etc/hadoop
  3. export HBASE_MANAGES_ZK=true

使用独立zookeeper需要把HBASE_MANAGES_ZK 设置为

  1. export HBASE_MANAGES_ZK=false

修改/root/app/hbase/conf/hbase-site.xml
hbase-site.xml 配置信息如下,假设当前Hadoop集群运行在伪分布式模式下,在本机上运行,且NameNode运行在9000端口

  1. <configuration>
  2. <property>
  3. <name>hbase.rootdir</name>
  4. <value>hdfs://localhost:9000/hbase</value>
  5. </property>
  6. <property>
  7. <name>hbase.cluster.distributed</name>
  8. <value>true</value>
  9. </property>
  10. </configuration>

如果是使用单独的zk需要在增加配置数据

  1. <property>
  2. <name>hbase.zookeeper.quorum</name>
  3. <value>localhost:2181</value>
  4. </property>
  5. <property>
  6. <name>hbase.zookeeper.property.dataDir</name>
  7. <value>/opt/module/zookeeper/data</value>
  8. </property>

启动habase

  1. # ./start-hbase.sh
  2. # jps
  3. 13680 Jps
  4. 14736 NameNode
  5. 13043 HQuorumPeer
  6. 14995 SecondaryNameNode
  7. 15796 Worker
  8. 13142 HMaster
  9. 13274 HRegionServer
  10. 13660 CoarseGrainedExecutorBackend
  11. 15724 Master
  12. 14846 DataNode

ui查看
http://IP:16010/master-status

hbase shell

  1. # hbase shell
  2. OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
  3. 2019-08-18 23:39:21,897 INFO [main] Configuration.deprecation: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
  4. 2019-08-18 23:39:24,635 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
  5. SLF4J: Class path contains multiple SLF4J bindings.
  6. SLF4J: Found binding in [jar:file:/root/app/hbase/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
  7. SLF4J: Found binding in [jar:file:/root/app/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
  8. SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
  9. SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
  10. HBase Shell; enter 'help<RETURN>' for list of supported commands.
  11. Type "exit<RETURN>" to leave the HBase Shell
  12. Version 1.2.0-cdh5.7.0, rUnknown, Wed Mar 23 11:46:29 PDT 2016
  13. hbase(main):001:0>