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')