本文將以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. 進入console並運行odpscmd。
  2. 建立輸入表和輸出表 。
    create table sssp_in (v bigint, es string);
    create table sssp_out (v bigint, l bigint);

    建立表的更多語句請參見表操作

  3. 上傳資料。
    本機資料的內容如下:
    1 2:2,3:1,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
    以空格鍵做兩列的分隔字元,執行Tunnel命令上傳資料。
    tunnel u -fd " " sssp.txt sssp_in;
  4. 編寫SSSP樣本。
    根據Graph開發外掛程式的介紹,本地編譯、調試SSSP演算法樣本。本樣本中假設代碼被打包為 odps-graph-example-sssp.jar
    说明 僅需要將SSSP代碼打包即可,不需要同時將SDK打入 odps-graph-example-sssp.jar中。
  5. 添加Jar資源。
    add jar $LOCAL_JAR_PATH/odps-graph-example-sssp.jar;
    说明 建立資源的介紹請參見資源操作
  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;

    Jar命令用於運行MaxCompute Graph作業,用法與MapReduce作業的運行命令完全一致。

    Graph作業執行時命令列會列印工作執行個體ID,執行進度,結果Summary等。

    輸出樣本如下所示:
    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 superstep time (milliseconds)=30
    Total time (milliseconds)=344
    OK
    说明 如果您需要使用Graph功能,直接開通提交圖計算作業即可。