美文网首页大数据
从Linux服务器本地写文件到hdfs

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

作者: cosine90 | 来源:发表于2018-08-06 10:09 被阅读8次

    使用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中。

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/gxjuvftx.html