<!-- lang:shell -->
Jps jdk 1.5 时引入的一个工具, 可以用来查看当前主机所有 java 进程的ID 的一个命令行工具。
[root@PROC_141 htt]# jps
966 CassandraDaemon
22070 NameNode
2471 Jps
22218 DataNode
22426 SecondaryNameNode
10763 Elasticsearch
15019 ResourceManager
22779 NodeManager
2302 RunJar # 为 hive 的 进程 ID,
<!-- lang: shell -->
hive --service hiveserver # 此时 hive 监听 10000 端口
<!-- lang: python -->
#!/usr/bin/env python
import sys
import traceback
sys.path.append('/opt/old/htt/hadoop/apache-hive-0.13.1-bin/lib/py')
from hive_service import ThriftHive
from hive_service.ttypes import HiveServerException
from thrift import Thrift
from thrift.transport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol
def 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:
traceback.print_exc()
print 'exception %s' % (tx.message)
if __name__ == '__main__':
hiveExe("select * from test")
返回值如下, !目前还没有感觉比 普通的数据库快多少啊。。
<!-- lang: shell -->
[root@PROC_141 htt]# python2.7 hive_python.py
The return value is :
['NULL\tNULL', 'NULL\tNULL', 'NULL\tNULL']
............
Python 连接 hive 查询数据
点赞
收藏