在Hadoop 1.0.3中清除AWS EMR上的HDFS数据

时间:2017-08-07 14:07:12

标签: amazon-web-services hadoop hdfs elastic-map-reduce

出于各种原因,我正在使用AMI 2.4.11 / Hadoop 1.0.3在EMR上运行一些工作。我试图在我的工作之后通过添加额外的EMR步骤来清理HDFS。使用boto:

opacity

然而,它经常在EMR控制台中的stderr中没有任何内容。 为什么我感到困惑的是,如果我进入主节点并运行命令:

step = JarStep( 'HDFS cleanup', 'command-runner.jar', action_on_failure='CONTINUE', step_args=['hadoop', 'dfs', '-rmr', '-skipTrash', 'hdfs:/tmp']) emr_conn.add_jobflow_steps(cluster_id, [step])

成功显示0并显示已成功删除所有内容的消息。所有正常的hadoop命令似乎都有记录。有谁知道这是否有明显的原因?亚马逊分销问题?某些命令中没有记录的行为?

注意: 我在Hadoop 2中运行了其他工作,并记录在案:

hadoop dfs -rmr -skipTrash hdfs:/tmp

可以作为一个步骤和一个命令工作。

1 个答案:

答案 0 :(得分:0)

我的解决方案通常是将所有内容升级到Hadoop2,在这种情况下,这有效:

        JarStep(
            '%s: HDFS cleanup' % self.job_name,
            'command-runner.jar',
            action_on_failure='CONTINUE',
            step_args=['hdfs', 'dfs', '-rm', '-r', '-skipTrash', path]
        )

这是我能用Hadoop1获得的最佳效果。

        JarStep(
            '%s: HDFS cleanup' % self.job_name,
            'command-runner.jar',
            action_on_failure='CONTINUE',
            step_args=['hadoop', 'fs', '-rmr', '-skipTrash',
                       'hdfs:/tmp/mrjob']
        )