hadoop 3.0.0 上运行pipes c++ 程序

hadoop version: hadoop 3.0.0 alpha1

ubuntu version: 14.04


hadoop的安装可以参考前一篇博客。基本是按照hadoop网站的步骤来。不过要运行pipes,要配置yarn。

因此具体步骤是先完成hadoop的安装,然后配置yarn。

1.配置mapred-site.xml

2.配置yarn-site.xml


这里yarn.nodemanager.vmem-pmem-ratio 配置为2.5是为了避免如下异常出现:

这个异常是说运行我的程序时hadoop尝试使用2.4G虚内存,但系统默认配置只有2.1G虚内存,所以就出错了。把它改到2.5G虚内存就可以跑过了。


3.启动hdfs和yarn

注意要启动historyserver,否则会出现异常

可以用jps命令来查看是否所有进程都启动了,如下图

如果6个进程都看到了,那就OK了。

有时候DataNode没起来,那就需要把hdfs文件系统删除干净再重新格式化一次。


下面是C++程序了,我使用的是网上下的 hadoop权威指南第三版和配套源码 第二章的例子。

编译之后把可执行程序复制到hdfs里。再把数据文件也复制到hdfs里。如下图:


下面就可以运行了:

注意: mapreduce.pipes.isjavarecordreader=true 和 mapreduce.pipes.isjavarecordwriter=true 一定要设,不然你就要在C++里实现。






阅读更多

hadoop pipes

11-08

hadoop pipes怎么用呀,要不要配置的,怎么配置?为什么执行ant -Dcompile.c++=yes examples时会rnBUILD FAILEDrn/home/hadoop/hadoop/hadoop-0.20.1/build.xml:1418: Execute failed: java.io.IOException: Cannot run program "/home/hadoop/hadoop/hadoop-0.20.1/src/c++/pipes/configure" (in directory "/home/hadoop/hadoop/hadoop-0.20.1/build/c++-build/Linux-i386-32/pipes"): java.io.IOException: error=13, Permission deniedrn at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)rn at java.lang.Runtime.exec(Runtime.java:593)rn at org.apache.tools.ant.taskdefs.Execute$Java13CommandLauncher.exec(Execute.java:827)rn at org.apache.tools.ant.taskdefs.Execute.launch(Execute.java:445)rn at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:459)rn at org.apache.tools.ant.taskdefs.ExecTask.runExecute(ExecTask.java:635)rn at org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:676)rn at org.apache.tools.ant.taskdefs.ExecTask.execute(ExecTask.java:502)rn at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)rn at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)rn at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)rn at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)rn at java.lang.reflect.Method.invoke(Method.java:597)rn at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)rn at org.apache.tools.ant.Task.perform(Task.java:348)rn at org.apache.tools.ant.Target.execute(Target.java:390)rn at org.apache.tools.ant.Target.performTasks(Target.java:411)rn at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1360)rn at org.apache.tools.ant.Project.executeTarget(Project.java:1329)rn at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)rn at org.apache.tools.ant.Project.executeTargets(Project.java:1212)rn at org.apache.tools.ant.Main.runBuild(Main.java:801)rn at org.apache.tools.ant.Main.startAnt(Main.java:218)rn at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)rn at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)rnCaused by: java.io.IOException: java.io.IOException: error=13, Permission deniedrn at java.lang.UNIXProcess.(UNIXProcess.java:148)rn at java.lang.ProcessImpl.start(ProcessImpl.java:65)rn at java.lang.ProcessBuilder.start(ProcessBuilder.java:453)rn ... 24 morern谁能帮我解释一下或者有解决方法呀,谢谢了

没有更多推荐了,返回首页