Hbase安装配置

HBase与Hadoop的版本选择

X : not supported 已知功能不完整或者存在CVE,因此放弃了支持 Y : supported 经过测试全功能支持 NT : Not tested 未经过测试

Java support by release line

HBase Version

JDK 7

JDK 8

JDK 9+

2.1+

X

Y

NT

1.3+

Y

Y

NT

Hadoop version support matrix

HBase-1.3.x

HBase-1.4.x

HBase-1.5.x

HBase-2.1.x

HBase-2.2.x

Hadoop-2.4.x

Y

X

X

X

X

Hadoop-2.5.x

Y

X

X

X

X

Hadoop-2.6.0

X

X

X

X

X

Hadoop-2.6.1

Y

X

X

X

X

Hadoop-2.7.0

X

X

X

X

X

Hadoop-2.7.1+

Y

Y

X

Y

X

Hadoop-2.8.[0-2]

X

X

X

X

X

Hadoop-2.8.[3-4]

NT

NT

X

Y

X

Hadoop-2.8.5+

NT

NT

Y

Y

Y

Hadoop-2.9.[0-1]

X

X

X

X

X

Hadoop-2.9.2

NT

NT

Y

NT

Y

Hadoop-3.0.[0-2]

X

X

X

X

X

Hadoop-3.0.3+

X

X

X

Y

X

Hadoop-3.1.0

X

X

X

X

X

Hadoop-3.1.1+

X

X

X

Y

Y

安装

下载并解压

配置环境变量:

export HBASE_HOME=/opt/framework/hbase
export PATH=$PATH:$HBASE_HOME/bin

hbase-env.sh

export JAVA_HOME=/opt/framework/jdk

# Tell HBase whether it should manage it's own instance of Zookeeper or not.
export HBASE_MANAGES_ZK=true

单机节点配置

hbase-site.xml

<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>file:///opt/framework/hbase/hbasedata</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/opt/framework/hbase/zkdata</value>
  </property>
</configuration>

启动Hbase

$ start-hbase.sh
$ jps
...
4593 HMaster
...

伪分布式

hbase-site.xml

<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://hadoop:9000/hbase</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/opt/framework/hbase/zkdata</value>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
</configuration>

启动Hbase

$ start-hbase.sh
$ jps
...
11283 HMaster
11411 HRegionServer
11212 HQuorumPeer
...

完全分布式

HBASE是一个分布式系统 其中有一个管理角色: HMaster(一般2台,一台active,一台backup) 其他的数据节点角色: HRegionServer(很多台,看数据容量)

实际上,需要一个完全分布式的配置来全面测试HBase,并在实际场景中使用它。在分布式配置中,集群包含多个节点,每个节点运行一个或多个HBase守护进程。这些包括主实例和备份主实例、多个ZooKeeper节点和多个RegionServer节点。

角色分配

hadoop1:namenode hmaster
hadoop2:datanode regionserver zookeeper backup-hmaster
hadoop3:datanode regionserver zookeeper
hadoop4:datanode regionserver zookeeper

hbase-env.sh

export JAVA_HOME=/usr/local/java/jdk1.8.0_45

# Tell HBase whether it should manage it's own instance of Zookeeper or not.
export HBASE_MANAGES_ZK=false

hbase-site.xml

<configuration>
  <!-- 指定hbase在HDFS上存储的路径 -->
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://hadoop1:9000/hbase</value>
  </property>
  <!-- 指定hbase是分布式的 -->
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <!-- 指定zk的地址,多个用“,”分割 -->
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>hadoop2:2181,hadoop3:2181,hadoop4:2181</value>
  </property>
</configuration>

regionservers

hadoop2
hadoop3
hadoop4

在hbase的conf目录下创建backup-masters文件,并添加主机名hadoop2

baskup-masters

hadoop2

分发至所有节点

for i in 2 3 4; do scp -r hbase hadoop${i}:/opt/framework/
  1. 启动Hbase

  2. 先启动zookeerper

  3. 再启动hbase:使用start-hbase.sh

Last updated

Was this helpful?