Hadoop和HBase集成

时间:2016-03-27 16:02:10

标签: hadoop hbase

我是大数据技术的新手,我对hbase如何与hadoop集成有疑问。它是什么意思" Hbase位于HDFS之上"? 。我的理解是HDFS是分布在多个节点上的结构化和非结构化数据的集合,HBase是结构化数据。

Hbase如何与Hadoop集成,以提供对底层数据的实时访问。我们是否必须编写特殊工作来构建索引等?换句话说,在Hbase和hdfs之间有一个额外的层,它具有HBase理解的结构中的数据

3 个答案:

答案 0 :(得分:2)

HDFS 是分布式文件系统;可以对其进行大多数常规FS操作,例如列出目录中的文件,编写常规文件,读取文件的一部分等。它不仅仅是"结构化或非结构化数据的集合"不仅仅是 EXT4 NTFS 文件系统。

HBase 是一个内存中的键值存储,可能持续 HDFS (它不是硬性要求,你可以在任何分布式文件系统上运行HBase)。对于任何要求HBase的读取密钥请求,它将首先检查其运行时内存缓存以查看它是否具有缓存值,否则访问其在HDFS上存储的文件以查找和读出特定值。 HBase中提供了各种配置来控制缓存的使用方式,但HBase的速度来自缓存和索引持久性(更快,搜索文件读取)的组合。

HBase在HDFS上基于文件的持久性在写入时自动进行密钥索引,因此用户不需要手动索引。这些文件是常规HDFS文件,但专门用于HBase的使用格式,称为HFiles。

这些文章略显过时,但仍然反映了HBase使用的架构:http://blog.cloudera.com/blog/2012/06/hbase-write-path/http://blog.cloudera.com/blog/2012/06/hbase-io-hfile-input-output/,如果您想深入挖掘,应该会有所帮助。

答案 1 :(得分:1)

HDFS是一个分布式文件系统,HBase是一个NoSQL数据库,它依赖于HDFS文件系统来存储它的数据。

您应该阅读这些技术,因为您的结构化/非结构化比较不正确。

<强>更新

如果您对这些技术的起源感兴趣,请查看Google文件系统,MapReduce和Bigtable论文。

  • Ghemawat,Sanjay,Howard Gobioff和Shun-Tak Leung。 &#34;谷歌 文件系统。&#34; ACM SIGOPS操作系统审查。卷。 37.第5号。 ACM,2003。

  • Dean,Jeffrey和Sanjay Ghemawat。 &#34; MapReduce:大型集群上的简化数据处理。&#34; ACM的通讯51.1(2008):107-113。

  • Chang,Fay,et al。 &#34; Bigtable:分布式存储系统 结构化数据。&#34; ACM计算机系统交易(TOCS)26.2 (2008):4。

答案 2 :(得分:1)

这很容易理解:

HDFS是一个分布式文件系统,通过apped模型提供写入和读取。

Hbase是一个基于HDFS文件系统的NOSQL数据库,必须依赖它。

这可以在这里阅读:Apache hbase document