1、先决条件
确保Hadoop集群已搭建完成,并运行良好。
准备好HBase的安装包。
2、HBase简介
HBase是一个分布式的、面向列的开源数据库,就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。它是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
HBase有如下使用场景:
- 大数据量 (100s TB级数据) 且有快速随机访问的需求。
- 容量的优雅扩展。
- 大数据的驱使,动态扩展系统容量的必须的。例如:webPage DB。
- 业务场景简单,不需要关系数据库中很多特性(例如交叉列、交叉表,事务,连接等等)。
- 优化方面:合理设计rowkey。因为hbase的查询用rowkey是最高效的,也几乎的唯一生产环境可行的方式。所以把你的查询请求转换为查询rowkey的请求。
将HBase的RegionServer部署在3个DN节点上,HBase的HMaster服务部署在NNA和NNS节点,部署2个HMaster保证集群的高可用性,防止单点问题。下面我们开始配置HBase的相关配置,使用独立的ZK,未使用HBase自带的ZK。
#配置hbase-env.sh文件
export JAVA_HOME=/usr/java/jdk1.7
export HBASE_MANAGES_ZK=true
#配置hbase-site.xml文件
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hbase.zookeeper.quorum</name>
<value>dn1:2181,dn2:2181,dn3:2181</value>
<description>The directory shared by RegionServers.
</description>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/data/zk</value>
<description>Property from ZooKeeper config zoo.cfg.
The directory
where the snapshot is stored.
</description>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://cluster1/hbase</value>
<description>The directory shared by RegionServers.
</description>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
<description>The mode the cluster will be in. Possible values are
false: standalone and pseudo-distributed setups with managed
Zookeeper
true: fully-distributed with unmanaged Zookeeper Quorum (see
hbase-env.sh)
</description>
</property>
</configuration>
#设置regionservers
- dn1
- dn2
- dn3
4、启动集群
$ start-hbase.sh(在NNA节点)
$ hbase-daemon.sh start master(在NNS节点)
注:需要注意的时,在启动集群之前确保各个节点之间的时间是同步的,或者时间差不能太大,若时间差太大,会导致HBase启动失败。
在各个节点输入jps命令查看相关启动进程,各个节点分布的进程如下表所示:
节点 | 进程 |
NNA | HMaster |
NNS | HMaster |
DN1 | RegionServer |
DN2 | RegionServer |
DN3 | RegionServer |
先启动的是NNA的HMaster,所提NNA节点HMaster对外提供服务,截图如下所示:
6、shell操作
$ hbase shell
> list
>scan't'
截图如下: