awol2005ex3/dsh-hdfs ↗★ 0

dsh-hdfs

DeepSeek Harness (dsh) plugin: browse and operate HDFS clusters (HA / Kerberos) through a Rust napi-rs native addon, with a Web client half and agent tools. 适合需要在 DSH 中直接管理、浏览或让 Agent 操作 HDFS 分布式存储的用户。

パッケージ
dsh-hdfs
互換性
未検証
Harness ピア範囲
^0.2.0-rc.2
Cordis ピア範囲
^4.0.1
バージョン
0.1.0
ライセンス
Apache-2.0
最終更新
2026/10/14

インストール

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:awol2005ex3/dsh-hdfs

ドキュメント

README 全文を読む ↗

集群配置

配置载体是 profile 的 cordis.patch.yml(也可在「设置 → 插件 → HDFS」里改,volatile 热更新):

- id: hdfs
  config:
    clusters: '[{"id":"prod","url":"hdfs://nameservice1","extraConfig":"{\"dfs.nameservices\":\"nameservice1\",\"dfs.namenode.rpc-address.nameservice1.nn1\":\"nn1-host:8020\",\"dfs.namenode.rpc-address.nameservice1.nn2\":\"nn2-host:8020\",\"dfs.ha.namenodes.nameservice1\":\"nn1,nn2\",\"dfs.namenode.kerberos.principal\":\"hdfs@REALM\",\"dfs.namenode.keytab.file\":\"/path/hdfs.keytab\"}"}]'
    defaultCluster: prod
  • clusters 是 JSON 数组字符串,每项 {id, url, extraConfig};extraConfig 是 Hadoop 配置的 JSON 字符串。
  • url 必须是 hdfs:// 开头;HA 场景填逻辑名(hdfs://nameservice1),地址与 namenode 清单由 extraConfig 提供。
  • 省略 cluster 参数时用 defaultCluster(留空取第一个)。

用户名怎么定(两种互斥路径)

场景用户名来源
extraConfig 里有 dfs.namenode.kerberos.principal + dfs.namenode.keytab.fileprincipal 的 @ 前缀(hdfs@REALM → hdfs)
否则环境变量 HADOOP_USER_NAME → HADOOP_USERNAME → HDFS_USERNAME

配置里没有 user 字段,这是刻意设计。

使用

agent 工具

会话里直接让模型操作,例如:

列出 HDFS 根目录          → hdfs {endpoint:"list", args:{path:"/"}}
读一个文件的前 64KB       → hdfs {endpoint:"read", args:{path:"/tmp/a.csv", maxBytes:65536}}
找全集群的 .Trash 目录     → hdfs {endpoint:"findSpecialDirs", args:{patterns:[".Trash","staging"]}}
Kerberos 登录             → hdfs {endpoint:"kerberosLogin"}

Web 面板

  • 设置 → 插件 → HDFS(0.1.7 的 settings.plugins.tab 插槽);
  • 插槽不可用时回退为左下角浮动「🐘 HDFS」启动器。

面板功能:集群下拉、路径面包屑、目录表格(权限/属主/大小/时间)、文本预览、目录汇总开关、Kerberos 登录与状态、集群 JSON 编辑与校验。