`
heipark
  • 浏览: 2097506 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用python写hiveclient

阅读更多

第一步:

hive-0.7.0\lib\py 中所有py文件拷贝到你自己的Python工程中。

第二步:

把下面的代码拷贝一份新建一个py文件,修改IP,port ,输入要执行的SQL。

 

 

#encoding=utf-8
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('119.188.7.xx', 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.fetchOne()
        print "............"
    except Thrift.TException, tx:
        print '%s' % (tx.message)
    finally:
        transport.close()

if __name__ == '__main__':
    hiveExe("select count(*) from pokes")
 

 第三步:

hive --service hiveserver (启动hive server)
 

 

测试成功,原文自:http://bbs.hadoopor.com/thread-3164-1-1.html

官方资料:http://wiki.apache.org/hadoop/Hive/HiveClient

分享到:
评论
3 楼 dengwei729 2012-07-06  
heipark 写道
java.lang.NoSuchMethodError: org.apache.thrift.server.TThreadPoolServer
dengwei729 写道
兄弟,这法子我试过,取出的值始终为空,后来发现是没有做启动hive server这步。

就尝试启动hive server
[root@vm11120053 data0]# hive --service hiveserver
Starting Hive Thrift Server
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.thrift.server.TThreadPoolServer.<init>(Lorg/apache/thrift/server/TThreadPoolServer$Args;)V
        at org.apache.hadoop.hive.service.HiveServer.main(HiveServer.java:676)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
[root@vm11120053 data0]#

求解,为什么呢?


java.lang.NoSuchMethodError: org.apache.thrift.server.TThreadPoolServer
如果是cloudera版本hive,要安装hive server,apache版本不需要。


我这个是apache版本的,很奇怪,哥们能解决不?
2 楼 heipark 2012-06-26  
java.lang.NoSuchMethodError: org.apache.thrift.server.TThreadPoolServer
dengwei729 写道
兄弟,这法子我试过,取出的值始终为空,后来发现是没有做启动hive server这步。

就尝试启动hive server
[root@vm11120053 data0]# hive --service hiveserver
Starting Hive Thrift Server
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.thrift.server.TThreadPoolServer.<init>(Lorg/apache/thrift/server/TThreadPoolServer$Args;)V
        at org.apache.hadoop.hive.service.HiveServer.main(HiveServer.java:676)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
[root@vm11120053 data0]#

求解,为什么呢?


java.lang.NoSuchMethodError: org.apache.thrift.server.TThreadPoolServer
如果是cloudera版本hive,要安装hive server,apache版本不需要。
1 楼 dengwei729 2012-06-21  
兄弟,这法子我试过,取出的值始终为空,后来发现是没有做启动hive server这步。

就尝试启动hive server
[root@vm11120053 data0]# hive --service hiveserver
Starting Hive Thrift Server
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.thrift.server.TThreadPoolServer.<init>(Lorg/apache/thrift/server/TThreadPoolServer$Args;)V
        at org.apache.hadoop.hive.service.HiveServer.main(HiveServer.java:676)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
[root@vm11120053 data0]#

求解,为什么呢?

相关推荐

    python 操作hive pyhs2方式

    使用PyHs2的`HiveClient`类来建立连接,通过调用`query`方法执行SQL语句,然后通过`fetch`方法获取结果集。示例代码展示了如何初始化`HiveClient`,定义`query`方法获取数据,并在最后通过`close`方法关闭连接。如果...

    python3.6.5基于kerberos认证的hive和hdfs连接调用方式

    在本文中,我们将深入探讨如何使用Python 3.6.5版本通过Kerberos认证来连接Hive和HDFS。Kerberos是一种广泛使用的网络身份验证协议,它为不安全的网络环境提供了安全的身份验证机制。它依赖于共享密钥加密来确保通信...

    PyPI 官网下载 | hive_metastore_client-1.0.0-py3-none-any.whl

    Hive Metastore Client是为那些需要与Hive Metastore通信的Python应用程序设计的,比如数据分析工具、ETL(提取、转换、加载)流程或者自定义数据处理服务。通过这个客户端,开发人员可以创建、查询、更新和管理Hive...

    Python库 | presto-client-0.301.0.tar.gz

    资源全名:presto-client-0.301.0.tar.gz"进一步确认了这是一个Python库资源,文件名为`presto-client-0.301.0.tar.gz`,这通常意味着用户需要先下载文件,然后使用解压工具(如`tar`命令或Python的`tarfile`模块)...

    hs2client, C 和Hive的本机客户端,带有 python/Pandas 绑定.zip

    hs2client, C 和Hive的本机客户端,带有 python/Pandas 绑定 hs2client: Impala和Hive的C Thrift 客户端生成状态 这是一个新项目,用于在 C 中创建一个健壮。高性能的开源HiveServer2客户端库。 in Impala和使用...

    PyHive:Hive和Presto的Python接口。 :honeybee:

    PyHive是和的Python 和接口的集合。 用法 数据库API from pyhive import presto # or import hive or import trino cursor = presto . connect ( 'localhost' ). cursor () cursor . execute ( 'SELECT * FROM my_...

    python操作hbase

    - **Python 版本**:需要安装Python 2.6或以上版本,虽然这里提到了Python 2.6,但考虑到Python 2的支持已经结束,建议使用Python 3.x。 - **Anaconda 安装**:可以安装Anaconda以便更方便地管理Python环境及其相关...

    Python库 | aliyun-python-sdk-emr-3.2.5.tar.gz

    在实际项目中,使用**aliyun-python-sdk-emr-3.2.5**时,开发者需要先安装此库,通常通过pip工具进行安装。之后,在代码中导入对应的模块,调用相应的函数来执行操作。例如,以下代码展示了如何创建一个EMR集群: `...

    Hive用户指南 Hive user guide 中文版

    - **调用外部脚本**:Hive支持通过脚本扩展其功能,例如调用Python或Shell脚本。 **2.8 删除表** - 使用`DROP TABLE table_name [PURGE]`来删除表及其所有数据。 **2.9 其他操作** - **LIMIT**:`SELECT ... ...

    Python库 | ibis-1.4.0.tar.gz

    Python是一种广泛使用的高级编程语言,以其简洁、易读的语法和丰富的库生态系统而闻名。在数据科学、机器学习和数据分析领域,Python库扮演着至关重要的角色。其中之一就是`ibis`,一个用于大数据分析的开源库,专为...

    pyhs2-0.6.0.tar.gz

    PyHS2的使用并不复杂,开发者可以通过创建一个`Client`实例连接到Hiveserver2,然后调用相关方法执行HQL语句或者获取结果集。例如: ```python from pyhs2 import connect from pyhs2.connect import ConnectParams...

    openstack安装包(一)

    python-ceilometerclient-1.0.8-1.el6.noarch.rpm python-chardet-2.0.1-1.el6.rf.noarch.rpm python-cheetah-2.4.1-1.el6.x86_64.rpm python-cinderclient-1.0.7-2.el6.noarch.rpm python-cliff-1.4.4-1.el6.noarch...

    Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作

    本篇文章将详细介绍如何使用Python连接HDFS进行文件的上传、下载,以及如何利用Pandas将文本文件转换为CSV格式。 首先,为了在Python中与HDFS进行交互,我们需要安装`pyhdfs`模块。这个模块允许Python程序直接读写...

    Hive用户指南(Hive_user_guide)_中文版

    - **WUI (Web User Interface)**:通过Web浏览器访问Hive服务,便于非技术用户使用。 - **元数据存储**:通常采用关系型数据库(如MySQL或Derby)来存储Hive的元数据信息,这些信息包括表的定义、列属性、表的属性...

    python访问hdfs的操作

    以下是对如何使用 Python 访问 HDFS 的详细步骤和相关知识: 首先,确保你已经安装了 `hdfspython` 库。如果没有,可以通过 `pip` 来安装: ```bash pip install hdfspython ``` 一旦安装完成,你可以导入 `hdfs`...

    Hive用户指南(Hive_user_guide)_中文版.pdf

    Hive还提供了命令行选项和交互式shell命令,以及调用Python、Shell等语言的支持。 Hive支持的Map/Reduce操作包括: - JOIN - GROUPBY - DISTINCT 使用Hive时需要注意的点包括字符集、数据压缩、数据的count...

    leetcode算法题主函数如何写-myinterview:记录我的面试过程,技术栈:python、golang、MySQL、redis、大数

    leetcode算法题主函数如何写 myinterview 记录我的面试过程,技术栈:python、golang、MySQL、redis、大数据、数据仓库、Linux、计算机网络、数据中台。 目录 python面试题; golang面试题; 数据库MySQL和redis; ...

    hive操作指南

    ### Hive操作指南知识点详解 ...以上是对“Hive操作指南”的详细介绍,包括Hive的架构、基本操作、高级特性以及使用注意事项等内容。通过这些内容的学习,可以帮助开发者更好地理解和使用Hive进行数据分析和处理。

Global site tag (gtag.js) - Google Analytics