温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
Fayson的github:
https://github.com/fayson/cdhproject
提示:代码块部分可以左右滑动查看噢
1
文档编写目的
随着Hadoop平台的普及和Python语言的流行,使用Python语言访问操作HDFS的需要,Python也提供了多个访问HDFS的依赖包(如:pyhdfs、HdfsCLI、pywhdfs),这些依赖包都是通过API的方式与HDFS进行交互。本篇文章Fayson主要介绍使用pywhdfs访问Kerberos环境下的HDFS。
内容概述:
1.环境准备
2.Python2示例代码
3.访问验证
4.总结
测试环境:
1.操作系统:Redhat7.4
2.CM和CDH版本为5.15.0
3.Python 2.7.15
2
环境准备
Python访问HDFS需要安装相应的依赖包,这里Fayson选择了pywhdfs依赖包,该依赖包支持如下特性:https://bitbucket.org/suty/pyhdfs
该库用于与WebHDFS和HTTPS Rest API交互
支持安全(Kerberos,Token)和不安全的集群访问
支持HA集群并兼容节点故障转移
支持json格式配置集群
支持在python shell上进行交互式访问HDFS
支持HDFS联邦
支持并发上传和下载
1.在命令行执行如下命令安装pywhdfs依赖
2.验证pywhdfs依赖包是否安装成功
3
Pywhdfs命令行使用
pywhdfs支持在命令行通过WebHDFS进行交互式的访问及操作HDFS,pywhdfs命令行访问HDFS通过json文件来定义集群的配置信息,默认的配置文件在~/ .webhdfs.cfg目录下,也可以通过WEBHDFS_CONFIG环境变量来覆盖默认的配置。
1.在当前目录下创建一个webhdfs.cfg配置,内容如下
注意:name和urls两个属性,name属性在命令行运行时需要指定,否则会报错。
2.在命令行运行如下命令进入python shell交互式界面
3.在交互式命令行运行CLIENT.list("/")浏览HDFS跟路径下所有目录
更多操作方式,大家可以参考pywhdfs官网。
4
Pywhdfs API使用
1.编写python示例代码访问Kerberos环境下的HDFS,示例代码如下
2.在命令行执行如下命令运行python_hdfs.py文件
5
总结
1.pywhdfs依赖包支持的Python环境有2.6、2.7、3.3、3.4
2.访问Kerberos环境下的HDFS,需要安装gssapi依赖包,使用pip方式安装即可。
3.pywhdfs支持python shell交互方式访问HDFS,同时也支持使用API方式访问HDFS。
提示:代码块部分可以左右滑动查看噢
为天地立心,为生民立命,为往圣继绝学,为万世开太平。
温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
领取专属 10元无门槛券
私享最新 技术干货