すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:MapReduceジョブを送信する

最終更新日:Jan 07, 2025

このトピックでは、MaxComputeクライアントでJARコマンドを実行してMapReduceジョブを送信する方法について説明します。

MaxComputeクライアントは、MapReduceジョブを送信するためのJARコマンドを提供します。 例:

jar -conf \home\admin\myconf -resources a.txt,example.jar -classpath ..\lib\example.jar:.\other_lib.jar -D java.library.path=.\native;

構文

jar [<GENERIC_OPTIONS>] <MAIN_CLASS> [ARGS];
        -conf <configuration_file> 
        -resources <resource_name_list>    
        -classpath <local_file_list>       
        -D <name>=<value>                  
        -l                                 

パラメーター

  • <GENERIC_OPTIONS> には、次のオプションパラメーターが含まれます。

    • -conf <configuration file>: JobConf設定ファイルを指定します。 このファイルには、SDKのJobConfの設定が含まれています。

      次のコードは、JobConfファイルのテンプレートを示しています。

      <configuration>
         <property>
            <name>import.filename</name>
            <value>resource.txt</value>
         </property>
      </configuration>          

      この例では、値がresource.txtであるimport.filenameという名前の変数がJobConf設定ファイルで指定されています。

      MapReduceでJobConfインターフェイスを呼び出して、この変数の値を取得できます。 SDKでJobConfインターフェイスを呼び出して変数値を取得することもできます。 詳細については、「リソースサンプル」をご参照ください。

      例:

      -- Add a jar to the MaxCompute project environment and submit a jar job.
      add jar data\mapreduce-examples.jar;
      jar -resources mapreduce-examples.jar -classpath data\mapreduce-examples.jar
          org.alidata.odps.mr.examples.WordCount wc_in wc_out;
          
      -- Add files and a jar to the MaxCompute project environment and submit a jar job.  
      add file data\src.txt;
      add jar data\mapreduce-examples.jar;
      jar -resources src.txt,mapreduce-examples.jar -classpath data\mapreduce-examples.jar
          org.alidata.odps.mr.examples.WordCount wc_in wc_out;
       
      -- Create a new table test_table based on the structure of the table wc_in, add a file, the test_table and the jar to the MaxCompute project environment, then submit a jar job.  
      add file data\a.txt;
      add table wc_in as test_table;
      add jar data\work.jar;
      jar -conf odps-mapred.xml -resources a.txt,test_table,work.jar
          -classpath data\work.jar:otherlib.jar
          -D import.filename=resource.txt org.alidata.odps.mr.examples.WordCount args;
    • -resources <resource_name_list>: MapReduceジョブの実行に使用されるリソースを指定します。 ほとんどの場合、resource_name_listでmapまたはreduce関数によって使用されるリソースの名前を指定する必要があります。

      説明
      • mapまたはreduce関数が他のMaxComputeリソースを読み取る場合、これらのリソースの名前もresource_name_listに追加する必要があります。

      • 複数のリソースはコンマ (,) で区切る必要があります。 クロスプロジェクトリソースを使用する場合は、resource_name_listの前にproject /resources/ を追加します。 例: -resources otherproject/resources/resfile

      • mapまたはreduce関数を使用してリソースを読み取る方法の詳細については、「リソースサンプル」をご参照ください。

    • -classpath <local_file_list>: MapReduceジョブをローカルモードで実行するために使用されるクラスパスを指定します。 ローカルパスを指定します。 パスには、main関数が配置されているJARパッケージの相対パスと絶対パスの両方が含まれます。

      パッケージ名は、デフォルトのファイル区切り文字で区切ります。 ほとんどの場合、Windowsオペレーティングシステムでは、既定のファイル区切り文字としてセミコロン (;) を使用し、Linuxではコンマ (,) を使用します。 クラウドサーバーでMapReduceジョブを実行する場合は、パッケージ名をコンマ (,) で区切ります。

      説明

      may関数は、mapまたはreduce関数と同じパッケージでコンパイルすることをお勧めします。 詳細については、「WordCountサンプル」をご参照ください。 この場合、サンプルプログラムを実行すると、mapreduce-examples.jarは -resourcesオプションと -classpathオプションの両方に含まれます。 ただし、-resourcesオプションは、分散実行のためのmapまたはreduce関数を参照します。 -classpathオプションは、ローカル実行のmain関数を参照します。 指定されたJARパッケージもローカルディレクトリに保存する必要があります。

    • -D <prop_name >=< prop_value>: ローカル実行用の <mainClass> のJavaプロパティを指定します。 複数のプロパティを指定できます。

    • -l: MapReduceジョブをローカルモードで実行することを指定します。 このオプションは、プログラムのデバッグに使用されます。

  • <MAIN_CLASS>: メインクラス。 たとえば、com.example.Mainです。

  • [ARGS]: プログラムのパラメータ (オプション) 。 これらのパラメータは、mainクラスのMainメソッドに渡されます。