2016-03-27 80 views
1

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

Hbase如何与Hadoop集成以提供对底层数据的实时访问。我们是否需要编写特殊的作业来构建索引等?换言之是有,在结构HBase的理解

回答

2

HDFS是一个分布式文件系统;人们可以对其进行大多数常规的FS操作,例如列出目录中的文件,编写常规文件,读取文件的一部分等。它不仅仅是“一组结构化或非结构化数据”,或者不仅仅是您的EXT4NTFS文件系统。

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

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

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

1

HDFS是一个分布式文件系统具有数据HBASE和HDFS之间的附加层,和HBaseNoSQL数据库依赖于HDFS文件系统来存储它的数据。

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

更新

你应该看看谷歌文件系统,MapReduce的,和Bigtable的文件,如果你有兴趣在这些技术的起源。

  • Ghemawat,Sanjay,Howard Gobioff和Shun-Tak Leung。 “Google 文件系统”。 ACM SIGOPS操作系统审查。卷。 37. No. 5. ACM,2003.

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

  • Chang,Fay,et al。 “Bigtable: 结构化数据的分布式存储系统。”在计算机系统ACM交易(TOCS)26.2 (2008年):4

1

这很容易理解:

HDFS是一种分布式filesytem并提供写,并通过apped模型读取。

Hbase是一个建立在HDFS文件系统上的NOSQL数据库,必须依赖它。

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