我正在尝试运行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:配置对象时出错”
答案 0 :(得分:1)
根据您问题中链接的mailing list post,java.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
,请检查日志文件中的堆栈跟踪并将其发回。