Amazon web services 在Hadoop 1.0.3中清除AWS EMR上HDFS的数据
出于各种原因,我正在使用AMI2.4.11/Hadoop1.0.3在EMR上运行一些作业。我正在尝试在我的作业之后通过添加额外的EMR步骤来运行HDF清理。使用boto:Amazon web services 在Hadoop 1.0.3中清除AWS EMR上HDFS的数据,amazon-web-services,hadoop,hdfs,elastic-map-reduce,Amazon Web Services,Hadoop,Hdfs,Elastic Map Reduce,出于各种原因,我正在使用AMI2.4.11/Hadoop1.0.3在EMR上运行一些作业。我正在尝试在我的作业之后通过添加额外的EMR步骤来运行HDF清理。使用boto: step = JarStep( 'HDFS cleanup', 'command-runner.jar', action_on_failure='CONTINUE', step_args=['hadoop', 'dfs', '-rmr', '-skipTr
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中运行了其他作业,并记录了:
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']
)
我的解决方案通常是将所有内容升级到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']
)