Hadoop管道(wordcount)示例失败(使用Hadoop 0.21.0)

Hadoop pipes (wordcount) example failing (with hadoop 0.21.0)

本文关键字:Hadoop 使用 失败 管道 wordcount      更新时间:2023-10-16

我正在尝试hadoop管道的简单字数统计示例。不幸的是,当我尝试将其运行为

时,它会出现java.lang.NullPointerException/usr/lib64/libstdc++.so.6: no version information available错误:
$ bin/hadoop pipes -Dhadoop.pipes.java.recordreader=true 
                   -Dhadoop.pipes.java.recordwriter=true  
                   -input <inputHDFSPath>                
                   -output <outputHDFSPath> 
                   -program <cppBinaryHDFSPath>

错误详细信息在这里。

任何关于如何解决这个问题的建议将是非常感激的。谢谢。

Edit1:新增用于运行。

Edit2:原来c++二进制文件不是静态链接的。修正后,我现在看到这个错误。

Edit3:添加hadoop版本正在使用。我还在这里添加了jobtracker日志的相关部分。此外,stderr对于每个失败的尝试具有如下内容:

$more /usr/local/dp/hadoop/userlogs/job_201107211831_0013/
attempt_201107211831_0013_m_‌​000000_0/stderr 
Hadoop Pipes Exception: Aborted by driver

因为它正在寻找/usr/lib64/libstdc++.so.6,似乎你的映射器是用64位编译器编译的,你确定jvm也是64位的吗?

我有一种感觉,这是64位的东西,这是导致破裂的管道。检查集群和dev机器

所以我再试一次,从头开始。这一次我更成功了。以下是我使用的代码和配置文件。

另外,下面是我用来运行作业的命令:

hadoop pipes -conf path/to/dp_hpt_conf.xml 
             -input /path/to/input 
             -output /path/to/output

/path/to/input中的输入文件为:

$hadoop fs -ls /path/to/input
Found 3 items
-rw-r--r--   3 dp dpgrp         25 2011-07-26 23:24 /path/to/input/bar
-rw-r--r--   3 dp dpgrp         87 2011-07-26 23:24 /path/to/input/baz
-rw-r--r--   3 dp dpgrp         44 2011-07-26 23:24 /path/to/input/foo
$hadoop fs -get /path/to/input/foo .
$cat foo 
The quick brown fox jumps over the lazy dog

输出为:

$ hadoop fs -get /path/to/output/part-00000 .
$ cat part-00000 
another 3
be      2
brown   2
dog     2
end     2
for     2
fox     2
input   2
is      3
jumps   2
lazy    2
of      2
over    2
program 2
quick   2
sentence        3
should  2
test    2
that    2
the     5
this    4
yet     2

(为不稳定的路径道歉。我的实际路径是不同的-这里的路径只是我懒惰的尝试匿名它们