Hadoop字数统计示例因“不是SequentialFile”而失败。如何设置文件格式?

时间:2011-11-20 19:40:10

标签: hadoop

我正在尝试运行hadoop jar /usr/lib/hadoop/hadoop-examples.jar aggregatewordcount /data/gutenberg/huckfinn.txt output/guten4,但收到错误“huckfinn.txt而不是SequenceFile”。

我在other sites上阅读,并在source of this example file中看到有一个论点textinputformat,我猜是在修复此问题。我不知道该为它指定什么。

如果我运行hadoop jar /usr/lib/hadoop/hadoop-examples.jar aggregatewordcount /data/gutenberg/huckfinn.txt output/guten5 2 textinputformat,我会收到一个不同的错误,“java.lang.RuntimeException:配置对象时出错”

2 个答案:

答案 0 :(得分:1)

根据您问题中链接的mailing list postjava.lang.RuntimeException: Error in configuring object异常是由示例的依赖关系不在tasktracker的类路径上引起的。您可以从完整的回溯中看到这一点:当我在我的机器上运行第二个命令时,我得到:

java.lang.RuntimeException: Error in configuring object
    [...]
Caused by: java.lang.reflect.InvocationTargetException
    [...]
Caused by: java.lang.RuntimeException: Error in configuring object
    [...]
Caused by: java.lang.reflect.InvocationTargetException
    [...]
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: org.apache.hadoop.examples.AggregateWordCount$WordCountPlugInClass
    [...]
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.examples.AggregateWordCount$WordCountPlugInClass
    [...]

This post on the Cloudera blog讨论了为任务分析者提供依赖关系的不同方法。

要运行aggregatewordcount示例,我使用了-libjars选项:

hadoop jar hadoop-examples.jar aggregatewordcount -libjars hadoop-examples.jar /data/gutenberg/huckfinn.txt output/guten7 2 textinputformat

答案 1 :(得分:1)

ValueAggregatorJob中完成以下检查

int numOfReducers = 1;
if (args.length > 2) {
  numOfReducers = Integer.parseInt(args[2]);
}

..............

if (args.length > 3 && 
    args[3].compareToIgnoreCase("textinputformat") == 0) {
  theInputFormat = TextInputFormat.class;
} else {
  theInputFormat = SequenceFileInputFormat.class;
}

如果未将textinputformat(文字字符串)指定为参数,则输入格式默认为SequenceFileInputFormat,因此huckfinn.txt not a SequenceFile error。此外,如果未指定,则reducers默认为1。

使用以下命令运行作业

hadoop jar hadoop-mapred-examples-0.21.0.jar aggregatewordcount /user/praveensripati/input/sample.txt /user/praveensripati/output 2 textinputformat

请注意,通常hadoop-mapred-examples- 0.21.0 .jar中包含版本号。此文件位于Hadoop安装的根目录中。确保文件/usr/lib/hadoop/hadoop-examples.jar存在。

要解析java.lang.RuntimeException: Error in configuring object,请检查日志文件中的堆栈跟踪并将其发回。