Hadoop入门教程:基于Pipes实现作业提交
最新学讯:近期OCP认证正在报名中,因考试人员较多请尽快报名获取最近考试时间,报名费用请联系在线老师,甲骨文官方认证,报名从速!
我要咨询Hadoop入门教程:基于Pipes实现作业提交,在提交Hadoop Pipes作业之前首先需要将编译好的Pipes可执行程序上传到HDFS上。例如,我们将编译好的词频统计程序wordcount-simple上传到HDFS上的/user/nuoline/wordcount/bin目录下,如果wordcount-simple可执行程序就在当前目录下,则使用以下命令:
Hadoop fs -put wordcount-simple /user/nuoline/wordcount/bin
然后使用Hadoop Pipes命令提交作业到Hadoop集群,提交命令如下:
Hadoop pipes \
-D Hadoop.pipes.Java.recordreader=true \
-D Hadoop.pipes.Java.recordwriter=true \
-D MapRed.job.name= wordcount \
-input /user/nuoline/wordcount/test_input \
-output /user/nuoline/wordcount /test_output \
-program /user/nuoline/wordcount/bin/wordcount-simple
Hadoop Pipes命令的参数说明,如表2-2所示。
当然,如果用户需要自定义的Hadoop参数很多,还可以直接写成xml格式的配置文件,然后通过conf参数选项进行指定。例如可以在本地当前目录下建立一个wordcount_conf.xml文件,在此文件中指定相关Hadoop参数,执行代码如下:
<?xml version=
"1.0"
?>
<conf?iguration>
<property>
// Set the binary path on HDFS
<name>Hadoop.pipes.executable</name>
<value>/user/nuoline/wordcount/bin/wordcount-simple</value>
</property>
<property>
<name>Hadoop.pipes.Java.recordreader</name>
<value>
true
</value>
</property>
<property>
<name>Hadoop.pipes.Java.recordwriter</name>
<value>
true
</value>
</property>
</conf?iguration>
然后通过Pipes命令的conf参数指定这个配置文件一起提交作业,执行命令如下:
Hadoop pipes \
-conf /wordcount_conf.xml
-input /user/nuoline/wordcount/test_input
-output /user/nuoline/wordcount /test_output