hive1.2.1版本 hive --service hiveserve报错,求解决。。。

查看数: 23436 | 评论数: 8 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2015-8-13 18:24

正文摘要:

$hive --service hiveserver -p 10009 Starting Hive Thrift Server Exception in thread "main" java.lang.ClassNotFoundException: org.apache.hadoop.hive.service.HiveServer        ...

回复

军在桥 发表于 2015-8-16 18:55:35
军在桥 发表于 2015-8-16 18:14:13
军在桥 发表于 2015-8-16 19:29:35
bob007 发表于 2015-8-14 14:20:20
军在桥 发表于 2015-8-13 20:49
还需要cp什么,指点指点呗

环境变量添加了吗,别人只是给一个方向,更多需要根据自己的实际情况来解决
军在桥 发表于 2015-8-13 20:49:58
bob007 发表于 2015-8-13 19:44
显然第一步做的还不够

还需要cp什么,指点指点呗
bob007 发表于 2015-8-13 19:44:01
军在桥 发表于 2015-8-13 18:55
第一步 之前已经做完了,到第二步的时候总是报错,Exception in thread "main" java.lang.ClassNotFoundExc ...

显然第一步做的还不够
军在桥 发表于 2015-8-13 18:55:41
第一步 之前已经做完了,到第二步的时候总是报错,Exception in thread "main" java.lang.ClassNotFoundException: org.apache.hadoop.hive.service.HiveServer
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
muyannian 发表于 2015-8-13 18:49:37


楼主启动hive是用的Java,应该使用python

下面仅供参考
1 准备连接hive的python代码

在使用Python连接hive之前需要将hive中的文件拷贝到python的sys.path中
[mw_shl_code=bash,true]cp -r $HIVE_PATH/lib/py     /usr/local/lib/python2.7/site-packages[/mw_shl_code]
或者将hive中连接代码,设法加入到python的eclipse项目中
总之,目的只有一个,就是用hive自己提供的python客户端代码,来连接hive
关于具体如果将第三方的python代码加入环境变量,可以参照python中添加环境变量


2 启动hive 的thrift

如果hive机器没有thrift请先安装,
确保以下服务开启:
[mw_shl_code=bash,true]hive --service hiveserver  [/mw_shl_code]


3 写代码连接hive

hive的ip是机器的ip,端口默认为10000
-------------------------------------------------------------------
[mw_shl_code=python,true]import sys  
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:  
        print '%s' % (tx.message)  
  
if __name__ == '__main__':  
    hiveExe("show tables")  
--------------------------------[/mw_shl_code]

关闭

推荐上一条 /2 下一条