mapreduce使用snappy数据顺序错误

nr9pn0ug  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(312)

我在电脑上读速写文件时遇到了一个问题 HDFSmapreduce .
我已经准备好了 job.setInputFormatClass(TextInputFormat.class); 在工作中。
然后我在mapper中得到这样的行值 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。但是我在用户日志中发现了很多错误长度(大于44)。
然后我打印值 new String(value.getBytes) 。我发现打印的字符串不是我期望的。行数据不是我保存到hdfs的字符串。
数据顺序错误,导致Map器中的值错误。
我能做些什么来解决这个问题。
谢谢!

pnwntuvh

pnwntuvh1#

您正在读取一个快速压缩的文本文件,但您提到了job.setinputformatclass(textinputformat.class),这意味着您将要读取一个文本文件。你必须先把你的文件解压成文本文件,然后你需要在这个文件上运行你的mr作业。

相关问题