全部產品
Search
文件中心

MaxCompute:開發Graph

更新時間:Nov 06, 2024

本文為您介紹如何使用MaxCompute Studio開發Graph,包括編寫Graph、調試Graph、打包上傳和運行Graph。

前提條件

您需要完成以下操作:

  1. 管理專案串連

  2. 建立MaxCompute Java Module

編寫Graph

  • 建立MaxCompute Java Class。

    本文以建立BaseLoadingVertexResolver類和SSSP類為例。

    1. Project地區,按右鍵Module的源碼目錄(即src > main > java),選擇new > MaxCompute Java

      11

    2. 填寫Name並選擇類型為GraphLoaderVertex,按下Enter鍵。

      建立Class

      • Name:填寫建立的MaxCompute Java Class名稱。

        說明

        如果還沒建立package,可以在此處填寫 packagename.classname,會自動產生package。

      • 選擇類型為GraphLoaderVertex,類型介紹如下:

        • GraphLoader:用於載入圖。通過GraphJob的setGraphLoaderClass介面提供GraphLoader實現。

        • Vertex:是圖的點的抽象,包含屬性:id、value、halted、edges。通過GraphJob的setVertexClass介面提供Vertex實現。

    3. 建立成功後,在編輯介面開發Java程式。 BaseLoadingVertexResolver類和SSSP程式碼範例詳情,請參見單源最短距離

  • 配置pom.xml檔案,引入相關依賴。樣本如下。

    <dependency>
        <groupId>com.aliyun.odps</groupId>
        <artifactId>odps-sdk-core</artifactId>
        <version>0.48.0-public</version>
    </dependency>
    <dependency>
        <groupId>com.aliyun.odps</groupId>
        <artifactId>odps-sdk-graph</artifactId>
        <version>0.48.0-public</version>
    </dependency>
    
    <!-- 用於本地測試 -->
    <dependency>
        <groupId>com.aliyun.odps</groupId>
        <artifactId>odps-graph-local</artifactId>
        <version>0.48.0-public</version>
    </dependency>

    pom.xml檔案配置完成後,您可以在Maven面板確認對應的依賴包是否已載入成功。

通過本地運行調試Graph

通過本地運行方式測試,查看Graph的運行結果是否符合預期。

  1. 按右鍵編寫完成的Java指令碼,選擇Run

  2. Run/Debug Configurations頁面上配置運行參數。

    graph

    • MaxCompute project:選擇運行Graph的MaxCompute專案。

    • Download Record limit:下載資料記錄限制。預設為100條。

  3. 單擊OK,開始運行。

    本文選擇本地運行,因此將會讀取warehouse目錄中指定的表資料作為輸入,您可以在控制台查看日誌輸出。更多warehouse目錄的介紹詳情,請參見warehouse目錄

打包上傳

調試成功之後,將Java程式打成JAR包,並作為資源上傳至MaxCompute服務端。詳情請參見打包、上傳和註冊

運行Graph

  1. 在IntelliJ IDEA工具的左側導覽列,單擊Project Explorer

  2. 按右鍵專案名稱,選擇Open in Console

  3. Console地區運行Graph,命令樣本如下,請根據實際情況替換其中的MainClass、輸入表及輸出表後運行命令。

    更多命令,請參見JAR命令

    jar -libjars xxx.jar -classpath /Users/home/xxx.jar com.aliyun.odps.graph.examples.PageRank pagerank_in pagerank_out;
    • PageRank:指Graph程式中定義的MainClass。

    • pagerank_in:輸入表。

    • pagerank_out:輸出表。