Wordcount C++Hadoop管道不工作
Wordcount C++ Hadoop pipes does not work
我正试图在C++中运行wordcount的示例,如下链接所述:在C++中运行WordCount程序。编译工作正常,但当我尝试运行程序时,出现了一个错误:
bin/hadoop管道-conf/dev/word.xml-输入testtile.txt-输出wordcount out
2006年6月11日14:23:40 WARN地图。JobClient:没有作业jar文件集。可能找不到
用户类。请参见JobConf(类)或JobConf#setJar(字符串)
2006年6月11日14:23:40信息映射。FileInputFormat:要处理的总输入路径:1
2006年6月11日14:23:40信息映射。JobClient:正在运行作业:job_201106061207_007
2006年6月11日14:23:41映射信息。JobClient:映射0%减少0%
2006年6月11日14:23:53信息映射。JobClient:任务Id:attempt_201106061207_0007_m_0000000_0,状态:失败
java.io.IOException
网址:org.apache.hadop.mapred.pipes.OutputHandler.waitForAuthentication(OutputHandler.java:188)网址:org.apache.hadop.mapred.pipes.Application.waitForAuthentication(Application.java:194)网址:org.apache.hadop.mapred.pipes.Application.(Application.java:149)网址:org.apache.hadop.mapred.pipes.PipesMapRunner.run(PipesMapRuner.java:68)网址:org.apache.hadop.mapred.MapTask.runOldMapper(MapTask.java:435)网址:org.apache.hadop.mapred.MapTask.run(MapTask.java:371)网址:org.apache.hadop.mapred.Child$4.run(Child.java:259)位于java.security.AccessController.doPrivileged(本机方法)位于javax.security.auth.Subject.doAs(Subject.java:416)网址:org.apache.hadop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059)网址:org.apache.hadop.mapred.Child.main(Child.java:253)
attempt_201106061207_0007_m_0000000_0:服务器无法进行身份验证。退出
我在Fedora上的两个节点上运行Hadoop,并遵循了该链接中的配置说明:在多节点集群上运行Hadoop。我用这个命令尝试了Hadoop的wordcount示例:
bin/hoop-jar hadoop-examples-0.20.03.0.jar wordcount testtile.txt wordcount out
这个命令运行良好。这就是为什么我不明白为什么我的程序不起作用。所以我希望有人知道我做错了什么,或者是否有人已经解决了这个错误。
我不知道是否必须以这种方式回答我的问题,或者编辑我的问题。不管怎样,我找到了解决方案,我只想告诉所有会遇到同样错误的人。
经过几天的研究和尝试,我明白Fedora和C++在Hadoop的64位上并不匹配。我试着编译Hadoop的wordcount C++,并在wiki中进行了类似蚂蚁的解释。但是ant给我带来了一些错误:libssl和stdint。
首先,如果你在Fedora上,你必须将-lcrypto添加到.configure中的LIBS变量中。这就是为什么现在链接到libssl时,必须在这些平台上明确说明对libcrypto的依赖性。(参见Fedora上的bug)。
第二个问题:ant在C++文件中产生了很多错误:要解决这个问题,只需在文件顶部添加一个include:stdint.h。
然后构建成功。然后我试着在Hadoop集群上运行wordcount示例,它有效,而我的没有。我预计这个问题来自我刚刚纠正的库,我是对的:我试图用Hadoop安装目录中的库运行Hadoop示例,但它不起作用,我得到了同样的错误。
这可以解释为ant重新编译Hadoop所需的C++库(我做了更正)并使用它,而不是在Hadoop安装目录中提供库。
- QSqlquery prepare()和bindvalue()不工作
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 导入库可以跨dll版本工作吗
- IPC使用多个管道和分支进程来运行Python程序
- 以螺旋方式打印矩阵的程序.(工作不好)
- 对象指针在c++中是如何工作的
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- C++为线程工作动态地分割例程
- 为什么我的 std::ref 无法按预期工作?
- 命名管道程序在一台计算机上工作,服务器在不同的计算机上停止工作
- 从C/C++调用Objective C stdin/stdout管道时,它是如何工作的
- posix管道作为工作队列
- 命名管道c#服务器c++ .dll客户端不工作
- 重定向程序输出作为输入管道不工作
- 为什么linux管道和标准输出不能一起工作
- Wordcount C++Hadoop管道不工作
- 如何在c++中使这个管道工作
- 如何在C++中实现grep,使其与管道(stdin等)一起工作