1 在客户端程序必须要显示设置
myJob.setMapOutputKeyClass(LongWritable.class);
myJob.setMapOutputValueClass(Text.class);不然map任务会没结果输出
2 hdfs访问文件
String url = HDFS_URL +PATH+ "/part-r-00000";
FileSystem fs = FileSystem.get(URI.create(url), configuration);
InputStream in = null;
try {
in = fs.open(new Path(url));
IOUtils.copyBytes(in, System.out, 4096, false);
} finally {
IOUtils.closeStream(in);
}
3 中文乱码,输入的非UTF8的文件,在Map中进行转码
protected void map(Object key, Text value, Context context) throws IOException, InterruptedException {
String line = new String(value.getBytes(), 0, value.getLength(), "GBK");
......
}
本文解决Hadoop MapReduce开发过程中遇到的问题:如何正确配置map输出类型避免空结果;如何读取HDFS上的文件;以及如何解决输入文件为非UTF8编码导致的乱码问题。
8560

被折叠的 条评论
为什么被折叠?



