0

我有一个 mrjob 配置,其中包括将一个大文件从 s3 加载到 HDFS 中。我想在配置文件中包含这些命令,但似乎所有引导命令都在集群中的所有节点上执行。这是过度杀戮,也可能会产生同步问题。

是否有某种方法仅在 mrjob 配置中包含主节点的启动命令,或者是在集群启动执行这些操作后通过 SSH 进入头节点的唯一解决方案?

约夫

4

1 回答 1

0

好吧,你可以让你的步骤从一个映射器开始,并在你的 jobconf 中设置 mapred.map.tasks=1。我从未尝试过,但似乎它应该可以工作。

另一个建议:
使用文件系统或 zookeeper 进行协调:

if get_exclusive_lock_on_resource(filesystem_path_or_zookeeper_path):
    Do the expensive bit
    release_lock(filesystem_path_or_zookeeper_path)

if expensive_bit_not_complete():
    sleep 10
于 2015-03-09T14:07:01.727 回答