我编写了一个Hadoop程序,它需要HDFS中的某个布局,之后,我需要从HDFS中获取文件.它适用于我的单节点Hadoop设置,我很想让它在Elastic MapReduce中的10个节点上工作.
我一直在做的是这样的:
./elastic-mapreduce --create --alive
JOBID="j-XXX" # output from creation
./elastic-mapreduce -j $JOBID --ssh "hadoop fs -cp s3://bucket-id/XXX /XXX"
./elastic-mapreduce -j $JOBID --jar s3://bucket-id/jars/hdeploy.jar --main-class com.ranjan.HadoopMain --arg /XXX
Run Code Online (Sandbox Code Playgroud)
这是异步的,但是当作业完成后,我可以这样做
./elastic-mapreduce -j $JOBID --ssh "hadoop fs -cp /XXX s3://bucket-id/XXX-output"
./elastic-mapreduce -j $JOBID --terminate
Run Code Online (Sandbox Code Playgroud)
所以虽然这种方式有效,但它很笨重,而不是我想要的.有更清洁的方法吗?
谢谢!