残雪余香

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

运行Pydoop程序

        Pydoop程序和其他的hadoop pipes应用程序一样,都需要一个工作的Hadoop集群,如果没有的话,你可以参考安装一个单机模式的Hadoop集群,将Hadoop集群配置成一个伪分布式模式,然后开启必须的守护进程。
       pipes 命令行模式如下所示:
            ${HADOOP_HOME}/bin/hadoop pipes -conf conf.xml -input input -output output
        input path 和 output 分别是Hadoop的上你的应用程序需要访问的输入数据路径和结果输出路径。从本地读入程序的配置文件,配置文件是一个如下所示的由键值对组成的XML文件.
<?xml version="1.0"?>
<configuration>
 
<property>
  <name>hadoop.pipes.executable</name>
  <value>app_executable</value>
</property>
 
<property>
  <name>mapred.job.name</name>
  <value>app_name</value>
</property>
 
<property>
  <name>hadoop.pipes.java.recordreader</name>
  <value>true</value>
</property>
 
<property>
  <name>hadoop.pipes.java.recordwriter</name>
  <value>true</value>
</property>
 
[...]
 
</configuration>

 

配置文件说明如下:
hadoop.pipes.executable:
        python程序的路径,指的是在HDFS上的绝对或者相对home路径,故运行前,需要将编写好的程序上传到HDFS上。
mapred.job.name:
        仅是您的应用程序的一个标识。它会出现在的MapReduce的Web界面,它将会被附加到作业的日志文件中。
hadoop.pipes.java.recordreader and hadoop.pipes.java.recordwriter:
        这些剩下的两个属性必须设置为true,除非您需要使用的是自己的自定义的RecordReader/ RecordWriter。
        在配置文件中,您还可以设置应用其他程序特定的属性,它们的值将是可以在运行时加入JobConf对象。有关详细信息,请参阅其文档。最后,可以包括Hadoop的一般属性(例如,mapred.reduce.tasks)。 Hadoop的文件的列表,可用的属性和它们的含义。
 
注意:
        还可以通过命令行模式配置,使用 -D property.name=value语法 ,这个可以很方便的临时覆盖某个参数值。
 
在运行应用程序之前,你需要执行以下步骤:
        § 上传应用程序和输入文件或目录到HDFS;
        § 准备XML配置文件中,也可以使用程序命令行的选项参数如:-program my_lancher 来设置应用程序的路径来hadoop.pipes.executable my_launcher;
        § 检查的输出目录是否存在(它不会被覆盖,会产生错误)。
 
 
 
posted on 2012-12-24 22:21  残雪余香  阅读(1477)  评论(0编辑  收藏  举报