hadoop作业如何在各种节点上运行

时间:2018-05-03 02:15:05

标签: hadoop

我是Hadoop的新手,所以可能会问dum问题。

鉴于我有三个Hadoop从属节点,所有这些节点都有天气数据.Saying

  • Node-1有1900 - 1929年的天气数据;
  • Node-2有1930年至1959年的天气数据;
  • Node-3有1960年至1989年的天气数据;

我有一个Map Reduce工作,可以从1900年到1989年找到更高的温度。

我的问题是:

当我们提交mr作业时,Hadoop会自动在这三个节点上提交作业吗?或者我们需要编写脚本来执行此操作。

感谢您的患者和答案

2 个答案:

答案 0 :(得分:1)

HDFS是一个分布式文件系统。因此,天气数据将自动分布在3个从节点中。默认情况下,它将被复制3次。节点1,节点2和节点3都可以保存来自所有3个时间帧(1900-1929,1930-1959,1960-1989)的数据。当数据上传到HDFS时,将自动完成此分发和复制。有一个名为NameNode的主节点,它保存有关文件块及其所在节点的映射的元数据信息。

MapReduce是一种分布式数据处理方法。提交到群集的MapReduce作业将自动分布在3个节点上。 Map和reduce任务将在节点上运行,尽可能地利用数据局部性。这意味着,每个节点都会尽可能地处理存储在其上的数据。如果有任务失败,它们将被重试一定次数。所有这些都会在作业执行过程中自动发生。

如需深入了解,请查看Hadoop MapReduce教程。

答案 1 :(得分:0)

在插入HDFS时,数据不会按日期范围或键进行分片,而是根据“HDFS块”均匀分布并在所有节点上均匀复制。但是,假设复制设置为1,但即便如此,第一个范围的部分可能存在于所有三个节点上,而最后一个范围仅存在于一个节点上。

HDFS协议决定放置块的位置,而不是外部应用程序作为客户端

MapReduce(或Spark)将处理“输入拆分”,无论它们存在于何处(很容易只是一个节点)。这是自动的。您的代码将部署在每个节点上(假设使用YARN)来读取datanode本身的数据(如果这是NodeManagers的安装方式),然后收集回驱动程序进程,该进程可选择输出到本地终端