【问题标题】:Can you use HDFS as your principal storage?您可以使用 HDFS 作为您的主要存储吗?
【发布时间】:2019-04-07 00:42:43
【问题描述】:

将数据保存在 Hadoop 中并使用 Spark/Hive 等使用它是否可靠?

使用 HDFS 作为主存储有哪些优势?

【问题讨论】:

    标签: hadoop hdfs storage data-lake


    【解决方案1】:

    HDFS 仅与维护文件元数据的 Namenode 一样可靠。你最好设置 Namenode HA 并经常拍摄它们的快照,并将它们存储在远离 HDFS 的外部。

    如果所有 Namenode 不可用,或者它们的元数据存储损坏,您将无法读取 HDFS 数据节点数据,尽管这些文件本身很好,并且高度可用

    【讨论】:

      【解决方案2】:

      以下是将数据存储在 Hive 与 HDFS(和/或 HBase)中的一些注意事项。

      蜂巢:

      1. HDFS 是一个支持故障转移和 HA 的文件系统。 HDFS 将根据您选择的复制因子将数据复制到多个数据节点中。 Hive 建立在 Hadoop 之上,因此可以将数据存储在 HDFS 中,并利用 HDFS 的优点进行 HA。
      2. Hive 利用predicates-pushdown 提供巨大的性能优势。 Hive 还可以与现代文件格式结合使用,例如 parquet 和 ORC,从而进一步提高性能(利用谓词下推)。
      3. Hive 通过类似于 SQL 的语言 HQL(Hive 查询语言)提供对数据的非常轻松的访问。
      4. Hive 与 Spark 配合得非常好,您可以将它们结合起来,也就是将 Hive 数据检索到数据帧和将数据帧保存到 Hive。

      HDFS/HBase:

      1. Hive 是用于数据分析的仓库系统,因此 Hive CRUD 操作比直接访问 HDFS 文件(或为快速 CRUD 操作构建的 HBase)相对慢。例如,在流应用程序中,在 HDFS 或 HBase 中保存数据将比在 Hive 中快得多。如果您需要快速存储(或插入查询)并且不对大型数据集进行任何分析,那么您应该更喜欢 HDFS/HBase 而不是 Hive。
      2. 如果性能对您的应用程序非常重要,因此您更愿意跳过 Hive 直接访问 HDFS 文件的额外层。
      3. 团队决定不使用 SQL。

      相关帖子:

      When to use Hadoop, HBase, Hive and Pig?

      【讨论】:

      • 帖子没有询问 HBase 或 Hive...?
      • 我认为这也是关于 HDFS 和 Hive 之间的差异。它们是如何相关的,或者您如何将它们结合起来。至少这是解释它的一种方式:)
      猜你喜欢
      • 2011-04-26
      • 2013-10-22
      • 1970-01-01
      • 2011-11-26
      • 2020-05-18
      • 2012-09-22
      • 2020-06-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多