【问题标题】:Can Hadoop tasks run in parallel on single nodeHadoop任务能否在单节点上并行运行
【发布时间】:2014-03-04 05:26:45
【问题描述】:

我是 hadoop 新手,我有以下问题。

这是我在hadoop中理解的。

1) 在 hadoop 中写入任何文件时,它都会以块的形式存储在所有数据节点中(默认为 64MB)

2) 当我们运行 MR 作业时,将从这个块创建一个拆分,并在每个数据节点上处理拆分。

3) 从每个拆分记录读取器将用于在映射器端生成键/值对。

问题:

1) 一个数据节点可以一次处理多个拆分吗?如果数据节点容量更大呢?

我认为这是 MR1 的限制,而使用 MR2 YARN 我们可以更好地利用资源。

2) 拆分是在数据节点上以串行方式读取,还是可以并行处理以生成键/值对? [通过随机访问数据节点拆分中的磁盘位置]

3) map/reduce 架构中的“槽”术语是什么?我正在阅读其中一篇博客,它说 YARN 将在 Datanode 中提供更好的插槽利用率。

【问题讨论】:

    标签: hadoop hadoop-yarn


    【解决方案1】:

    让我首先解决what I have understood in hadoop 部分。

    1. 存储在 Hadoop 文件系统上的文件存储在所有数据节点上。是的,它被分割成块(默认为 64MB),但是存储这些块的 DataNode 的数量取决于a.File Sizeb.Current Load on Data Nodesc.Replication Factord.Physical Proximity。 NameNode 在决定哪些数据节点将存储文件的块时会考虑这些因素。

    2. 再次对每个数据节点不得处理拆分。首先,DataNode 只负责管理数据的存储,不执行作业/任务。 TaskTracker 是从节点,负责在各个​​节点上执行任务。其次,只有那些包含特定作业所需数据的节点才会处理拆分,除非这些节点上的负载太高,在这种情况下,拆分中的数据会被复制到另一个节点并在那里处理。

    现在来回答问题,

    1. 同样,dataNode 不负责处理作业/任务。我们通常将 dataNode + taskTracker 的组合称为节点,因为它们通常位于同一节点上,处理不同的职责(数据存储和运行任务)。给定节点一次可以处理多个拆分。通常单个拆分分配给单个 Map 任务。这转化为在单个节点上运行的多个 Map 任务,这是可能的。

    2. 输入文件中的数据以串行方式读取。

    3. 节点的处理能力由Slots 的数量定义。如果一个节点有 10 个 slot,则意味着它可以并行处理 10 个任务(这些任务可能是 Map/Reduce 任务)。集群管理员通常会根据每个节点的物理配置来配置每个节点的插槽数,例如内存、物理存储、处理器内核数等。

    【讨论】:

      猜你喜欢
      • 2023-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多