尝试使用python上传文件到指定目录,代码如下:
# encoding=utf-8
from hdfs import InsecureClient
lian = InsecureClient(url="http://node-247:9870", user='hdfs') # 指定远程地址,和用户名
lian.upload(hdfs_path='/upload', local_path="write2hdfs.py") # 注意目录使用的是正斜杠/,而不是反斜杠\
# lian.makedirs('/upload') # 在根目录下创建一个文件夹,名字叫做niubi
print(lian.list('/'))
运行报错:
试了查询和创建目录都是可以的,就是无法上传文件(hosts配了namenode和ip的映射),百思不得其解,后经debug发现上传文件会去请求datanode,使用的是hostname,但是我本地只配置了namenode的映射,随即把datanode节点映射也配到本机hosts文件,上传成功。