【发布时间】:2016-03-28 20:14:00
【问题描述】:
我是这个领域的初学者,所以不知道确切的术语,抱歉
问题库:想要自动化批处理层的处理
问题:我无法理解人们如何设法运行像
这样的大型 hadoop 命令"hadoop jar /usr/lib/hadoop-0.20-mapreduce/contrib/streaming/hadoop-streaming-2.0.0-mr1-cdh4.4.0.jar \
-mapper mapper.py \
-reducer reducer.py \
-input nfldata/stadiums \
-output nfldata/pythonoutput \
-file simple/mapper.py \
-file simple/reducer.py"
每次他们需要运行 map reduce 作业时,是否有任何方法可以自动化该过程,例如 cron 之类的,请让我知道是否有任何资源可以了解这一点,以便我们可以安排 hadoop 命令或相关内容python 或 bash 脚本
我搜索过的内容:建议使用 Luigi (here) 构建 jar 或运行命令,但没有任何关于它的文档或示例
注意:因为我不知道java,所以我没有搜索过,也不能在java中使用选项。
【问题讨论】:
-
您希望运行该作业的频率是多少?您可以创建一个 shell 脚本并将此命令写入其中并将其调度到 unix cron 中。这是最简单的方法。有许多可用的调度工具,如 Apache Oozie 或 Tidal 等企业软件。
-
我想通过服务器上的 POST 请求运行它,或者当新数据输入 hdfs 时,我的意思是有任何方法可以自动生成批处理视图或经验法则?还是这些命令是手动运行的?
-
我假设您在 hadoop 集群中设置了 oozie 服务器和客户端。您可以使用带有
streaming配置的map-reduce操作在oozie 工作流xml 中定义您的处理组件。要根据时间(如每天)或数据运行任何工作流,您可以使用 oozie 协调器并安排它。
标签: python hadoop mapreduce oozie luigi