mapreduce中一些坑

来源:互联网 发布:知乎付费方式 编辑:程序博客网 时间:2024/05/16 05:17

今天写了一个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())。

0 0
原创粉丝点击