版权声明:本文为博主原创文章,可允许转载,但注明出处。 https://blog.csdn.net/JavaWebRookie/article/details/78079869
Use Apache HBase™ when you need random, realtime read/write access to your Big Data. This project's goal is the hosting of very large tables -- billions of rows X millions of columns -- atop clusters of commodity hardware. Apache HBase is an open-source, distributed, versioned, non-relational database modeled after Google's Bigtable: A Distributed Storage System for Structured Data by Chang et al. Just as Bigtable leverages the distributed data storage provided by the Google File System, Apache HBase provides Bigtable-like capabilities on top of Hadoop and HDFS.
Hbase 在 hadoop 生态圈中的位置
Hadoop使用分布式文件系统,用于存储大数据,并使用MapReduce来处理。Hadoop擅长于存储各种格式的庞大的数据,任意的格式甚至非结构化的处理。
1、Hbase简介
HBase 是建立在Hadoop文件系统之上的分布式面向列的数据库。它是一个开源项目,是横向扩展的。HBase是一个数据模型,类似于谷歌的大表设计,可以提供快速随机访问海量结构化数据。它利用了Hadoop的文件系统(HDFS)提供的容错能力。它是Hadoop的生态系统,提供对数据的随机实时读/写访问,是Hadoop文件系统的一部分。人们可以直接或通过HBase的存储HDFS数据。使用HBase在HDFS读取消费/随机访问数据。 HBase在Hadoop的文件系统之上,并提供了读写访问。
2、HBase的存储机制
HBase是一个面向列的数据库,在表中它由行排序。表模式定义只能列族,也就是键值对。一个表有多个列族以及每一个列族可以有任意数量的列。后续列的值连续地存储在磁盘上。表中的每个单元格值都具有时间戳。
Hbase 架构图
3、Hbase 安装与SHELL使用
Hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://chenzy-1:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/usr/local/chenzy/hadoop/cdh/hbase-0.98.6-cdh5.3.6/hbase/tmp</value>
</property>
</configuration>
zk是用默认的、jdk环境、pid
export JAVA_HOME=/usr/local/java/jdk1.7.0_67
export HBASE_PID_DIR=/usr/local/chenzy/hadoop/cdh/hbase-0.98.6-cdh5.3.6/pids
export HBASE_MANAGES_ZK=true
# Hbase 0.98.6
export HBASE_HOME=/usr/local/chenzy/hadoop/cdh/hbase-0.98.6-cdh5.3.6
export PATH=$HBASE_HOME/bin:$PATH
Hbase是在hdfs基础上的、所以我们要安装hdfs、先启动hdfs、后启动Hbase。
# bin/start-hbase.sh 启动Hbase
[root@chenzy-1 ~]# hbase shell 使用SHELL
hbase(main):001:0> hbase help 帮助命令
hbase(main):002:0> list 查看表