このトピックでは、MaxCompute Studioを使用してMapReduceプログラムを開発する方法について説明します。 開発プロセスには、MapReduceプログラムの作成、デバッグ、パッケージ化、アップロード、および実行が含まれます。
前提条件
次の前提条件が満たされています。
MaxComputeプロジェクトが接続されています。
MaxComputeプロジェクトへの接続方法の詳細については、「プロジェクト接続の管理」をご参照ください。
Javaモジュールが作成されます。
Javaモジュールの作成方法の詳細については、「MaxCompute Javaモジュールの作成」をご参照ください。
MapReduceプログラムを書く
プロジェクトタブの左側のナビゲーションウィンドウで、 を選択します。 を選択して、javaを右クリックし、
[名前] を設定し、[ドライバー] クラスを選択し、Enterキーを押します。
Name: MaxCompute Javaクラスの名前。 パッケージを作成していない場合は、このパラメーターをpackagename.classname形式で指定します。 システムは自動的にパッケージを生成します。
[Driver] 、[Mapper] 、または [Reducer] クラスを選択します。
説明ビジネス要件に基づいて、Driver、Mapper、またはReducerクラスを選択できます。
Driver: MapReduceジョブのドライバークラス。 このクラスは、実行するMapReduceジョブを作成するために使用されます。 Driverクラスでは、実行するMapperクラスとReducerクラス、およびさまざまなタスク設定を指定できます。 Driverクラスは、MapReduceジョブのエントリクラスと見なすことができます。
Mapper: MapReduceデータ処理の第1段階。 この段階では、各データレコードが処理され、関連するキー値対が生成される。
Reducer: Mapperクラスによって生成された中間出力を処理し、最終出力を生成してから、最終出力をMaxComputeテーブルに保存します。
MaxCompute Javaクラスを作成したら、エディタでJavaプログラムを開発します。
Javaテンプレートは自動的にフレームワークコードで埋められます。 入力テーブル、出力テーブル、およびMapperクラスとReducerクラスを設定するだけで済みます。
オンプレミスマシンでMapReduceプログラムを実行してプログラムをデバッグする
作成したMapReduceプログラムをオンプレミスマシンで実行してプログラムをデバッグし、デバッグ結果が期待どおりかどうかを確認します。
作成したJavaスクリプトを右クリックし、実行 を選択します。
実行 /デバッグ設定ダイアログボックスで、MapReduceプログラムが実行されているMaxComputeプロジェクトの名前を選択します。
[OK] をクリックしてUDFを実行します。
説明システムは、ローカル実行中に入力としてwarehouse内の指定されたテーブルからデータを読み取ります。 コンソールでログ出力を表示できます。
MapReduceプログラムをデバッグするための単体テストの実行
examplesフォルダーのWordCount単体テストのテストケースに基づいてテストケースを記述できます。
MapReduceプログラムのパッケージ化とアップロード
作成したMapReduceプログラムをデバッグした後、MapReduceプログラムをJARファイルにパッケージ化し、そのファイルをリソースとしてMaxComputeプロジェクトにアップロードします。 詳細については、「Javaプログラムのパッケージ化、アップロード、登録」をご参照ください。
MapReduceプログラムの実行
MaxComputeクライアントで開発したMapReduceプログラムを実行します。
左側のナビゲーションウィンドウで、[Project Explorer] をクリックします。
MaxComputeプロジェクトの名前を右クリックし、コンソールで開く を選択します。
コンソールツールウィンドウで、次のコマンドを実行してMapReduceプログラムを起動します。
コマンドの詳細については、「MapReduceジョブの送信」をご参照ください。
jar -resources wordcount.jar -classpath D:\odps\clt\wordcount.jar com.aliyun.odps.examples.mr.WordCount wc_in wc_out;