当我将 snappy 文件读取HDFS
到mapreduce
.
我已经开始
job.setInputFormatClass(TextInputFormat.class);
工作了。
然后我像这样在映射器中获取线值
protected void map(Object key, Text value, Context context)
throws IOException, InterruptedException {
String[] strs = new String(value.getBytes()).split(String.valueOf(0x09));
LOGGER.info("strs length is " + strs.length);
}
如果数据正确,strs 长度为 44。但我在 userlogs 中发现很多错误长度(大于 44)。
然后我打印值new String(value.getBytes)
。我发现打印的字符串不是我的预期。行数据不是我保存到 HDFS 的字符串。
数据顺序错误,导致mapper中的值错误。
我能做些什么来解决这个问题。
谢谢!