Hadoop启动后,两种类型的守护进程正在运行。一个是在名称节点上称为namenode的守护进程,另一个是在数据节点上称为datanode的守护进程。我确信当通过“hdfs dfs”命令将本地文件系统中的大文件加载到HDFS时,将使用它们。
但是,当Hadoop MapReduce作业正在运行时,还会使用它吗?我的理解不是,但是可能在Shuffle期间使用它,此时map函数的输出可能会从一个数据节点转移到另一个数据节点。
最佳答案
是。名称节点和数据节点一直在运行。
当启动MapReduce作业时,根据作业的不同,可以生成“n”个mapper和reduce任务(由分割数确定)。
每个Mapper都会读取部分输入(拆分)。因此,在从HDFS读取输入时,涉及到名称节点/数据节点。
在随机和排序阶段,Reducer直接从不同的Mappers读取数据。但是,处理完成后,Reduce任务必须将输出写入HDFS。同样,名称节点/数据节点参与将数据写入HDFS。
关于hadoop - Hadoop>是在运行Hadoop作业时工作的datanode和namenode进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33709655/