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

C++ Hadoop管道(wordcount)示例失败(使用Hadoop 0.21.0),c++,hadoop,pipe,C++,Hadoop,Pipe,我在试这个。不幸的是,它在java.lang.NullPointerException和/usr/lib64/libstdc++中出错。因此。6:当我尝试以以下方式运行它时,没有可用的版本信息错误: $ bin/hadoop pipes -Dhadoop.pipes.java.recordreader=true \ -Dhadoop.pipes.java.recordwriter=true \ -input <i

我在试这个。不幸的是,它在
java.lang.NullPointerException
/usr/lib64/libstdc++中出错。因此。6:当我尝试以以下方式运行它时,没有可用的版本信息
错误:

$ bin/hadoop pipes -Dhadoop.pipes.java.recordreader=true \
                   -Dhadoop.pipes.java.recordwriter=true \ 
                   -input <inputHDFSPath> \               
                   -output <outputHDFSPath> \
                   -program <cppBinaryHDFSPath>

由于它正在寻找
/usr/lib64/libstdc++。因此.6
似乎您的映射器是用64位编译器编译的,您确定jvm也是64位的吗


我有一种感觉就是这个64位的东西导致了管道破裂。检查集群和开发机器。

所以我又试了一次,从头开始。这次我更成功了。这是我用过的

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

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

(为这些不可靠的路径道歉。我的实际路径是不同的-这里的路径只是我懒散地尝试匿名。)

出错-什么时候?编译、链接、运行时,只是更新了问题/问题描述——但是C++二进制文件不是静态链接的,所以正在寻找SO。在纠正这一点之后,我看到了。你能检查一下job tracker日志吗?对于每一次失败的尝试,看看它在stderr部分说了些什么吗?我看了job tracker日志,我什么也没看到。另外,您是否知道如何让JVM打印出整个stacktrace?目前,它打印出一束,然后用
将其截断。。。另外,所有尝试的
stderr
似乎都有以下内容:
$more/usr/local/dp/hadoop/userlogs/job\u 201107211831\u 0013/trunt\u 201107211831\u 0013\u 0/stderr hadoop管道异常:被驱动程序中止
您也可以查看每次尝试的日志,这些日志会说些什么。例如http://:50030/jobfailures.jsp?jobid=job_201107211831_0013&kind=map&cause=killed,然后单击4kb、8kb或全部
$ 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