专栏首页Hadoop实操0473-如何使用Python3访问Kerberos环境的Hive和Impala

0473-如何使用Python3访问Kerberos环境的Hive和Impala

温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。

Fayson的github: https://github.com/fayson/cdhproject

提示:代码块部分可以左右滑动查看噢

1

文档编写目的

随着Hadoop平台的流行,越来越多的开发语言访问Hadoop平台的组件,比较常见的Java、Scala、Python、R等。在前面的多篇文章中Fayson介绍了Java和Scala访问Hadoop各个组件的方法。对于偏分析类的Python和R语言访问集群的Hive和Impala比较多。本篇文章Fayson主要介绍如何使用Python3访问Kerberos环境的Hive和Impala。

  • 测试环境

1.RedHat7.2

2.CM和CDH版本为5.15.0

3.Python3.6

2

Python环境准备

Python访问Hive和Impala需要安装Python的客户端,Cloudera提供的Impyla包提供了基于JDBC的方式访问Kerberos、LDAP、SSL环境的Hive和Impala。Impyla包支持2.6+或3.3+的Python版本,接下来在我们的环境安装impyla及其依赖包。

1.创建requirements.txt文件,内容如下

[root@cdh1 python_code]# vim requirements.txt
six
bit_array
thrift
thrift_sasl==0.2.1
impyla

2.在命令行执行如下命令安装python包

[root@cdh1 python_code]# /opt/cloudera/anaconda3/bin/pip3 install -r requirements.txt 

3

Python访问Hive示例

1.编写Python访问Hive示例代码,内容如下:

from impala.dbapi import connect
#获取Connect对象
conn = connect(host='cdh2.fayson.com',port=10000,database='default',auth_mechanism='GSSAPI',kerberos_service_name='hive')
print(conn)

cursor = conn.cursor()
cursor.execute('show databases')
print (cursor.description)  # prints the result set's schema
results = cursor.fetchall()
print(results)

2.在命令行进行kinit操作

3.使用python命令运行impyla_hive.py文件

[root@cdh1 python_code]# /opt/cloudera/anaconda3/bin/python impyla_hive.py 

4

Python访问Impala示例

1.编写Python访问Impala示例代码

from impala.dbapi import connect
conn = connect(host='cdh1.fayson.com',port=25004,database='default',auth_mechanism='GSSAPI',kerberos_service_name='impala')
print(conn)
cursor = conn.cursor()
cursor.execute('show databases')
print (cursor.description)  # prints the result set's schema
results = cursor.fetchall()
print(results)

2.在命令行进行kinit操作

3.在命令行进行kinit操作

[root@cdh1 python_code]# /opt/cloudera/anaconda3/bin/python impyla_impala.py

5

总结

1.Python代码访问Hive和Impala需要安装客户端工具Impyla

2.Impyla支持Kerberos、LDAP和SSL各种安全环境的Hive和Impala

3.在示例中Fayson的Impala端口号与默认不一致,配置了Impala的HAProxy原因。

提示:代码块部分可以左右滑动查看噢

为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。

推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

本文分享自微信公众号 - Hadoop实操(gh_c4c535955d0f)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Hive在DB-Engine的排名已经超过Teradata

    也不知怎么滴,每当有一个新的数据库出来的时候,都会把Hive大哥拉出来遛一圈,踩几脚,然后再总结一下:我比你快XX倍。早些年听到这些,心中还会升起一股无名火...

    Fayson
  • 0459-如何使用SQuirreL通过JDBC连接CDH的Hive(方式一)

    SQuirreL SQL Client是一个使用Java写的访问各种数据库客户端工具,使用JDBC统一了数据库的访问接口,通过SQuirreL SQL Clie...

    Fayson
  • 0650-6.2.0-通过UDF实现Hive&Impala的中文拼音排序

    由上面两张图可以看出,在Hive和Impala中排序都失败了,没有按照期望中的中文对应的拼音进行排序。

    Fayson
  • 面向视频编解码后处理的深度学习方法进展

    接前一帖(适用于视频编码帧间预测分数像素插值的卷积神经网络方法简介),今天继续介绍一类基于人工智能的视频处理技术——深度学习在视频后处理中的应用。 1 背景介绍...

    用户1324186
  • SparkSql官方文档中文翻译(java版本)

    Spark SQL是Spark的一个组件,用于结构化数据的计算。Spark SQL提供了一个称为DataFrames的编程抽象,DataFrames可以充当分布...

    用户3003813
  • Nodejs学习笔记(一)——初识Nodejs

    前言:目前工作的分内之事相对较为单一,希望可以通过工作之余的时间给自己充充电,只是没有一个学伴或大神带,只能说是摸索着前进。起初准备好好研究下Spring这个框...

    JackieZheng
  • python开发_count()

    功能:读取一个文件'c:\\test.txt',统计出该文件中出现字符'a'的次数

    Hongten
  • 小米智能音箱肩负重要使命,人们要如何面对时刻“监听”你谈话的机器

    自从亚马逊在2014年推出智能音箱Echo之后,苹果、谷歌、京东、阿里这些巨头都纷纷做起了智能音箱,当全世界最有钱最具前瞻眼光的公司都在做同一件事时,此事必有蹊...

    数据猿
  • 通用的进程监控重拉起bash脚本process_monitor.sh

    一见
  • 英特尔发布三款新软件工具,希望普及FPGA开发

    陈桦 编译自 HPCWire 量子位 出品 | 公众号 QbitAI ? FPGA编程很难,需要用到专业编程语言,例如Verilog和VHDL。 降低编程难度是...

    量子位

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动