• 欢迎访问蜷缩的蜗牛博客 蜷缩的蜗牛
  • 微信搜索: 蜷缩的蜗牛 | 联系站长 kbsonlong@qq.com
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

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

Hadoop 蜷缩的蜗牛 8个月前 (02-05) 25次浏览 已收录 0个评论

在 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


蜷缩的蜗牛 , 版权所有丨如未注明 , 均为原创丨 转载请注明Hadoop 教程(⑤)HDFS 文件系统 PythonAPI 接口
喜欢 (0)
[]
分享 (0)

您必须 登录 才能发表评论!