HDFS 内で特定のレイアウトを必要とする Hadoop プログラムを作成しました。その後、HDFS からファイルを取得する必要があります。これは私の単一ノードの Hadoop セットアップで動作し、Elastic MapReduce 内の数十のノードで動作することを熱望しています。
私がやっていることは次のようなものです:
./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
これは非同期ですが、ジョブが完了したら、これを行うことができます
./elastic-mapreduce -j $JOBID --ssh "hadoop fs -cp /XXX s3://bucket-id/XXX-output"
./elastic-mapreduce -j $JOBID --terminate
したがって、この種の機能は機能しますが、扱いにくく、私が望むものではありません。これを行うためのよりクリーンな方法はありますか?
ありがとう!