首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

python联接hive的demo

2013-01-04 
python连接hive的demo在部署了两个hive后,分别在namenode和一个datanode上,用nohup hive --service hivese

python连接hive的demo
      在部署了两个hive后,分别在namenode和一个datanode上,用nohup hive --service hiveserver &将hive server启动。      Hive server 让Hive提供Thrift服务的服务器形式运行,允许不同的语言编写客户端进行访问。使用Thrift、JDBC、ODBC连接器的客户需要运行hive服务器来和Hive进行通信。通过设置HIVE_PORT环境变量来指明服务器监听的端口(默认的是10000)

import sysfrom hive_service import ThriftHivefrom hive_service.ttypes import HiveServerExceptionfrom thrift import Thriftfrom thrift.transport import TSocketfrom thrift.transport import TTransportfrom thrift.protocol import TBinaryProtocoltry:    transport = TSocket.TSocket('192.168.30.201', 10000)    transport = TTransport.TBufferedTransport(transport)    protocol = TBinaryProtocol.TBinaryProtocol(transport)    client = ThriftHive.Client(protocol)    transport.open()    hql = '''CREATE TABLE people(a STRING, b INT, c DOUBLE) row format delimited fields terminated by ',' '''    print hql    client.execute(hql)    client.execute("LOAD DATA LOCAL INPATH '/home/diver/data.txt' INTO TABLE people")    #client.execute("SELECT * FROM people")    #while (1):    #  row = client.fetchOne()    #  if (row == None):    #    break    #  print row    client.execute("SELECT count(*) FROM people")    print client.fetchAll()    transport.close()except Thrift.TException, tx:    print '%s' % (tx.message)

这样有了数据仓库基本执行脚本的模板了,对于执行的环境变量可以再做封装部分,脚本只突出逻辑处理。

热点排行