Este tema usa el algoritmo Single Source Shortest Path (SSSP) como ejemplo para mostrar cómo escribir un trabajo de Graph.
Requisitos previos
Ha instalado y configurado el cliente de MaxCompute, y se ha conectado a una instancia de MaxCompute. Para obtener más información, consulte MaxCompute client.
Ha instalado y configurado IntelliJ IDEA 2024 y una versión compatible de MaxCompute Studio actualizada en 2024. Para obtener más información, consulte Install MaxCompute Studio y Configure MaxCompute Studio.
Ha configurado Apache Maven versión
apache-maven-3.5.0.Ha instalado JDK 1.8 o posterior.
-
Ha preparado un archivo de datos. Este tema usa el archivo sssp.txt como ejemplo.
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
Procedimiento
-
Inicie el cliente de MaxCompute y ejecute los siguientes comandos para crear la tabla de entrada sssp_in y la tabla de salida sssp_out.
CREATE TABLE sssp_in (v bigint, es string); CREATE TABLE sssp_out (vertex bigint, value bigint); -
Ejecute el comando Tunnel para cargar los datos del archivo sssp.txt en la tabla sssp_in, con un espacio como delimitador de columnas.
tunnel u -fd " " sssp.txt sssp_in;NotaEn este ejemplo, el archivo sssp.txt se guarda en el directorio
bindel cliente de MaxCompute. Asegúrese de especificar la ruta correcta a su archivo sssp.txt. -
Escriba el ejemplo de SSSP.
-
En IntelliJ IDEA, cree un MaxCompute Java Module y asígnele el nombre odps-graph-example-sssp.
NotaPara obtener más información, consulte Create a MaxCompute Java Module.
-
En el nuevo módulo odps-graph-example-sssp, cree la clase
BaseLoadingVertexResolvery la claseSSSP. Para consultar el código Java completo, revise el ejemplo de grafo dirigido en Single Source Shortest Path. Agregue las siguientes dependencias al archivo 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> <!-- For local testing --> <dependency> <groupId>com.aliyun.odps</groupId> <artifactId>odps-graph-local</artifactId> <version>0.48.0-public</version> </dependency> -
En IntelliJ IDEA, use MaxCompute Studio para empaquetar el proyecto. Para obtener instrucciones detalladas, consulte Package, upload, and register.
NotaEn este ejemplo, el paquete JAR desplegado en el proyecto de MaxCompute se llama odps-graph-example-sssp.jar.
-
-
En el cliente de MaxCompute, ejecute el siguiente comando para ejecutar el trabajo 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: La ruta local al archivo odps-graph-example-sssp.jar.
Una vez finalizado el trabajo, ejecute
select * from sssp_out;para consultar la tabla sssp_out y comprobar el resultado.vertex value 1 0 2 2 3 1 4 3 5 2vertex: El ID de un vértice.
value: La distancia más corta desde el vértice correspondiente hasta el vértice de origen (1).
NotaPara usar la función Graph, simplemente envíe un Graph job.