在 Hadoop 1.0.3 中从 AWS EMR 上的 HDFS 清除数据
Clear data from HDFS on AWS EMR in Hadoop 1.0.3
出于各种原因,我运行使用 AMI 2.4.11/Hadoop 1.0.3 在 EMR 上完成一些工作。我正在尝试通过添加一个额外的 EMR 步骤来 运行 在我的工作之后清理 HDFS。使用博托:
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])
然而,它经常失败,EMR 控制台中的 stderr 中没有任何内容。
为什么我感到困惑是如果我 ssh 进入主节点和 运行 命令:
hadoop dfs -rmr -skipTrash hdfs:/tmp
它成功并返回 0 和一条消息,表明它已成功删除所有内容。所有正常的 hadoop 命令似乎都按照文档中的说明工作。有谁知道这是否有明显的原因?亚马逊分销有问题吗?某些命令中的未记录行为?
注意:
我在 Hadoop 2 中还有其他工作 运行ning 并且记录在案:
hdfs dfs -rm -r -skipTrash hdfs:/tmp
作为一个步骤和一个命令,就像人们期望的那样工作。
我的解决方案通常是将所有内容升级到 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']
)
出于各种原因,我运行使用 AMI 2.4.11/Hadoop 1.0.3 在 EMR 上完成一些工作。我正在尝试通过添加一个额外的 EMR 步骤来 运行 在我的工作之后清理 HDFS。使用博托:
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])
然而,它经常失败,EMR 控制台中的 stderr 中没有任何内容。 为什么我感到困惑是如果我 ssh 进入主节点和 运行 命令:
hadoop dfs -rmr -skipTrash hdfs:/tmp
它成功并返回 0 和一条消息,表明它已成功删除所有内容。所有正常的 hadoop 命令似乎都按照文档中的说明工作。有谁知道这是否有明显的原因?亚马逊分销有问题吗?某些命令中的未记录行为?
注意: 我在 Hadoop 2 中还有其他工作 运行ning 并且记录在案:
hdfs dfs -rm -r -skipTrash hdfs:/tmp
作为一个步骤和一个命令,就像人们期望的那样工作。
我的解决方案通常是将所有内容升级到 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']
)