1、reduce 输出路径必须是新创建的。不能已经存在
1 | Exception in thread "main" org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://cs1:9000/flowout01 already exists |
2、在初始化 job 的时候, 没有传 conf
, 导致后面一直找不到文件, 因为不知道到哪里去找
3、Text导包倒错, 导的时候要注意
应该是这个 import org.apache.hadoop.io.Text;
4、进行字符串拼接的时候,把 StringBuilder 写到了 reduce 方法外, 这样导致 sb 会越来越多,当然,也可以每次拼接完了清空
类似于这样
1 | A F,I,O,K,G,D,C,H,B |
4、mapreduce执行错误Mapper.\错误
- Mapper & Reducer 写成内部类的时候,有没有加上
static
- Bean类有没有无参构造
5、排序过程中,自定义了排序类,bean类的 compareTo()
方法,只写了按照分数大小排序。
会出现如下错误: 课程并没有分组
没有在相同的一组课程中比较分数, 而是比较的所有的分数
1 | computer huangjiaju 83.2 |
此时应该在Bean对象中做如下事情
- 相同课程的按照分数降序排序
- 课程名按照自然(升序)排序
- 换言之,就是CustomBean 对象要输出的数据是
组名升序排序,组内按成绩降序排序
- 具体分析参阅