使用python操作hdfs

文章目录

      • 简介
      • 相关链接
      • 安装
      • 介绍常用使用
      • 配置文件
      • 应用
        • 追加写入数据到hdfs中

简介

使用python对hdfs进行操作. 这里选择使用hdfs库。

相关链接

  • hdfs文档

安装

pip install hdfs

介绍常用使用

创建一个hdfs client

txz-data0:50070是hdfs namenode的ip地址. 使用hadoop用户去操作

client = InsecureClient("http://txz-data0:50070", user="hadoop")

删除文件

client.delete("/tmp/test.txt")

从hdfs中下载文件到本地

client.download("hdfs路径", "本地路径")

查看目录

client.list("/tmp")

文件或文件夹的状态

client.status("/tmp")

文件的上传

client.upload("hdfs路径", "本地路径")

文件的读操作

with client.read('/tmp/test.txt') as reader:
  content = reader.read()

文件的写操作

注意: 写多条数据时,不会自动换行,需要自己添加\n换行

两种形式的写入


from json import dump, dumps

client.write('/tmp/test.txt', encoding='utf-8') as writer:
  writer.write("hello")

client.write('/tmp/test.tx', data="world", encoding='utf-8')

配置文件

每次操作hdfs都需要在代码中输入hdfs地址及user用户。可以写入到配置文件~/.hdfscli.cfg中,然后从代码中读取配置获取client,这样方便许多.

配置文件


[global]
default.alias = dev

[dev.alias]
url = http://txz-data0:50070
user = hadoop

使用配置文件获取client

client = Config().get_client('dev')

应用

追加写入数据到hdfs中

client.wirte这个接口有个append参数,但是如果文件不存在,则会报错,所以需要先创建一个空的文件,然后再在程序后面不断的append到文件中.

# 创建文件. 如果没有输入data为空字符串,则不会创建文件
client.write("/tmp/test.txt", data="")
.....
# 不断的追加
client.write("/tmp/test.txt", data="hello", append=True)

你可能感兴趣的:(python,python库,hadoop)