hadoop - Hadoop>是在运行Hadoop作业时工作的datanode和namenode进程

标签 hadoop hdfs

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/

相关文章:

java - 无法列出hadoop中的文件

java - append 到 HDFS 中的现有文件时出现异常

hadoop - oozie pig 配置操作中的 <job-tracker> 和 <name-node> - 我在哪里可以找到它们?

hadoop - 使用 Sqoop 导入时 Parquet 文件中的脏值

apache-spark - 在用压缩文件替换 HDFS 中的小文件时如何避免破坏事件的 Hive/Presto 查询?

hadoop - HDFS 平衡器会强制执行新的机架感知配置吗?

hadoop - Hadoop 总是会在节点之间平均分配工作吗?

amazon-web-services - 使用YARN运行分布式xgboost的问题

hadoop - Hive QL/UDF/Impala 查询的包装器

java - 如何在 Scala 中使用 mapPartitions?