继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

慕的地10843
关注TA
已关注
手记 1081
粉丝 200
获赞 961

使用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打开


webp

Figure. 1

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


webp

Figure. 2

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



作者:cosine90
链接:https://www.jianshu.com/p/2ed7def34529


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP