java - Hadoop 中的 Mapper 输出保存在哪里?

标签 java hadoop mapreduce hdfs cloudera

我对有效管理 Hadoop shuffle 流量并有效利用网络带宽感兴趣。为此,我想知道每个数据节点生成多少洗牌流量?混洗流量只不过是映射器的输出。那么这个映射器输出保存在哪里?如何实时获取每个数据节点的映射器输出的大小?感谢您的帮助。

我创建了一个目录来存储此映射器输出,如下所示。

 <property>
 <name>mapred.local.dir</name>
 <value>/app/hadoop/tmp/myoutput</value>
 </property>                     

我看了

 hduser@dn4:/app/hadoop/tmp/myoutput$ ls -lrt
 total 16
 drwxr-xr-x 2 hduser hadoop 4096 Dec 12 10:50 tt_log_tmp
 drwx------ 3 hduser hadoop 4096 Dec 12 10:53 ttprivate
 drwxr-xr-x 3 hduser hadoop 4096 Dec 12 10:53 taskTracker
 drwxr-xr-x 4 hduser hadoop 4096 Dec 12 13:25 userlogs  

当我运行mapreduce作业时,我在这里找不到任何东西。

谢谢

最佳答案

映射作业的输出存储在映射器的本地磁盘中。一旦映射作业完成,这些本地输出就会被传输到 reducer 。您可以检查 $HADOOP_HOME/conf/mapred-site.xml 以检查映射器输出的存储位置。

<property>
    <name>mapred.local.dir</name>
    <value>$DIR</value>
</property>

关于java - Hadoop 中的 Mapper 输出保存在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27437964/

相关文章:

java - 创建计算器但无法退出

java - 来自java的bash unix processbuilder未运行

hadoop - 为什么 hive 不允许在 JOIN 子句中使用 >、>=,但您可以使用 JOIN ON IF(a > b, 1, 0) = 1 来绕过它?

两个安全(kerberos)集群之间的 Hadoop distcp

java - MapReduce 中的 N 轮减少

java - 了解链表队列的入队方法

java - 如何设置 IntelliJ IDEA 14 以在可能的情况下添加 "final"关键字?

java - 运行 EMR 时出现 "Error: Could not find or load main class"?

hadoop - 想要比较Hadoop上的两个连续作业

Hadoop 2.6.0 官方实例 : Yarn (MR2) much slower than Map Reduce (MR1) in single node setup