hadoop - Amazon Emr - 当我们拥有核心节点时,任务节点的需求是什么?

标签 hadoop hadoop2 amazon-emr

我最近在学习 Amazon EMR,据我所知,EMR 集群让我们选择 3 个节点。

  1. Master,运行 NameNode、Job Tracker 和 Resource manager 等主要 Hadoop 守护进程。
  2. 运行 Datanode 和 Tasktracker 守护进程的核心。
  3. 只运行 TaskTracker 的任务。

我想问你们为什么 EMR 提供任务节点? hadoop 建议我们应该在同一个节点上安装 Datanode 守护进程和 Tasktracker 守护进程。亚马逊这样做背后的逻辑是什么?您可以将 S3 中的数据流式传输到核心节点上的 HDFS,在 HDFS 上进行处理,而不是将数据从 HDFS 共享到任务节点,这在这种情况下会增加 IO 开销。因为据我对 hadoop 的了解,TaskTrackers 在 DataNodes 上运行,DataNodes 具有用于该特定任务的数据 block 那么为什么 TaskTrackers 在不同的节点上?

最佳答案

根据 AWS 文档 [1]

The node types in Amazon EMR are as follows: Master node: A node that manages the cluster by running software components to coordinate the distribution of data and tasks among other nodes for processing. The master node tracks the status of tasks and monitors the health of the cluster. Every cluster has a master node, and it's possible to create a single-node cluster with only the master node.

Core node: A node with software components that run tasks and store data in the Hadoop Distributed File System (HDFS) on your cluster. Multi-node clusters have at least one core node.

Task node: A node with software components that only runs tasks and does not store data in HDFS. Task nodes are optional.

根据 AWS 文档 [2]

Task nodes are optional. You can use them to add power to perform parallel computation tasks on data, such as Hadoop MapReduce tasks and Spark executors.

Task nodes don't run the Data Node daemon, nor do they store data in HDFS.

一些用例是:

  • 您可以使用任务节点来处理来自 S3 的流。在这种情况下,网络 IO 不会增加,因为使用的数据不在 HDFS 上。
  • 由于没有运行 HDFS 守护进程,因此可以添加或删除任务节点。因此,任务节点上没有数据。核心节点运行 HDFS 守护进程并不断添加和删除新节点不是一个好的做法。

资源:

[1] https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-overview.html#emr-overview-clusters

[2] https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-master-core-task-nodes.html#emr-plan-task

关于hadoop - Amazon Emr - 当我们拥有核心节点时,任务节点的需求是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41519400/

相关文章:

hadoop - 从 S3 读取超过 500GB 的数据并将 400GB 输出保存到 S3 是个好主意吗?

hadoop - Pig HCatLoader java.lang.String 无法转换为 org.apache.hadoop.hive.common.type.HiveVarchar

hadoop - 为什么NameNode在启动时一直处于SAFEMODE?

hadoop - 如何将包转换为数值数组?

hadoop - 如果映射器在中途失败并且 Hadoop 重试该映射器,自定义计数器会发生什么

amazon-web-services - 尝试在 EMR 上安装 Spark 时引导失败

workflow - EMR + DynamoDB 工作流程设置抛出 Hive.createTable NoSuchMethodError JsonErrorResponseHandler

hadoop - Apache Spark 通过跨集群访问 hdfs 中的数据

java - Hadoop 许多映射器

hadoop - 我怎么知道Sqoop在Hadoop和NoSQL之间传输数据的时间?