HDFS和冗余

时间:2016-05-23 18:04:35

标签: hadoop hdfs

我正在规划数据处理管道。我的情况是:

  • 用户将数据上传到服务器
  • 此数据应分发到群集中的一个(且仅一个)节点。没有分布式计算,只选择目前最少做的节点
  • 数据处理管道从某种分布式作业引擎获取数据。虽然这是(最后)我的问题:许多工作引擎依靠HDFS来处理数据。但由于这些数据仅在一个节点上处理,我宁愿避免分发它。但我的理解是HDFS保持数据冗余 - 虽然我找不到任何信息,如果这意味着HDFS上的所有数据是否在所有节点上都可用,或者数据主要在处理它的节点上(本地)。

如果HDFS上的数据完全冗余,由于我的使用场景的IO原因,这将是一个问题。

1 个答案:

答案 0 :(得分:1)

您可以使用Hadoop(Map Reduce + HDFS)来解决您的问题。

  1. 您可以告诉HDFS根据需要存储特定数量的副本。请参阅下面的 dfs.replication 属性。如果只需要一个副本,请将此值设置为1。
  2. conf / hdfs-site.xml - 在主机和所有从机上

    <property>
      <name>dfs.replication</name>
      <value>1</value>
      <description>Default block replication.
      The actual number of replications can be specified when the file is created.
      The default is used if replication is not specified in create time.
      </description>
    </property>
    

    HDFS不必复制每个节点上的数据。更多info

    1. Hadoop的工作原理是“将代码移动到数据”。由于移动代码(主要是MB)需要的网络带宽比移动GB或TB中的数据要少得多,因此您无需担心数据位置或网络带宽。 Hadoop会照顾它。