python利用thrift连接hive

python利用thrift连接hive,第1张

概述Thrift是一个跨语言服务部署框架,最初由Facebook于2007年开发,后于2008年进入Apache孵化器(Apache Incubator)。类似于SOAP,COM 和CORBA,Thrift通过定义一个中间定义语言和Thrift代码生成工具,生成指定语言的代码。 目前,Thrift支持C++,Java, Python, PHP, Ruby, Erlang, Perl, Haskell, Thrift是一个跨语言服务部署框架,最初由Facebook于2007年开发,后于2008年进入Apache孵化器(Apache Incubator)。类似于SOAP,COM 和CORBA,Thrift通过定义一个中间定义语言和Thrift代码生成工具,生成指定语言的代码。

目前,Thrift支持C++,Java,Python,PHP,Ruby,Erlang,Perl,Haskell,C#,Cocoa,Smalltalk和OCaml的代码生成

1.   安装thrift依赖库

yum install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel 

下载thrift:http://mirror.bjtu.edu.cn/apache//thrift/0.8.0/thrift-0.8.0.tar.gz

安装thrift

tar -zxvf thrift-0.8.0.tar.gz

cd  thrift-0.8.0

./configure --with-boost=/usr/local

make && make install

我的hive使用的是cloudera cdn3u3版本,python版本为2.7

在使用Python连接hive之前需要将hive中的文件拷贝到python的sys.path中

cp -r $HIVE_PATH/lib/py /usr/local/lib/python2.7/site-packages

#!/usr/bin/env pythonimport sysfrom hive_service import ThriftHivefrom hive_service.ttypes import HiveServerExceptionfrom thrift import Thriftfrom thrift.transport import TSocketfrom thrift.transport import TTransportfrom thrift.protocol import TBinaryProtocoldef hiveExe(sql):    try:        transport = TSocket.TSocket('127.0.0.1',10000)         transport = TTransport.TBufferedTransport(transport)        protocol = TBinaryProtocol.TBinaryProtocol(transport)        clIEnt = ThriftHive.ClIEnt(protocol)        transport.open()        clIEnt.execute(sql)        print "The return value is : "         print clIEnt.fetchAll()        print "............"        transport.close()    except Thrift.TException,tx:        print '%s' % (tx.message)if __name__ == '__main__':    hiveExe("select * from t_afan_test")
总结

以上是内存溢出为你收集整理的python利用thrift连接hive全部内容,希望文章能够帮你解决python利用thrift连接hive所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1059861.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-25
下一篇2022-05-25

发表评论

登录后才能评论

评论列表(0条)

    保存