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

MaxCompute:Graphジョブを書く

最終更新日:Jan 07, 2025

このトピックでは、Graphジョブを記述する方法について説明します。 このトピックでは、シングルソース最短パス (SSSP) アルゴリズムを例として使用します。

前提条件

  • MaxComputeクライアントがインストールされ、設定され、MaxComputeインスタンスに接続されます。 詳細については、「MaxComputeクライアント (odpscmd) 」をご参照ください。

  • IDEA 2024開発ツールを準備し、MaxCompute Studioをインストールして設定します (MaxCompute Studioのバージョン更新時間は2024以内である必要があります) 。 MaxCompute Studioのインストールおよび設定方法の詳細については、「MaxCompute Studioのインストール」および「MaxCompute Studioの設定」をご参照ください。

  • Mavenのapache-maven-3.5 0が設定されています。

  • Java Development Kit (JDK) 1.8以降がインストールされています。

  • データファイルが準備される。 この例では、sssp.txtファイルが使用されます。 sssp.txtファイルには次のデータが含まれています。

    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

手順

  1. MaxComputeクライアントを実行し、次のステートメントを実行して、sssp_inという名前の入力テーブルとsssp_outという名前の出力テーブルを作成します。

    CREATE TABLE sssp_in (v bigint, es string);
    CREATE TABLE sssp_out (vertex bigint, value bigint);
  2. Tunnelコマンドを実行して、sssp.txtファイルのデータをsssp_inテーブルにアップロードします。 異なる列のデータをスペースで区切ります。

    tunnel u -fd " " sssp.txt sssp_in;
    説明

    この例では、sssp.txtファイルはMaxComputeクライアントのbinディレクトリに保存されています。 sssp.txtファイルが格納されている実際のディレクトリに注意してください。

  3. SSSPコードを記述します。

    1. IntelliJ IDEAでodps-graph-example-ssspという名前のMaxCompute Javaモジュールを作成します。

      説明

      MaxCompute Javaモジュールを作成します。 詳細については、「MaxCompute Javaモジュールの作成」をご参照ください。

    2. odps-graph-example-SSSPBaseLoadingVertexResolverクラスとssspクラスを作成します。 クラスの作成方法の詳細については、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>
      
      <!-- used for local test -->
      <dependency>
          <groupId>com.aliyun.odps</groupId>
          <artifactId>odps-graph-local</artifactId>
          <version>0.48.0-public</version>
      </dependency>
    3. IntelliJ IDEAで、MaxCompute Studioを使用してJavaプログラムをJARファイルにパッケージ化します。 JavaプログラムをJARファイルにパッケージ化する方法の詳細については、「Javaプログラムのパッケージ化、パッケージのアップロード、MaxCompute UDFの作成」をご参照ください。

      一键打包

      説明

      この例では、MaxComputeプロジェクトにデプロイされているJARパッケージの名前はodps-graph-example-sssp.jarです。

  4. MaxComputeクライアントで次のコマンドを実行し、SSSPアルゴリズムを使用します。

    jar -libjars odps-graph-example-sssp.jar -classpath <LOCAL_JAR_PATH>/odps-graph-example-sssp.jar SSSP 1 sssp_in sssp_out;

    LOCAL_JAR_PATH: odps-graph-example-sssp.jarパッケージのローカルパスを示します。

    上記のコマンドを実行した後、select * from sssp_out; を実行してsssp_outテーブルを照会し、実行結果を確認します。

    vertex    value
    1        0
    2        2
    3        1
    4        3
    5        2
    • vertex: 現在の頂点を示します。

    • value: 現在の頂点からソース頂点1までのSSSPの値を示します。

    説明

    グラフ機能を使用する場合は、グラフジョブを直接送信できます。