修改wordcount源代码:hadoop示例。如何将分隔符更改为“。”,“,”或“”?

时间:2015-05-29 02:41:56

标签: hadoop mapreduce hadoop2

我是hadoop和java的新手。我正在使用Hadoop 2.X并尝试更改wordcount源代码,以便当我在文本上运行wordcount时,它同时考虑“。”,“,”或“”分隔符,而不仅仅是“\ t”。我发现使用以下方法更改配置:

conf.set("mapreduce.input.keyvaluelinerecordreader.key.value.separator", " ");

但是,即使将分隔符更改为“,”也不起作用。代码运行没有崩溃,但我得到的结果与我使用默认分隔符“\ t”运行wordcount的结果相同。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您正在寻找正确的地方。您无需更改源代码:只需添加命令行arg

bin/hadoop job -Dkey.value.separator.in.input.line=,

请注意,属性名称已更改。

此外,它可能不支持您要查找的多个分隔符。

您可以在此处找到更多信息http://www.feeny.org/changing-keyvalue-split-delimeter-in-hadoop-20-2/

<强>更新

以下是您可能会更改的来源

 public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {

22 String line = value.toString();   23 StringTokenizer tokenizer = new StringTokenizer(line,&#34;。,&#34;);