python3使用pyhdfs向hdfs中上传文件示例

本文介绍了一个Python脚本,通过PyHDFS库实现每5秒在HDFS中创建并上传一个1MB大小的文件,支持NamenodeHA模式。脚本详细展示了配置、文件生成和上传过程。
摘要由CSDN通过智能技术生成

1 概述

本文为使用pyhdfs包向hdfs中上传文件。主要用来测试hdfs当前服务的状态。同时,脚本支持namenode ha的方式。

2 包安装

pip3 install hdfs

3 脚本示例

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 本脚本的作用:每五秒钟创建一个1MB大小的文件,已年月日时分秒.txt作为文件名称。并上传至hdfs的示例。
import os
import time
from datetime import datetime
from pyhdfs import HdfsClient

# HDFS配置信息
hdfs_user = 'hdfs'
nn1="node01:50070"
nn2="node03:50070"
client = HdfsClient(hosts=[nn1,nn2],user_name=hdfs_user)
def create_and_upload_file():
    try:
        # 生成时间戳
        current_time = datetime.now().strftime('%Y%m%d%H%M%S')
        file_name = f"{current_time}.txt"
        file_path = f"/opt/apps/hdfs_tempfile/{file_name}"
        # 创建 1MB 大小的文件
        with open(file_path, 'wb') as file:
            file.seek(1 * 1024 * 1024 - 1)
            file.write(b'\0')
        # 上传文件到HDFS
        hdfs_path = f"/hdfs_tempfile/{file_name}"
        client.copy_from_local(file_path, hdfs_path, overwrite=True)
        # 删除本地文件
        os.remove(file_path)
        print(f"File {file_name} uploaded to HDFS successfully.")
    except Exception as e:
        print(f"Error: {e}")

# 每隔5秒钟创建并上传文件
try:
    while True:
        create_and_upload_file()
        time.sleep(5)
except KeyboardInterrupt:
    print("Script execution interrupted by user.")

4 脚本运行示例

python3 pyhdfs_into_hdfs.py

在这里插入图片描述
hdfs内文件示例:
在这里插入图片描述

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值