保存Hadoop中的Mapper输出的位置?

nav*_*vaz 2 java hadoop mapreduce hdfs cloudera

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

我已经创建了一个目录来存储这个mapper输出,如下所示.

 <property>
 <name>mapred.local.dir</name>
 <value>/app/hadoop/tmp/myoutput</value>
 </property>                     
Run Code Online (Sandbox Code Playgroud)

我看着

 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  
Run Code Online (Sandbox Code Playgroud)

当我运行mapreduce工作时,我无法在这里找到任何东西.

谢谢

Ama*_*mar 5

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

<property>
    <name>mapred.local.dir</name>
    <value>$DIR</value>
</property>
Run Code Online (Sandbox Code Playgroud)

  • 谢谢。我没有在mapred.site.xml文件中提到任何mapred.local.dir。因此默认情况下映射器输出保存在哪里?我只需要映射器输出的大小。 (2认同)