From cdc61909303733f9a1a3188eb8bc30b00bea7ea6 Mon Sep 17 00:00:00 2001 From: Zhang Lei Date: Mon, 11 Mar 2024 15:27:42 +0800 Subject: [PATCH] fix(analytical): Fix documentation for GRAPE-JDK (#3618) As titled. --- .../tutorial_dev_algo_java.md | 40 ++++++++++++------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/docs/analytical_engine/tutorial_dev_algo_java.md b/docs/analytical_engine/tutorial_dev_algo_java.md index b2b559a017d4..1ac4a79c4d95 100644 --- a/docs/analytical_engine/tutorial_dev_algo_java.md +++ b/docs/analytical_engine/tutorial_dev_algo_java.md @@ -41,13 +41,25 @@ To implement java graph algorithms runnable on GraphScope, all you need is `GRAP ### Prepare **GRAPE-jdk** -You can include `GRAPE-jdk` as a dependency in your maven project by adding following configuration. +You can include `GRAPE-jdk` as a dependency in your maven project by adding following configuration. + +#### Get from Maven Central Repository + +Find the latest version available on [Maven-Central-Repository](https://mvnrepository.com/artifact/com.alibaba.graphscope/grape-jdk) + +#### Build from source + +```bash +git clone https://github.com/alibaba/GraphScope +cd GraphScope/analytical_engine/java +mvn clean install -DskipTests # the version is specified in pom.xml's revision property +``` ```xml com.alibaba.graphscope grape-jdk - 0.19.0 + ${grape-jdk-version} ``` @@ -76,12 +88,12 @@ results, init configuration in this class. The `init` method will be called befo Here we provide a simple PIE algorithm which simply traverse the graph. ```java -public class Traverse implements ParallelAppBase, +public class Traverse implements ParallelAppBase, ParallelEngine { @Override - public void PEval(IFragment fragment, - ParallelContextBase context, + public void PEval(IFragment fragment, + ParallelContextBase context, ParallelMessageManager messageManager) { TraverseContext ctx = (TraverseContext) context; for (Vertex vertex : fragment.innerVertices()) { @@ -92,13 +104,13 @@ public class Traverse implements ParallelAppBase fragment, - ParallelContextBase context, + public void IncEval(IFragment fragment, + ParallelContextBase context, ParallelMessageManager messageManager) { TraverseContext ctx = (TraverseContext) context; for (Vertex vertex : fragment.innerVertices()) { @@ -116,7 +128,7 @@ public class Traverse implements ParallelAppBase, Long> implements ParallelContextBase { + VertexDataContext, Long> implements ParallelContextBase { public GSVertexArray vertexArray; @@ -124,7 +136,7 @@ public class TraverseContext extends @Override - public void Init(IFragment frag, + public void Init(IFragment frag, ParallelMessageManager messageManager, JSONObject jsonObject) { createFFIContext(frag, Long.class, false); //This vertex Array is created by our framework. Data stored in this array will be available @@ -138,7 +150,7 @@ public class TraverseContext extends @Override - public void Output(IFragment frag) { + public void Output(IFragment frag) { //You can also write output logic in this function. } } @@ -172,10 +184,8 @@ graph = graph.project(vertices={"host": ['id']}, edges={"connect": ["dist"]}) # you can also use your own graph, refer to graphscope load graph tutorial. # But remember project to single property graph before running algorithms. -app=JavaApp( - full_jar_path="{full/path/to/your/packed/jar}", # *-shaded.jar - java_app_class="{fully/qualified/class/name/of/your/app}", # com.a.b.c -) +sess.add_lib("{full/path/to/your/packed/jar}") # *-shaded.jar +app=load_app(algo="java_pie:com.alibaba.graphscope.example.Traverse") # java_pie:{you-full-class-name} ctx=app(graph, "{param string}") # a=b,c=d ```