python 操作hdfs

1.安装依赖包

pip install -i https://mirrors.aliyun.com/pypi/simple/ hdfs

2.例子

from hdfs import InsecureClient
hdfs_client = InsecureClient('http://lys20191020:50070', user='hdfs')

# 查看状态
hdfs_client.status('.')


#创建目录
hdfs_client.makedirs('/test01/pyhdfs',permission=777)

# 删除目录
#其他参数:delete(hdfs_path, recursive=False)
#recursive:删除文件和其子目录,设置为False如果不存在,则会抛出异常,默认为False
hdfs_client.delete('/test01/pyhdfs', recursive=False)


#上传文件
#第一个参数,hdfs路径
#第二个参数,本地路径
#第三个参数,是否覆盖hdfs已有的文件
# windows 下面操作会出现下面的错误提示,解决的办法是修改hosts文件,配置上hadoop集群的ip映射即可解决
# urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x000001B2DBDAEDD8>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

hdfs_client.upload('/test01/pyhdfs', '1.txt',False)



# 从hdfs获取文件到本地
# client.download(hdfs_path, local_path, overwrite=False)
hdfs_client.download('/test01/pyhdfs', 'E://test001', overwrite=True)


#  追加数据到hdfs文件
# client.write(hdfs_path, data, overwrite=False, append=True, encoding='utf-8')
hdfs_client.write('/test01/pyhdfs/1.txt', 'this is overwite \n', overwrite=True)
hdfs_client.write('/test01/pyhdfs/1.txt', 'this is append ',  overwrite=False, append=True, encoding='utf-8')

# 移动或者修改文件
# client.rename(hdfs_src_path, hdfs_dst_path)
hdfs_client.rename('/test01/pyhdfs/1.txt', '/test01/pyhdfs/2.txt')

猜你喜欢

转载自blog.csdn.net/liuyunshengsir/article/details/107063847