从Linux服务器本地写文件到hdfs

使用python中的impala package中的executemany方法向hive table写入数据十分慢。

可以使用pyhdfs向 hdfs文件系统中写入文件,然后加载到table的分区实现。

环境:ubuntu 16.04, anaconda3,python3.6

安装: pip install pyhdfs   (先which pip,看一下是否对应anaconda3下的bin中的pip)

连接hdfs:

from pyhdfs import HdfsClient

client = HdfsClient(hosts='10.10.10.10:50070',timeout=60, max_tries=20,user_name=default)

端口号是50070,或者对应hdfs设置的webhdfs的端口号,需要用户名,无需密码

用client.mkdirs(path),然后用client.copy_from_local(localfile,path)把本地文件拷贝到hdfs中,如果中途报错,

确保:

1.hdfs服务器上的webhdfs打开


Figure. 1

2. 将hdfs各个节点ip和domain加入到本地系统的hosts中:


Figure. 2

最后别忘了,用alter table把分区加载到hdfs table中。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 怀柔的山里,坐在水边,喝啤酒,吃烤鱼,天微凉,把儿子送到北体为期一周的夏令营,开始享受久违的二人世界。 对怀柔山里...
    misang阅读 181评论 0 5
  • 上午逛知乎的时候看到一个回答,关于最浪漫的话。最末一句是:曾经沧海难为水,除却巫山不是云。 这句诗流传太广,我也曾...
    南边的鲸阅读 1,063评论 0 1
  • 时间都去那儿了?现在很多人抱怨,时间不够用。工作效率低下,注意力不集中。 那时间都花哪儿了呢?手机成了罪魁祸首。每...
    励恩阅读 355评论 0 0