GAE 部署指南

我们已经介绍了如何在本地机器上部署GraphScope,以及如何利用其三大引擎(GAE、GIE和GLE)来解决与图相关的各类复杂问题。

我们还展示了如何在Kubernetes集群上部署GraphScope。

然而,这类场景也相当常见:用户希望每天对离线图数据运行图分析算法,并将结果导出到数据仓库,而无需任何实时图查询或采样功能。在这种情况下,用户没有必要同时部署GIE和GLE。因此,我们提供了独立部署GAE的能力。

本文档将引导您完成在自管理的k8s集群上独立部署GAE的过程。

前提条件

  • Kubernetes集群

  • Python 版本需 ≥ 3.7

要开始使用,您需要安装graphscope-client并准备一个Kubernetes集群以继续。

如果您还没有这些环境,可以参考安装graphscope客户端创建kubernetes集群来获取。

仅部署GAE

我们提供两种独立的GAE安装方法。您可以根据个人偏好自由选择上述任一方法。

使用Python SDK部署

Session 类提供了选项来控制启动时要创建的引擎容器子集。例如:

import graphscope
graphscope.set_option(show_log=True)

sess = graphscope.session(enabled_engines='gae')
g = sess.g()

使用 Helm 部署

您可以通过命令行参数自定义传递给helm install的选项。例如:

# helm install <release-name> graphscope/graphscope
# Replace <release-name> to the name of this release, use `my-gs` for illustration.
helm install my-gs graphscope/graphscope --set enabled_engines="gae"

然后使用python客户端连接服务。更多详情请参阅使用helm部署graphscope

import graphscope

sess = graphscope.session(addr="<ip>:<port>")
g = sess.g()

执行图分析算法

您可以像之前设置一样执行图分析算法。例如:

wcc_result = graphscope.wcc(g)
print(wcc_result.to_dataframe({'id': 'v.id', 'group': 'r'}))

提示: 如果遇到错误Failed to project to simple graph as no vertex exists in this graph.,表示该图为空图。您可以通过导入加载方法from graphscope.dataset import load_modern_graph,然后使用当前会话加载现代图,例如g = load_modern_graph(sess, "path/to/your/graph"),其中"path/to/your/graph"是图数据在pod中的存储路径。

唯一的区别在于消除了多余的资源,从而降低了复杂性、减少了不便之处、所需资源更少,同时功能保持不变。

卸载部署

当使用Python SDK部署时,需要通过sess.close()来关闭会话并释放资源。

当使用helm部署时,您可以使用helm uninstall my-gs来删除发布并释放资源。