一、Hbase概念剖析
Hbase 是Hadoop Database的简称,本质上来说就是Hadoop系统的数据库。
- Hbase 是Hadoop Database的简称,本质上来说就是Hadoop系统的数据库,为Hadoop框架当中的结构化数据提供存储服务,是面向列的分布式数据库。这一点与HDFS是不一样的,HDFS是分布式文件系统,管理的是存放在多个硬盘上的数据文件,而Hbase管理的是类似于Key—Value映射的表。
- Hbase底层仍然依赖HDFS来作为其物理存储,并且还需要Zookeeper协助提供部分配置服务,包括维护元信息和命名空间等。
- 可以将结构化和非结构化数据存储在Hadoop和HBase中 ,它们提供了多种访问数据的机制,例如Shell和其他API 。并且HBase以列式方式将数据存储为键/值对,而HDFS将数据存储为平面文件。
- 传统的关系型数据库,数据按照行进行存储,在进行查询时,需要使用大量的I/O,数据库必须大量膨胀才能满足性能要求,这在面对大规模数据处理任务时,计算性能受到极大的拖累,完全不适应大数据处理的需求。而Hbase的数据存储,数据是按列存储的,查询时只访问所涉及的列,大量降低系统I/O,数据类型一致,可以高效压缩存储。
HBase中有Column Family的概念,简称为CF。CF一般用于将相关的列(Column)组合起来。上述例子中,“姓”和“名”组合成为info,组合的形式是类似于字典的key-value形式。在物理上HBase其实是按CF存储的,只是按照Row-key将相关CF中的列关联起来。
hadoop与hbase系统的一些显着特征:
Hadoop
1、针对大型文件的流式访问进行了优化;
2、遵循一次性写一读的意识形态;
3、不支持随机读/写;
HBase特点
1、以柱状方式存储键/值对(列作为列族聚集在一起);
2、提供对大型数据集中少量数据的低延迟访问;
3、提供灵活的数据模型;
4、Hadoop最适合离线批量处理类型,而有实时需求时使用HBase。
Hbase应用场景
HBase 解决不了所有的问题,但是针对某些特点的数据可以使用 HBase 高效地解决,如以下的应用场景。
1、 数据模式是动态的或者可变的,且支持半结构化和非结构化的数据。
2、 数据库中的很多列都包含了很多空字段,在 HBase 中的空字段不会像在关系型数据库中占用空间。
3、需要很高的吞吐量,瞬间写入量很大。
4、数据有很多版本需要维护,HBase 利用时间戳来区分不同版本的数据。
5、 具有高可扩展性,能动态地扩展整个存储系统。
总体来说:
Hbase对数据的存储方式和数据结构进行的修改和规整,使其更加善于去处理大数据的场景,在Hadoop MapReduce运行计算时能够提供更好的底层支持。
HBase 已成熟地应用于国内外的很多大公司,总之,HBase> 适合用来存储各种类型的大规模的数据,可为用户提供实时的在线查询,同时也支持离线的应用。
二、Hbase分布式集群部署
节点 | IP |
---|---|
Node1 | 192.168.0.47 |
Node2 | 192.168.0.32 |
Node3 | 192.168.0.33 |
1、基础环境部署
这里和hadoop、Zookeeper做了整合,需要提前把hadoop与zookeeper部署一下,见下面文档,环境一致,可以直接套用
centos7 Hadoop集群部署
https://blog.youkuaiyun.com/oToyix/article/details/118520585
centos7 Zookeeper集群部署
https://blog.youkuaiyun.com/oToyix/article/details/118543765
2、Hbase软件下载&部署配置,操作指令如下:
wget -c http://archive.apache.org/dist/hbase/2.2.4/hbase-2.2.4-bin.tar.gz
tar -xzf hbase-2.2.4-bin.tar.gz
mkdir -p /data/
\mv hbase-2.2.4 /data/hbase/
useradd hadoop
chown -R hadoop:hadoop /data/hbase/
3、在Hadoop配置的基础上,配置环境变量HBASE_HOME,编辑 vim /etc/profile 在末尾加入如下代码:
export HBASE_HOME=/data/hbase/
export PATH=$PATH:$HBASE_HOME/bin
4、vi /data/hbase/conf/hbase-env.sh,在配置文件中加入如下代码:
export JAVA_HOME=/usr/java/jdk1.8.0_191/
5、配置vi /data/hbase/conf/hbase-site.xml文件,修改配置文件代码如下;
<configuration>
<property></