基于pyhdfs接口对hadoop进行文件操作

本文介绍了如何使用pyhdfs模块在Python 2.7环境下对Hadoop的HDFS进行文件操作。在实际开发中,作者发现如果没有正确判断文件上传HDFS后的状态就删除本地文件,会导致错误。因此,作者修改了pyhdfs的create函数以返回执行结果,通过检查此结果来确保文件上传成功后再进行后续操作,从而避免了错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近开发了几个对集群做文件操作的模块,都是基于python(2.7)。下面记录一下对hdfs做文件操作的模块,贴出部分代码。


1. pyhdfs(PyHDFS-0.1.2.tar.gz), 依赖包

requests

simplejson


2. 代码及解说

因为之前没有判断把文件写到hdfs后的执行结构,下一步就直接将文件移走了,会造成在写hdfs时,报找不到本地文件的错;

pyhdfs实际上是用requests的方式进行的http命令执行,本来想直接找找看pyhdfs本身有没有self.reponse可以用来判断执行结果,无奈没找到可以用的,就自己改了pyhdfs的create函数,让它返回执行结果,再通过这个执行结果去判断put文件是否成功,成功后再执行下一步,之后就没有报这个错误了。


import os

from base.log import logger
from base import application as app
from base.utility import scan_files, trans_bool

import pyhdfs

################################################################################

@app.application('hdfswriter', '/usr/etl-tools')
@logger('hdfswriter', app.Application)
class HdfsWriter(app.Application):

    def __init__(self, config_cls, argv):
        super(HdfsWriter, self).__init__(config_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值