python InsecureClient 上传下载查看删除实例

使用 hdfs 库中的 InsecureClient 操作 HDFS,需先安装依赖:pip install hdfs。以下实例涵盖连接、上传、下载、查看(列表/状态/内容)及删除操作 。‌‌

1. 初始化客户端

复制代码
from hdfs import InsecureClient 
# 替换为你的 NameNode WebHDFS 地址和端口(Hadoop 2.x/3.x 常见为 50070 或 9870) 
client = InsecureClient('http://localhost:9870', user='root')

2. 上传文件

将本地文件上传至 HDFS,支持自动覆盖。

复制代码
local_path = '/path/to/local/file.txt' 
hdfs_path = '/user/root/hdfs_file.txt' 
# 参数 overwrite=True 表示若文件存在则覆盖 
client.upload(hdfs_path, local_path, overwrite=True)

3. 下载文件

将 HDFS 文件下载到本地指定目录或路径。

复制代码
hdfs_path = '/user/root/hdfs_file.txt' 
local_path = '/path/to/local/downloaded_file.txt' 
# n_threads 可设置多线程加速下载 
client.download(hdfs_path, local_path, n_threads=1)

4. 查看文件与目录

提供三种查看方式:列出目录、获取文件元数据、读取文件内容。

  • ‌列出目录内容‌

    files = client.list('/user/root/')
    for name, status in files:
    print(f"名称: {name}, 类型: {status['type']}")

  • ‌**获取文件状态(元数据)**‌

    try:
    status = client.status('/user/root/hdfs_file.txt')
    print(f"文件大小: {status['length']} 字节, 权限: {status['permission']}")
    except Exception:
    print("文件不存在")

  • ‌读取文件内容‌

    with client.read('/user/root/hdfs_file.txt', encoding='utf-8') as reader:
    content = reader.read()
    print(content)

5. 删除文件或删除目录

删除操作不可逆,删除目录需开启递归模式。

复制代码
# 删除单个文件 
client.delete('/user/root/hdfs_file.txt') 
# 删除目录及其所有内容 
client.delete('/user/root/old_folder', recursive=True)

注意事项

  • ‌端口差异 ‌:Hadoop 2.x 默认 WebHDFS 端口为 50070,Hadoop 3.x 通常为 9870,请根据集群配置调整 URL 。
  • ‌路径检查 ‌:使用 status(path, strict=False) 可避免路径不存在时报错,返回 None 而非异常 。
  • ‌安全性 ‌:InsecureClient 无 Kerberos 认证,仅适用于测试或内网可信环境,生产环境建议使用 KerberosClient 。‌‌
相关推荐
追光者497 分钟前
我把 55 篇自动化日志翻了一遍:最容易出事的是这 4 个地方
python·自动化运维
2601_962885728 分钟前
如何用 Python计算 CR能量指标(中间意愿指标)?
开发语言·python
打工仔折腾 AI10 分钟前
LangChain 工具调用实战:从 Tool 定义到 Agent 执行链路拆解
java·前端·人工智能·后端·python·langchain·ai agent 实战
hhb_61818 分钟前
Flask+SQLite实现用户管理接口
python·sqlite·flask
全栈练习生20 分钟前
RAG 准确率保障的体系化方案
python·ai
秋秋小事29 分钟前
python 基础知识总结(一)
python
蜗牛互联网40 分钟前
Python调用Gemini Structured Outputs实现工单路由门禁
java·开发语言·人工智能·python
TomEval1 小时前
【测AI】第12篇:NLP / CV / 语音 —— 三大 AI 方向速通
人工智能·python·自然语言处理·aigc·测试用例
SEO_juper1 小时前
给网页做可引用性评分:判断内容够不够让 AI 引用(GEO 工具,附代码)
开发语言·人工智能·爬虫·python·seo·独立站
AI直播技术杂谈1 小时前
无人直播中控的硬件底线,旧电脑要满足哪些条件
网络·python·ai·云计算