R を使用する必要があり、次に Streaming Job Flow を使用する必要があります。これは、Hive の機能が失われ、EMR ジョブ上で Hive クエリを実行してそのデータを操作することができないということですか?
好きなようにジョブを混在させることができます。たとえば、S3 から読み取り、HDFS に書き込む R ストリーミング ジョブの後に、HDFS からそのデータを読み取り、S3 に書き戻す Hive ジョブが続きます。それらはすべて単なる MapReduce ジョブです。
複数のジョブ フローを実行してそれらとやり取りすることはできますか?
EMR では、一度に実行できるジョブフローの数に制限はありません。適用される唯一の制限は、EC2 インスタンスのクォータです。2 つのクラスターの HDFS 間でデータを移動するサポートはまだありませんが、S3 経由で簡単に移動できます。
依存ジョブを使用するにはどうすればよいですか?
依存しているということは、依存している仕事という意味ですか?ステップ メカニズムを使用して、ジョブを順番に実行するようにキューに入れることができるので、ワークフローを 1 つのシーケンスで記述できる限り問題ありません。[1] を参照
一度完了したジョブを再実行できますか? 一度計算するのではなく、データに従って進化させたい。
デバッグ/調査作業に関しては、多くの場合、--alive を使用してクラスターを開始し、マスター ノードに ssh してジョブを直接送信するのが最も簡単な場合があります。満足したら、ステップ メカニズムを使用してワークフローを調整できます。
ジョブに変数を渡すことはできますか?
はい; あなたのステップは、あなたが提出している仕事への完全なアクセスをあなたに与えます
これを自動化する正しい方法は何ですか?
ワークフローが線形である限り、ステップ メカニズムで十分です。クラスターを開始し、実行することをキューに入れ、最後のステップが S3 に出力されることを確認し、クラスターを終了させます。
マット
[1] http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/index.html?ProcessingCycle.html