HBase介绍
HBase是参考google的bigtable的一个开源产品,建立在hdfs之上的一个提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。是一种介于nosql和RDBMs之间的一种数据库系统,仅支持通过rowkey和range进行数据的检索,主要存储非结构化数据和半结构化数据。
HBase和Hadoop一样,目标是通过横向扩展,添加普通机器来增加存储性能和计算性能。HBase特点:大(一个表可以有上亿行以及百万级的行)、面向行存储、稀疏(由于null不占用存储空间,所有表结果可以设计的非常稀疏)。
HBase组成结构
HBase使用Zookeeper进行集群节点管理,当然HBase自身集成了一个ZK系统,不过一般情况在实际生产环境中不使用。
HBase由master和regionserver两类节点(如果使用HBase自带的zk服务,那么还有HQuorumPeer进程)。Hbase支持提供backup master进行master备份。其中master节点负责和zk进行通信以及存储regionserver的相关位置信息,regionserver节点实现具体对数据的操作,最终数据存储在hdfs上。
HBase架构
RegionServer集群结构
HBase逻辑存储结构
HBase物理存储结构
|
|||||||||||||||||||||||||
HBase安装
1 下载
https://www.apache.org/dyn/closer.lua/hbase/2.1.3/hbase-2.1.3-bin.tar.gz
2 解压
tar -zxvf hbase-2.1.3-bin.tar.gz
3 修改conf/hbase-env.sh
JAVA_HOME=/home/hadoop/bigdatasoftware/jdk1.8.0_161
port HBASE_MANAGES_ZK=false
4 修改hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop-001:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 0.98后的新变动,之前版本没有.port,默认端口为16000 -->
<property>
<name>hbase.master.port</name>
<value>16000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop-001:2181,hadoop-002:2181,hadoop-003:2181</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/bigdatasoftware/zookeeper-3.4.13/zkdata</value>
</property>
</configuration>
5 修改regionservers
hadoop-001
hadoop-002
hadoop-003
6 . 软连接 hadoop 配置文件到 hbase:(因为 hbase集群 是依赖于 hadoop集群 的)
ln -s /home/bigdatasoftware/hadoop-2.7.2/etc/hadoop/hdfs-site.xml /home/hadoop/bigdatasoftware/hbase-2.1.3/conf/hdfs-site.xml
ln -s /home/bigdatasoftware/hadoop-2.7.2/etc/hadoop/core-site.xml /home/hadoop/bigdatasoftware/hbase-2.1.3/conf/core-site.xml
7.发送hbase到hadoop-002,hadoop-003
scp -r ./hbase-2.1.3 hadoop@hadoop-002:/home/hadoop/bigdatasoftware/
scp -r ./hbase-2.1.3 hadoop@hadoop-003:/home/hadoop/bigdatasoftware/
7 启动验证
./bin/start-hbase.sh
浏览器访问hadoop-001:60010,如下图则配置成功