首先需要安装pyhdfs,可用如下命令安装
pip install pyhdfs
首先我们如果先用hadoop原生命令来操作hdfs(分布式文件系统)上传文件。
命令如下
hadoop fs -put /home/hadoop1/software/data/two.txt /
其中-put上传,本地路径/home/hadoop1/software/data/two.txt,上传在HDFS的路径是 /
使用Python来操作hdfs写入文件的代码为
from pyhdfs import HdfsClient client = HdfsClient(hosts='hadoop1:50070',user_name='root') client.copy_from_local('/home/hadoop1/software/data/one.txt','/1')#本地文件绝对路径,HDFS目录必须不存在
其中hosts的参数为hdfs的url。user_name是本机的用户可以使用hadoop的用户。copy_from_local的第一个参数为本地路径。第二个参数为HDFS的路径,且这个路径不能已经存在。
Python读hdfs
from pyhdfs import HdfsClient client=HdfsClient(hosts='hadoop1:50070')#hdfs的主机用户名和端口 res=client.open('/two.txt')#hdfs文件路径,从根目录计 for r in res: line=str(r,encoding='utf8')#open后是二进制,str()转换为字符串 print(line)
Python创建新文件
from pyhdfs import HdfsClient client = HdfsClient(hosts='hadoop1:50070',user_name='root') str='666' client.create('/py.txt',str)#创建新文件,写入字符串