以下では、MaxCompute で MapReduce コーディングモデルを使用する方法について説明します。 手順に記載されているコード例は、MaxCompute コンソールがインストールされていることを前提としています。
注 Maven ユーザーは、Maven ライブラリで "odps-sdk-mapred" を検索すると、必要な SDK を入手できます (複数のバージョンが用意されています)。 設定は次の通りです。
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-sdk-mapred</artifactId>
<version>0.26.2-public</version>
</dependency>
事前準備
- MapReduce をコンパイルして実行するには、JDK1.7 が必要です。
- MaxCompute コンソールのインストールに関する詳細は、「クイックス タート (Quick Start)」をご参照ください。 MaxCompute クライアントの使用方法については、「コンソール (Console)」をご参照ください。
手順
- クライアントのインストールと設定が完了したら、odpscmd.bat ファイルを開いて、該当するプロジェクトスペースを入力します。
- CREATE TABLE 文を入力し、入力テーブルと出力テーブルを作成します。 例
CREATE TABLE wc_in (key STRING, value STRING); CREATE TABLE wc_out (key STRING, cnt BIGINT); -- Create input table and output table
テーブルを作成するための SQL 文に関する詳細は、「テーブル操作 (Table Operations)」をご参照ください。
- データをアップロードします。
データのアップロードには、次の 2 通りの方法があります。
- コマンドを使用してデータをアップロードします。
tunnel upload kv.txt wc_in -- Upload example data
kv.txt ファイル内のデータは、次のように表示されます。238,val_238 186,val_86 186,val_86
- 次のように INSERT 文を使用して、データを直接挿入することもできます。
insert into table wc_in select '238',' val_238' from (select count(*) from wc_in) a;
- コマンドを使用してデータをアップロードします。
- MapReduce プログラムを作成してコンパイルします。
MaxCompute は Eclipse 開発プラグインに対応しているため、MapReduce プログラムを短期間で開発し、MapReduce 関数をローカルデバッグできます。
ユーザーは最初に MaxCompute プロジェクトを Eclipse で作成してから、MapReduce プログラムを作成する必要があります。 ローカルデバッグが正常に実行されたら、 コンパイルしたプログラムを MaxCompute にアップロードできます。 詳細は、「MapReduce Eclipse プラグイン (MapReduce Eclipse Plug-in)」をご参照ください。
- jar パッケージをプロジェクトに追加します (以下の例では、JAR パッケージ名は "wordcount-1.0.jar" です)。
add jar word-count-1.0.jar;
- MaxCompute コンソールで "jar" コマンドを実行します。
jar -resources word-count-1.0.jar -classpath /home/resources/word-count-1.0.jar com.taobao.jingfan.WordCount wc_in wc_out;
- MaxCompute コンソールで実行結果を確認します。
select * from wc_out;
注 Java プログラムで他のリソースが使用される場合、 -resources パラメーターを追加する必要があります。JAR コマンドに関する詳細は、「Jar コマンド (Jar Commands)」をご参照ください。