【问题标题】:Hadoop and HBase integrationHadoop 和 HBase 集成
【发布时间】:2016-07-14 22:51:09
【问题描述】:

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

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

【问题讨论】:

    标签: hadoop hbase


    【解决方案1】:

    很容易理解:

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

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

    可以在这里阅读:Apache hbase document

    【讨论】:

      【解决方案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/,如果您想深入挖掘,应该会有所帮助。

      【讨论】:

        【解决方案3】:

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

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

        更新

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

        • Ghemawat、Sanjay、Howard Gobioff 和 Shun-Tak Leung。 “谷歌 文件系统。”ACM SIGOPS 操作系统评论。第 37 卷。第 5 期。 ACM,2003 年。

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

        • Chang、Fay 等人。 “Bigtable:一个分布式存储系统 结构化数据。” ACM 计算机系统事务 (TOCS) 26.2 (2008 年):4.

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-06-03
          • 2012-11-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多