【问题标题】:Attach additional files to python streamming job in hadoop在 hadoop 中将附加文件附加到 python 流作业
【发布时间】:2015-05-04 06:48:52
【问题描述】:

我想在 ec2 上运行 mapreduce 作业。

我有一个 mapper.py reducer.py 和 helper.py 以及一个包。

基本上,我的 mapper.py 将调用 helper.py 并且 helper.py 将从包中的模块导入(这是一堆 python 文件)。

当我运行 hadoop 作业时我的命令应该如何?

我应该使用-file,还是-cache?我都试过了,但它们都不起作用。

这是我正在使用的输入: hadoop jar /usr/lib/hadoop-0.20/contrib/streaming/hadoop-streaming-0.20.2-cdh3u5.jar -D mapred.map.tasks=2 -D mapred.reduce.tasks=2 -file /root/mapper.py -mapper /root/mapper.py -reducer org.apache.hadoop.mapred.lib.IdentityReducer -input /user/root/Data/data -output /user/root/Data/out -file /root/helper.py

【问题讨论】:

  • AFAIK,stackoverflow 不是 EC2 的官方支持资源。你试过他们官方的support channelsforums吗?
  • 是的,没有相关信息
  • 我确信亚马逊会花钱请人回答你的问题,你在他们的支持论坛上问过吗?试试before asking here
  • 你能发布你正在使用的确切命令以及错误消息吗?
  • hadoop jar /usr/lib/hadoop-0.20/contrib/streaming/hadoop-streaming-0.20.2-cdh3u5.jar -D mapred.map.tasks=2 -D mapred.reduce.tasks=2 -file /root/mapper.py -mapper /root/mapper.py -reducer org.apache.hadoop.mapred.lib.IdentityReducer -input /user/root/Data/data -output /user/root/Data/out -file /root/helper.py

标签: python hadoop amazon-web-services mapreduce hadoop-streaming


【解决方案1】:

通过将所有文件名包含在“-files”参数中,我能够使用其他文件在 EC2 实例上运行 hadoop 流,用逗号分隔:

 bin/hadoop jar share/hadoop/tools/lib/hadoop-streaming-2.6.0.jar -files /home/ec2-user/hadoop-2.6.0/script/mapper.php,/home/ec2-user/hadoop-2.6.0/script/reducer.php,/home/ec2-user/hadoop-2.6.0/script/hadoopconnect.php -input input/* -output output -mapper "php mapper.php" -reducer "php reducer.php"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-13
    • 1970-01-01
    • 1970-01-01
    • 2012-03-07
    • 1970-01-01
    相关资源
    最近更新 更多