手順
- Alibaba Cloud E-MapReduce コンソールにログインします。
- ナビゲーションバーの上部にある、[データプラットフォーム] をクリックします。
- [操作] 列で、指定のプロジェクトの隣にある [ワークフローの設計] をクリックします。
- ジョブの編集ページの左側で、操作するフォルダを右クリックして [新規ジョブ] を選択します。
- [新規ジョブ] ダイアログボックスでジョブの名前と説明を入力します。
- Hadoop ジョブタイプを選択して Hadoop MapReduce ジョブを作成します。 このタイプのジョブは以下のプロセスを使用してバックグラウンドで送信されます。
hadoop jar xxx.jar [MainClass] -Dxxx ....
- [OK] をクリックします。
注 フォルダを右クリックして、サブフォルダを作成、フォルダ名を変更、フォルダを削除します。
- このジョブを送信するために必要なパラメーターを "コンテンツ" フィールドに入力します。 Hadoop jar の後にパラメーターを入力し、その後に他のコマンドラインパラメーターを入力します。
たとえば、データを読み書きしない Hadoop スリープジョブを送信する場合は、マッパータスクまたはリデューサータスクをクラスターに送信し、各タスクがスリープ状態になるのを待機する場合にのみ成功します。 Hadoop では、このジョブは Hadoop リリースバージョンの hadoop-mapreduce-client-jobclient-2.6.0-tests.jar にパッケージされます。 このジョブがコマンドラインから送信された場合は、コマンドは以下のとおりです。
hadoop jar /path/to/hadoop-mapreduce-client-jobclient-2.6.0-tests.jar sleep -m 3 -r 3 -mt 100 -rt 100
E-MapReduce でこのジョブを設定するには、"コンテンツ" フィールドに以下の内容を入力します。/path/to/hadoop-mapreduce-client-jobclient-2.6.0-tests.jar sleep -m 3 -r 3 -mt 100 -rt 100
注ここで使用される jar パッケージのパスは E-MapReduce ホスト上の絶対パスです。 しかし、ユーザーはこれらの jar パッケージを任意の場所に配置する可能性があり、クラスターが作成およびリリースされると、パッケージは使用されなくなります。 そのため、以下の手順で jar パッケージをアップロードします。- ユーザーは自分の jar パッケージを保存のために OSS のバケットに送信します。 Hadoop のパラメータを設定したら、[OSS パスの選択] をクリックして OSS ディレクトリから jar パッケージを選択し、実行します。 システムによって jar パッケージの OSS アドレスは自動補完されます。[リソースタイプの切り替え] をクリックして、jar パッケージのプレフィックスをossref に必ず切り替えます。 切り替えることで、MapReduce によって jar パッケージが正しくダウンロードされます。
- [OK] をクリックします。 このパッケージの OSS パスは"コンテンツ" フィールドで自動補完されます。 ジョブが送信されると、このパスに基づいて該当する jar パッケージがシステムで自動的に検索されます。
- この OSS の jar パッケージパスの後ろに、ジョブを実行するための他のコマンドラインパラメーターがさらに入力されます。
- [保存] をクリックします。
前述の例では、スリープジョブには入出力データがありません。 文字数のカウントなど、ジョブでデータを読み取って入力結果を処理する場合は、データの入出力パスを指定する必要があります。
E-MapReduce クラスターの HDFS および OSS のデータを読み書きします。 OSS のデータを読み書きするには、入出力パスを指定するときに OSS
パスとしてデータのパスを書き込みます。 たとえば、以下のとおりです。
jar ossref://emr/checklist/jars/chengtao/hadoop/hadoop-mapreduce-examples-2.6.0.jar randomtextwriter -D mapreduce.randomtextwriter.totalbytes=320000 oss://emr/checklist/data/chengtao/hadoop/Wordcount/Input