自动化运维、大数据、Docker

Hadoop教程(⑤)HDFS文件系统PythonAPI接口

在HDFS中,要实现对文件的操作,一般可以在shell中发送指令完成,但这样太麻烦了。

当然我们可以调用HDFS的API,这里我们可以使用python的pyHdfs库来实现对HDFS的文件操作。

本文简单记录一下python 调用HDFS文件系统的API接口,更详细的HDFS REST API接口文档请查阅官网

1、安装pyHdfs库

# pip install pyHdfs

2、pyHdfs库简单调用方法

a、查看文件或目录属性

>>> from pyhdfs import HdfsClient
>>> client = HdfsClient(hosts='localhost:50070')
>>> print(client.list_status('/'))
[FileStatus(group=u'supergroup', permission=u'755', blockSize=0, accessTime=0, pathSuffix=u'hadoop', modificationTime=1517563124767, replication=0, length=0, childrenNum=5, owner=u'root', storagePolicy=0, type=u'DIRECTORY', fileId=16386)]
>>>

b、查看文件是否存在

In [3]: client = HdfsClient(hosts="localhost:50070")

In [4]: client.exists("/hsdoop")
Out[4]: False

In [5]: client.exists("/hadoop")
Out[5]: True

c、重命名文件或目录

In [7]: client.rename("/hadoop","/hadoop01")  ##将/hadoop 重命名为?hadoop01
Out[7]: True

In [8]: client.list_status("/")
Out[8]: [FileStatus(group=u'supergroup', permission=u'755', blockSize=0, accessTime=0, pathSuffix=u'hadoop01', modificationTime=1517563124767, replication=0, length=0, childrenNum=5, owner=u'root', storagePolicy=0, type=u'DIRECTORY', fileId=16386)]

d、浏览目录文件

In [9]: client.listdir("/")
Out[9]: [u'hadoop01']

In [10]: client.listdir("/hadoop01")
Out[10]: 
[u'LICENSE.txt',
 u'README.txt',
 u'hadoop-root-namenode-kbsonlong.out',
 u'touchzFile.txt',
 u'yarn-root-nodemanager-kbsonlong.out']

In [11]:

e、创建目录

In [12]: client.mkdirs("/xiaowoniu")
Out[12]: True

In [13]: client.listdir("/")
Out[13]: [u'hadoop01', u'xiaowoniu']

f、删除文件

In [14]: client.delete("/xiaowoniu")
Out[14]: True

In [15]: client.listdir("/")
Out[15]: [u'hadoop01']

In [16]:

更多调用方法请查阅《PyHDFS Doc

赞(0) 打赏
蜷缩的蜗牛 , 版权所有丨如未注明 , 均为原创丨 转载请注明蜷缩的蜗牛 » Hadoop教程(⑤)HDFS文件系统PythonAPI接口
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏