开发者社区> 问答> 正文

hadoop2.2.0集群运行wordcount例子生成2个结果文件:配置报错 

最近在虚拟机中安装了Hadoop2.2.0的集群,nameNode是redhat的,dataNode是ubuntu的,起服务进程都是正常的,通过JPS和50070都可以正常访问,运行例子wordcount后发现在输出文件夹里生成了2个结果文件,part-r-00000,part-r-00001,这2个文件里的内容完全不一样,就是把单词统计结果分别存到了2个文件中,结果是正确的,但是分在了2个文件中。请教大神,这会是什么问题导致的?SSH方面我配置了nameNode可以免登陆到dataNode,副本那个参数我配置了2,虽然只有1台dataNode

展开
收起
kun坤 2020-06-01 00:07:15 493 0
1 条回答
写回答
取消 提交回答
  • 根据我的理解, 你应该有2个reducer 这两个reducer 分别输出这两个文件。
    可以参考 MultipleOutputs api文档 进行重命名 或者 其他处理:
    http://hadoop.apache.org/docs/r2.3.0/api/org/apache/hadoop/mapreduce/lib/output/MultipleOutputs.html
    另见解释
    http://stackoverflow.com/questions/10924852/map-reduce-output-files-part-r-and-part ######怎么看是不是有2个reduce?我看了参考的网址,上面说的是用代码,可是我现在是运行例子程序,而且是直接用shell脚本运行jar###### 我找到原因了,是因为mapred-site.xml中我配的了mapred.map.tasks和mapred.reduce.tasks。

    <property>
     <name>mapred.map.tasks</name>
     <value>10</value>
     <description>As a rule of thumb, use 10x the number of slaves(i.e., number of tasktrackers).
      </description>
    </property>
    <property>
     <name>mapred.reduce.tasks</name>
     <value>2</value>
     <description>As a rule of thumb, use 2x the number of slaveprocessors (i.e., number of tasktrackers).
      </description>
    </property> 我查了这个属性的设置是需要根据硬件环境相关的并发数,可能我设置的数量不正确导致,我把这2项属性设置去除后就正常了 ######setReduceTaskNum?######我不是用代码去跑的,所以我也不清楚是不是你说的这个,我只是直接命令行运行jar包

    2020-06-01 00:07:19
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
《构建Hadoop生态批流一体的实时数仓》 立即下载
零基础实现hadoop 迁移 MaxCompute 之 数据 立即下载
CIO 指南:如何在SAP软件架构中使用Hadoop 立即下载

相关实验场景

更多