使用说明

项目简介

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 代码。

安装步骤

  1. 安装 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

基本使用方法

  1. 启动 Sail MCP 服务器: 根据您的部署环境选择启动方式,例如使用命令行 'sail spark server --port 50051' 或 Python API。

  2. 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 服务器进行数据分析。

更多信息

信息

分类

AI与计算