mapreduce中一些坑
2016-01-04 21:08
281 查看
今天写了一个mapreduce程序,功能是根据query的pv次数,对pv进行排序。
但是写了三个小时,却都没有搞定。最后在同事Wuzhen的搞定下,才输出了正确结果。
总结一下原因。
1. 需要对输入进行转码。转码语句为:
String line = new String(value.getBytes(), 0, value.getLength(), "GBK");
2. 输出编码,需要指定。指定语句为:
job.setOutputFormatClass(GbkOutputFormat.class);
3. 注意OutputPath为目录。
当时我把输入路径设置如下,但是跑完代码,却发现文件大小总是为0,找了很久原因,才发现在query_sort.txt下面还有一个为part-00000的文件!!!!!!!!!
/user/webrank/luliujie/segmentation/query_sort.txt
4. 上面三个问题解决后。我发现输出只有query,没有pv次数。
这个时候,我发现发现原来,我在reduce的输出key为LongWritable,当把它通过下面语句,转为Text时,输出就正常了。
new Text(key.toString())。
但是写了三个小时,却都没有搞定。最后在同事Wuzhen的搞定下,才输出了正确结果。
总结一下原因。
1. 需要对输入进行转码。转码语句为:
String line = new String(value.getBytes(), 0, value.getLength(), "GBK");
2. 输出编码,需要指定。指定语句为:
job.setOutputFormatClass(GbkOutputFormat.class);
3. 注意OutputPath为目录。
当时我把输入路径设置如下,但是跑完代码,却发现文件大小总是为0,找了很久原因,才发现在query_sort.txt下面还有一个为part-00000的文件!!!!!!!!!
/user/webrank/luliujie/segmentation/query_sort.txt
4. 上面三个问题解决后。我发现输出只有query,没有pv次数。
这个时候,我发现发现原来,我在reduce的输出key为LongWritable,当把它通过下面语句,转为Text时,输出就正常了。
new Text(key.toString())。
相关文章推荐
- UILabel+UIImageView(动画)
- 根据顶点的投影坐标,获取对应的屏幕纹理的纹理坐标
- 更改eclipse的编辑器样式风格
- Leetcode214: Remove Invalid Parentheses
- iOS: 在UIViewController 中添加Static UITableView
- 为什么我们的web前端变的越来越复杂
- 【总结】C#中的数组
- 活动组件(三):Intent
- js计算一个时间加上n天后得到的时间
- gnuradio的Python应用中绘图
- 数据结构与算法——用C语言实现一个revert函数,它的功能是将输入的字符串在原串上倒序后返回
- Swift 实现单例模式Singleton pattern的三种方法
- KMP算法
- 保存数据到数据库
- python 代码片段20
- ubuntu mysql 常用命令
- 在Android Studio中部署arcgis for android
- Ojbect类的equals和hashCode方法
- 【bzoj2594】[Wc2006]水管局长数据加强版 link cut tree
- 第五章(使用对象) 编程题一