ここでは SSSP アルゴリズムを例に挙げ、Graph ジョブの送信方法を紹介します。

Graph ジョブの送信は、MapReduce を使用してジョブを送信する方法と似ています。 Maven ユーザーは、Maven ライブラリodps-sdk-graph を検索して、Java SDK を入手できます。
<dependency>
    <groupId>com.aliyun.odps</groupId>
    <artifactId>odps-sdk-graph</artifactId>
    <version>0.20.7</version>
</dependency>

手順

  1. コンソールを起動して、odpscmd を実行します。
  2. 入力テーブルと出力テーブルを作成します。
    create table sssp_in (v bigint, es string);
    create table sssp_out (v bigint, l bigint);

    テーブルを作成する文の詳細は、「テーブルの操作 (Table Operations)」をご参照ください。

  3. データをアップロードします。
    ローカルデータの内容は、次の通りです。
    2, 2, 3, 4, 4
    2 1:2,3:2,4:1
    3 1:1,2:2,5:1
    4 1:4,2:1,5:1
    5 3:1,4:1
    2 つの列を分割するには、Tab ボタンを使用します。
    tunnel u -fd " " sssp.txt sssp_in;
  4. SSSP の例を記述します。
    Graph Eclipse プラグイン (Graph Eclipse Plug-in) 」の説明に従い、SSSP の例をローカルでコンパイルおよびデバックします。 この例では、コードを odps-graph-example-sssp.jar という名前でパッケージ化します。
    SSSP コードのみをパッケージ化する必要があります。 odpsgraph-example-sssp.jar の SDK をパッケージ化する必要はありません。
  5. Jar パッケージを追加します。
    add jar $LOCAL_JAR_PATH/odps-graph-example-sssp.jar
    リソースの作成については、「リソースの操作 (Resource Operation)」をご参照ください。
  6. SSSP を実行します。
    jar -libjars odps-graph-example-sssp.jar -classpath $LOCAL_JAR_PATH/odps-graph-example-sssp.jar com.aliyun.odps.graph.example.SSSP 1 sssp_in sssp_out;

    MaxCompute Graph ジョブの実行には、Jarコマンドを使用します。MapReduce ジョブを実行するコマンドと同じ要領です。

    Graph ジョブの実行中、対応するインスタンス ID、実行スケジュール、および結果の概要がコマンドライン次にように出力されます。

    出力
    ID = 20130730160742915gl205u3
    2013-07-31 00:18:36 SUCCESS
    Summary:
    Graph Input/Output
    Total input bytes=211
    Total input records = 5
    Total output bytes=161
    Total output records=5
    Graph_input _ [BSP. sssp_in] _ bytes = 211
    Graph_input _ [BSP. sssp_in] _ records = 5
    graph_output_[bsp.sssp_out]_bytes=161
    Graph_output _ [BSP. sssp_out] _ records = 5
    Graph statistics
    Total edges=14
    Total halted vertices=5
    Total sent messages=28
    Total supersteps=4
    Total vertices=5
    Total workers=1
    Graph timers
    Average superstep time (milliseconds) = 7
    Load time (milliseconds)=8
    Max superstep time (milliseconds) =14
    Max time superstep=0
    Min superstep time (milliseconds) = 5
    Min time superstep=2
    Setup Time (milliseconds) = 277
    Shutdown Time (milliseconds) = 20
    Total superb time (milliseconds) = 30
    Total time (milliseconds)=344
    OK
    Graph 関数を使用する必要がある場合は、Graph 計算ジョブの実行を申請してください。