美文网首页
python如何原生访问hdfs文件系统

python如何原生访问hdfs文件系统

作者: 小木胆 | 来源:发表于2017-09-05 11:05 被阅读0次

    对于HIVE,生成orc或者parquet文件格式放在hdfs文件系统上,对外通过SQL语句,就能实现离线分析,数据仓库的功能。

    但是对于dask这样的python库,通过安装对应的hdfs库文件,也能做到跟HIVE一样的效果。无非就是不能支持SQL查询,取而代之采用dataframe的操作。

    python访问hdfs库需要安装hdfs3库,而这个库又需要安装libhdfs3。

    首先安装libhdfs3:

    sudo apt-get install libhdfs3 libhdfs3.dev
    

    结果报了一个错:

    libhdfs3 : 依赖: libprotobuf8 但无法安装它
    E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
    

    查看了一下,目前使用的libprotobuf版本都到9了。但是这个库依赖版本8。github上看了一下, 似乎没有最新的libprotobuf9的代码,只能强行安装一波老版本。

    直接去ubuntu下载deb包libprotobuf8_2.5.0-9ubuntu1_amd64.deb

    然后dpkg安装:

    sudo dpkg -i libprotobuf8_2.5.0-9ubuntu1_amd64.deb
    

    安装好后再通过安装libhdfs3。

    最后安装python对应的lib:

    sudo pip install hdfs3
    

    就可以按hdfs3的example来访问hdfs了。

    不过看了一下,貌似dask虽然在例程中采用了hdfs这个库,但是也可以采用snakebite这个原生python库。比较少折腾。。

    相关文章

      网友评论

          本文标题:python如何原生访问hdfs文件系统

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