Hadoop 作业历史 MCP 服务器

使用说明(Markdown 格式)

项目简介

  • 该项目实现了一个基于 MCP(Model Context Protocol)的后端服务器,用于通过 Hadoop JobHistory Server 的 REST API 提供可查询的作业历史、任务、日志等信息给 AI 助手(如 Claude、Cursor 等)使用。服务器支持以标准化的工具集形式执行数据查询、格式化输出,并能通过多种传输模式与 MCP 客户端对接。

主要功能点

  • 作业与任务查询工具:列出作业、查询作业详情、查询作业计数器、查询作业配置、列出任务及查询任务详情等。
  • 日志访问工具:获取任务尝试日志、部分日志读取(按字节范围)以及完整日志获取,支持多种日志类型。
  • 格式化输出:输出可选 Markdown(便于人工阅读)或 JSON(便于程序处理)。
  • 完整的日志记录与追踪:对工具调用、REST 请求与响应进行日志记录,便于排错与审计。
  • 两种传输模式:stdio(本地)和 http(远程),可根据部署场景灵活选择。

安装步骤

  • 依赖安装与环境准备
    • 需要 Python 3.10 及以上版本。
    • 安装所需依赖:读取项目中的 requirements.txt 并执行安装。
  • 运行方式
    • 本地部署(stdio 模式,默认): 直接运行 jobhistory_mcp.py,即可在本地使用 MCP 传输。
    • 远程部署(HTTP 模式): 以 HTTP 传输,启动命令包含 --http 参数,例如 python jobhistory_mcp.py --http,或通过环境变量 MCP_TRANSPORT=http 来启用。

服务器配置(MCP 客户端需要的启动配置示例) 以下 JSON 配置示例用于 MCP 客户端在启动时引用该 MCP 服务器。名称、命令与参数需与实际部署相匹配: { "server_name": "jobhistory_mcp", "command": "python", "args": ["jobhistory_mcp.py", "--http"], "env": { "JOBHISTORY_URL": "http://your-history-server:19888/ws/v1/history", "NODEMANAGER_PORT": "8052", "REQUEST_TIMEOUT": "30.0" } } 说明

  • server_name:在 MCP 客户端配置中的服务器标识,推荐使用 jobhistory_mcp。
  • command/args:启动 MCP 服务器的命令与参数(如果使用本地 stdio 模式,不需要额外参数;若使用 HTTP 模式则需要 --http)。
  • env:可选的环境变量设置,如 JobHistory 服务地址、NodeManager 端口、请求超时等,请根据实际环境调整。

基本使用方法

  • 对接与使用要点
    • 通过 MCP 客户端连接到服务器后,可以按需求调用下列工具:jobhistory_list_jobs、jobhistory_get_job、jobhistory_get_job_counters、jobhistory_get_job_conf、jobhistory_list_tasks、jobhistory_get_task 等等。
    • 输出默认提供 Markdown 友好格式,若需要机器处理则可请求 JSON 输出。
    • 日志和诊断信息会在服务器端记录,便于排错与性能分析。
  • 与 MCP 客户端的常见交互步骤
    • 配置 MCP 服务端地址(如 http://server:8080/mcp,或 stdio 本地传输)。
    • 发送查询请求,例如列出最近的作业、获取某个作业的详细信息、获取任务的日志等。
    • 处理返回结果(Markdown 可直接展示给用户,JSON 便于后续程序分析)。
  • 安装完成后的基本操作
    • 启动服务后,确保 JobHistory 服务对外可用(默认 JOBHISTORY_URL 指向 Hadoop JobHistory REST API)。
    • 使用 MCP 客户端进行工具调用,按需设置输出格式和过滤参数。

关键词 Hadoop, MapReduce, 作业历史, 日志查询, API 服务

分类ID 5

服务器信息