热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python存数据到impala_如何使用PythonImpyla客户端连接Hive和Impala

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。1.文档编写目的继上一章讲述如何在CDH集群安装Anaconda&搭建Python私有

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

1.文档编写目的

继上一章讲述如何在CDH集群安装Anaconda&搭建Python私有源后,本章节主要讲述如何使用Pyton Impyla客户端连接CDH集群的HiveServer2和Impala Daemon,并进行SQL操作。

内容概述

1.依赖包安装

2.代码编写

3.代码测试

测试环境

1.CM和CDH版本为5.11.2

2.RedHat7.2

前置条件

1.CDH集群环境正常运行

2.Anaconda已安装并配置环境变量

3.pip工具能够正常安装Python包

4.Python版本2.6+ or 3.3+

5.非安全集群环境

2.Impyla依赖包安装

Impyla所依赖的Python包

six

bit_array

thrift (on Python 2.x) orthriftpy (on Python 3.x)

thrift_sasl

sasl

1.首先安装Impyla依赖的Python包

[root@ip-172-31-22-86~]# pip install bit_array[root@ip-172-31-22-86~]# pip install thrift==0.9.3[root@ip-172-31-22-86~]# pip install six

[root@ip-172-31-22-86~]# pip install thrift_sasl

[root@ip-172-31-22-86~]# pip install sasl

08a0619d-3b87-4b9e-aefc-49345f44945e.png

f512bb22-c68f-4545-a674-b129051a3f59.png

62e2dd79-b663-4cb8-abb2-ea9f2db9506a.png

84906597-4715-4314-980d-a00027b0b80c.png

注意:thrift的版本必须使用0.9.3,默认安装的为0.10.0版本,需要卸载后重新安装0.9.3版本,卸载命令pip uninstall thrift

2.安装Impyla包

impyla版本,默认安装的是0.14.0,需要将卸载后安装0.13.8版本

[root@ip-172-31-22-86ec2-user]# pip install impyla==0.13.8CollectingimpylaDownloadingimpyla-0.14.0.tar.gz (151kB)100%|████████████████████████████████|153kB1.0MB/sRequirementalready satisfied: sixin/opt/cloudera/parcels/Anaconda-4.2.0/lib/python2.7/site-packages (fromimpyla)

Requirementalreadysatisfied: bitarrayin/opt/cloudera/parcels/Anaconda-4.2.0/lib/python2.7/site-packages (fromimpyla)

Requirementalreadysatisfied: thriftin/opt/cloudera/parcels/Anaconda-4.2.0/lib/python2.7/site-packages (fromimpyla)

Buildingwheelsforcollected packages: impylaRunningsetup.py bdist_wheelforimpyla ...doneStoredindirectory: /root/.cache/pip/wheels/96/fa/d8/40e676f3cead7ec45f20ac43eb373edc471348ac5cb485d6f5Successfullybuilt impylaInstallingcollected packages: impylaSuccessfullyinstalled impyla-0.14.0

bbc0f5b3-a663-4269-a551-f4be211d49f1.png

3.编写Python代码

Python连接Hive(HiveTest.py)

fromimpala.dbapiimportconnect

conn=connect(host='ip-172-31-21-45.ap-southeast-1.compute.internal',port=10000,database='default',auth_mechan

ism='PLAIN')print(conn)cursor=conn.cursor()cursor.execute('show databases')printcursor.description# prints the result set's schemaresults=cursor.fetchall()print(results)cursor.execute('SELECT*FROM testlimit10')printcursor.description# prints the result set's schemaresults=cursor.fetchall()print(results)

Python连接Impala(ImpalaTest.py)

fromimpala.dbapiimportconnect

conn=connect(host='ip-172-31-26-80.ap-southeast-1.compute.internal',port=21050)print(conn)cursor=conn.cursor()cursor.execute('show databases')printcursor.description# prints the result set's schemaresults=cursor.fetchall()print(results)cursor.execute('SELECT*FROM testlimit10')printcursor.description# prints the result set's schemaresults=cursor.fetchall()print(results)

4.测试代码

在shell命令行执行Python代码测试

1.测试连接Hive

[root@ip-172-31-22-86ec2-user]# python HiveTest.py[('database_name', 'STRING', None, None, None, None, None)]

[('default',)]

[('test.s1', 'STRING',None, None, None, None, None),('test.s2', 'STRING', None, None, None, None, None)]

[('name1', 'age1'),('name2', 'age2'),('name3', 'age3'),('name4', 'age4'),('name5', 'age5'),('name6', 'age6'),('name7', 'age7'),('name8', 'age8'),('name9', 'age9'),('name10', 'age10')][root@ip-172-31-22-86ec2-user]#

a3caa0de-0707-4816-9e37-2ca7e6a106d1.png

2.测试连接Impala

[root@ip-172-31-22-86ec2-user]# python ImpalaTest.py[('name', 'STRING', None, None, None, None, None),('comment', 'STRING', None, None, None, None, None)]

[('_impala_builtins', 'Systemdatabase for Impala builtin functions'),('default', 'Default Hive database')]

[('s1', 'STRING', None, None, None,None, None),('s2', 'STRING', None, None, None,None, None)]

[('name1', 'age1'),('name2', 'age2'),('name3', 'age3'),('name4', 'age4'),('name5', 'age5'),('name6', 'age6'),('name7', 'age7'),('name8', 'age8'),('name9', 'age9'),('name10', 'age10')][root@ip-172-31-22-86ec2-user]#

de6c64f0-5ae7-45d9-b601-0dbdc5344df7.png

5.常见问题

1.错误一

building'sasl.saslwrapper'extensioncreatingbuild/temp.linux-x86_64-2.7creatingbuild/temp.linux-x86_64-2.7/saslgcc-pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Isasl -I/opt/cloudera/parcels/Anaconda/include/python2.7 -c sasl/saslwrapper.cpp -o build/temp.linux-x86_64-2.7/sasl/saslwrapper.ounableto execute'gcc': No such file or directoryerror:command'gcc'failed with exit status1----------------------------------------

Command"/opt/cloudera/parcels/Anaconda/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-kD6tvP/sasl/setup.py';f=getattr(tokenize,'open',open)(__file__);code=f.read().replace('\r\n','\n');f.close();exec(compile(code,__file__,'exec'))" install --record /tmp/pip-WJFNeG-record/install-record.txt --single-version-externally-managed --compile"failed with error code1in/tmp/pip-build-kD6tvP/sasl/

解决方法:

[root@ip-172-31-22-86ec2-user]# yum -y install gcc[root@ip-172-31-22-86ec2-user]# yum install gcc-c++

2.错误二

gcc-pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Isasl -I/opt/cloudera/parcels/Anaconda/include/python2.7 -c sasl/saslwrapper.cpp -o build/temp.linux-x86_64-2.7/sasl/saslwrapper.occ1plus:warning: command line option ‘-Wstrict-prototypes’isvalidforC/ObjC but notforC++ [enabled by default]Infile included from sasl/saslwrapper.cpp:254:0:sasl/saslwrapper.h:22:23:fatal error: sasl/sasl.h: No such file or directory#include ^

compilationterminated.error:command'gcc'failed with exit status1

解决方法:

[root@ip-172-31-22-86ec2-user]# yum -y install python-devel.x86_64 cyrus-sasl-devel.x86_64

醉酒鞭名马,少年多浮夸! 岭南浣溪沙,呕吐酒肆下!挚友不肯放,数据玩的花!

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

您可能还想看

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

ecd499e3-f5ee-4daf-9bb7-b3db0f4305f5.gif

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操



推荐阅读
  • 本文总结了在开发中使用gulp时的一些技巧,包括如何使用gulp.dest自动创建目录、如何使用gulp.src复制具名路径的文件以及保留文件夹路径的方法等。同时介绍了使用base选项和通配符来保留文件夹路径的技巧,并提到了解决带文件夹的复制问题的方法,即使用gulp-flatten插件。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • EzPP 0.2发布,新增YAML布局渲染功能
    EzPP发布了0.2.1版本,新增了YAML布局渲染功能,可以将YAML文件渲染为图片,并且可以复用YAML作为模版,通过传递不同参数生成不同的图片。这个功能可以用于绘制Logo、封面或其他图片,让用户不需要安装或卸载Photoshop。文章还提供了一个入门例子,介绍了使用ezpp的基本渲染方法,以及如何使用canvas、text类元素、自定义字体等。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • Python使用Pillow包生成验证码图片的方法
    本文介绍了使用Python中的Pillow包生成验证码图片的方法。通过随机生成数字和符号,并添加干扰象素,生成一幅验证码图片。需要配置好Python环境,并安装Pillow库。代码实现包括导入Pillow包和随机模块,定义随机生成字母、数字和字体颜色的函数。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • Postgresql备份和恢复的方法及命令行操作步骤
    本文介绍了使用Postgresql进行备份和恢复的方法及命令行操作步骤。通过使用pg_dump命令进行备份,pg_restore命令进行恢复,并设置-h localhost选项,可以完成数据的备份和恢复操作。此外,本文还提供了参考链接以获取更多详细信息。 ... [详细]
  • 本文介绍了在Ubuntu下制作deb安装包及离线安装包的方法,通过备份/var/cache/apt/archives文件夹中的安装包,并建立包列表及依赖信息文件,添加本地源,更新源列表,可以在没有网络的情况下更新系统。同时提供了命令示例和资源下载链接。 ... [详细]
  • 本文详细介绍了使用 SQL Load 和 Excel 的 Concatenate 功能将数据导入 ORACLE 数据库的方法和步骤,同时介绍了使用 PL/SQL tools 将数据导入临时表的方法。此外,还提供了一个转链接,可参考更多相关内容。摘要共计XXX字。 ... [详细]
  • Python操作MySQL(pymysql模块)详解及示例代码
    本文介绍了使用Python操作MySQL数据库的方法,详细讲解了pymysql模块的安装和连接MySQL数据库的步骤,并提供了示例代码。内容涵盖了创建表、插入数据、查询数据等操作,帮助读者快速掌握Python操作MySQL的技巧。 ... [详细]
  • 本文介绍了在Windows系统下安装Python、setuptools、pip和virtualenv的步骤,以及安装过程中需要注意的事项。详细介绍了Python2.7.4和Python3.3.2的安装路径,以及如何使用easy_install安装setuptools。同时提醒用户在安装完setuptools后,需要继续安装pip,并注意不要将Python的目录添加到系统的环境变量中。最后,还介绍了通过下载ez_setup.py来安装setuptools的方法。 ... [详细]
  • 本文总结了使用不同方式生成 Dataframe 的方法,包括通过CSV文件、Excel文件、python dictionary、List of tuples和List of dictionary。同时介绍了一些注意事项,如使用绝对路径引入文件和安装xlrd包来读取Excel文件。 ... [详细]
author-avatar
紫陌
这个世界上真的有天使的存在吗
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有