使用说明
项目简介
Sail 项目的核心使命是统一流处理、批处理以及计算密集型(AI)工作负载。其 MCP 服务器功能,旨在将 Spark 的强大数据分析能力以标准化方式提供给 LLM 客户端,使得 LLM 能够安全、可扩展地利用 Spark 进行数据处理和分析。
主要功能点
- 数据资源访问: 通过 Sail MCP 服务器,LLM 客户端可以访问和操作由 Spark 管理的各种数据资源,例如:
- 执行 SQL 查询分析数据。
- 利用 Spark DataFrame API 进行数据处理。
- 工具注册与执行: Sail 允许注册和执行基于 Python UDF (User Defined Function) 的工具,扩展 LLM 的功能,使其能够调用 Spark 的数据处理能力。
- 本地和分布式部署: Sail 服务器支持本地单机部署和 Kubernetes 集群分布式部署,满足不同规模应用的需求。
- PySpark 客户端连接: LLM 应用可以使用标准的 PySpark 代码连接到 Sail MCP 服务器,无需修改现有 PySpark 代码。
安装步骤
- 安装 pysail Python 包:
pip install "pysail[spark]"
服务器配置
MCP 客户端需要配置服务器连接信息才能与 Sail MCP 服务器通信。以下是一个典型的 JSON 格式配置示例,用于连接到本地运行的 Sail MCP 服务器:
{ "serverName": "SailSparkMCP", "command": "sail spark server", "args": [ "--port", "50051" ], "description": "连接到本地 Sail Spark MCP 服务器", "transport": "stdio" }
配置参数说明:
- 'serverName': MCP 服务器的名称,可以自定义。
- 'command': 启动 Sail MCP 服务器的命令,这里使用 'sail spark server'。
- 'args': 启动命令的参数列表,包括:
- '--port': 指定服务器监听的端口号,例如 '50051'。 请确保此端口与服务器实际监听端口一致。
- 'description': 对该服务器配置的描述信息,方便用户识别和管理。
- 'transport': 传输协议,这里默认使用 'stdio'。
注意: 更详细的 Kubernetes 集群部署和配置信息,请参考 Sail 官方文档 Kubernetes Deployment Guide。
基本使用方法
-
启动 Sail MCP 服务器: 根据您的部署环境选择启动方式,例如使用命令行 'sail spark server --port 50051' 或 Python API。
-
LLM 客户端连接: 在 LLM 客户端 (例如 PySpark 应用) 中,使用以下代码连接到 Sail MCP 服务器:
from pyspark.sql import SparkSession spark = SparkSession.builder.remote("sc://localhost:50051").getOrCreate() # 现在您可以使用 'spark' 对象像操作本地 SparkSession 一样与 Sail MCP 服务器交互关键点: 使用 'SparkSession.builder.remote()' 方法,指定 Sail MCP 服务器的连接地址 (例如 'sc://localhost:50051')。 无需修改其他 PySpark 代码,即可利用 Sail MCP 服务器进行数据分析。
更多信息
- 请参考 Sail 官方文档 Getting Started 和 MCP server 博文获取更详细的使用指南和背景信息。
信息
分类
AI与计算