分享

mapreduce编程开发需要注意的问题总结

pig2 发表于 2017-3-25 14:19:17 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 3 6640
1.setOutputFormatClass与setOutputValueClass的区别是什么?
如下代码:
// 输入格式
job.setInputFormatClass(TextInputFormat.class);

// 设置输出格式
job.setOutputFormatClass(TextOutputFormat.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);

setOutputFormatClass顾名思义,为输出格式,比如我们输出数据是以空格或则逗号作为分割等输出。

setOutputValueClass则是设置的输出值的类型。
2.map和reduce的输入、输出值类型
如下代码:

Mapper<LongWritable, Text, Text, Text>
Reducer<Text, Text, Text, LongWritable>
map的输出类型为 Text, Text
Reducer输入类型为Text, Text
二者必须对应

已有(3)人评论

跳转到指定楼层
Teamo 发表于 2017-3-25 16:37:21
想问一下,在运行MR程序时,reduce都100%了,程序一直卡死,有时要很长时间,或者就一直不结束,这是什么原因?
回复

使用道具 举报

qcbb001 发表于 2017-3-25 17:13:15
Teamo 发表于 2017-3-25 16:37
想问一下,在运行MR程序时,reduce都100%了,程序一直卡死,有时要很长时间,或者就一直不结束,这是什么原 ...

用hadoop dfsadmin -report看看数据是否倾斜
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条