Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 错误可能是';t使用pyhive连接到配置单元数据库_Python_Hive_Cursor_Pyhive - Fatal编程技术网

Python 错误可能是';t使用pyhive连接到配置单元数据库

Python 错误可能是';t使用pyhive连接到配置单元数据库,python,hive,cursor,pyhive,Python,Hive,Cursor,Pyhive,这是用于连接我们的配置单元数据库的代码,它在一周前运行良好,但现在似乎连打开会话和获取游标来执行查询都失败了。当我显式添加cursor.close()方法时,这个问题暂时得到了解决,但现在又回来了。我无法使用python访问配置单元数据库 我尝试过使用pyhs2和pyhive,但这两个库都无法连接到hive数据库。到目前为止,集群上没有任何变化。这可能是什么原因呢 我知道Hive不是关系数据库,所以游标的概念没有意义,但是Hive数据库有没有办法记住使用pyhive库创建的游标??如果是,如何删

这是用于连接我们的配置单元数据库的代码,它在一周前运行良好,但现在似乎连打开会话和获取游标来执行查询都失败了。当我显式添加cursor.close()方法时,这个问题暂时得到了解决,但现在又回来了。我无法使用python访问配置单元数据库

我尝试过使用pyhs2和pyhive,但这两个库都无法连接到hive数据库。到目前为止,集群上没有任何变化。这可能是什么原因呢

我知道Hive不是关系数据库,所以游标的概念没有意义,但是Hive数据库有没有办法记住使用pyhive库创建的游标??如果是,如何删除当前未使用的游标

下面是它在执行时引发的代码和异常

from pyhive import hive
import contextlib

class Hive():
    def __init__(self,host="[hostnamehere]",db="default",port="10000",auth="KERBEROS",kerberos_service_name="hive"):
        self.host = host
        self.db = db
        self.port = port
        self.auth = auth
        self.kerberos_service_name = kerberos_service_name

    def connect(self):
        return(hive.connect(host=self.host, port=self.port, database=self.db, auth=self.auth, kerberos_service_name=self.kerberos_service_name))

    def query_one(self,sql):
        with contextlib.closing(self.connect()) as connection:
            with contextlib.closing(connection.cursor()) as cursor:
                cursor.execute(sql)
                result = cursor.fetch_one()
                cursor.close()
        return(result)


if __name__ == "__main__":
    connector = Hive()
    print("running query")
    print(connector.query_one("SELECT * FROM [tablenamehere]"))

引发错误(响应) pyhive.exc.OperationalError:TOpenSessionResp(状态=TStatus(状态代码=3,信息消息=['*org.apache.hive.service.cli.HiveSQLException:无法打开新会话:java.lang.RuntimeException:java.lang.RuntimeException:无法实例化org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient:13:12','org.apache.hive.service.cli.session.SessionManager:openSession:session:SessionManager.java:289','org.apache.hive.service.CLIService:openSession:CLIService.java:199',org.apache.hive.service.cli.thrift.ThriftCLIService:getSessionHandle:ThriftCLIService.java:427',org.apache.hive.service.cli.thrift.ThriftCLIService:openSession:ThriftCLIService.java:319',org.apache.hive.service.clift.TCLIService$Processor$openSession:getResult:tclvice.java:1257',.org.apache.hive、 service.cli.thrift.TCLIService$Processor$OpenSession:getResult:TCLIService.java:1242',org.apache.thrift.ProcessFunction:process:ProcessFunction.java:39',org.apache.thrift.TBaseProcessor:process:TBaseProcessor.java:39',org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge$Server$tugiassummingprocessor:process:HadoopThriftAuthBridge.java:562','org.apache.thrift.server.TThreadPoolServer$Worker进程:run:TThreadPoolServer.java:286','java.util.concurrent.ThreadPoolExecutor:runWorker:ThreadPoolExecutor.java:1149','java.util.concurrent.ThreadPoolExecutor$Worker:run:ThreadPoolExecutor.java:624','java.lang.Thread:run:Thread.java.java:748','*java.lang.RuntimeException:java.langon:无法实例化org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient:15:2','org.apache.hadoop.hive.ql.session.SessionState:start:SessionState.java:547','org.apache.hive.service.cli.session.HiveSessionImpl:open:HiveSessionImpl.java:144','org.apache.hive.service.cli.session.SessionManager:OpenSessionManager:SessionManager:OpenSessionManager:SessionManager.java:281','*java.lang.RuntimeException:无法实例化org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient:21:6','org.apache.hadoop.hive.metastore.MetaStoreUtils:newInstance:MetaStoreUtils.java:1566','org.apache.hadoop.hive.metastore.RetryingMetaStoreClient::RetryingMetaStoreClient.java:92','org.apache.hadoop.hive.metastore.RetryMetasto.RetryMetastoreClient:getProxy:RetryingMetaStoreClient.java:138',org.apache.hadoop.hive.metastore.RetryingMetaStoreClient:getProxy:RetryingMetaStoreClient.java:110','org.apache.hadoop.hive.ql.metadata.hive:CreateMatastoreClient:hive.java:3510','org.apache.hadoop.hive.ql.metadata.hive:getMSC:hive.java:3542','org.apache.hadoop.hive.ql.session.session.state:start:SessionState.java:528','*java.lang.reflect.InvocationTargetException:null:25:4','sun.reflect.NativeConstructorAccessorMPL:newInstance0:NativeConstructorAccessorMPL.java:-2','sun.reflect.NativeConstructorAccessorMPL:newInstance:NativeConstructorAccessorAccessorMPL:62','sun.reflect.DelegatingConstructorAccessorAccessorImpl:newInstance:DelegatingConstructorAccessorImpl.java:45','java.lang.reflect.Constructor:newInstance:Constructor.java:423','org.apache.hadoop.hive.metastore.MetaStoreUtils:newInstance:MetaStoreUtils.java:1564','*org.apache.hadoop.hive.metastore.api.MetaException:超出GC开销限制:30:4','org.apache.hadoop.hive.metastore.RetryingHMSHandler::RetryingHMSHandler.java:82',org.apache.hadoop.hive.metastore.RetryingHMSHandler:getProxy:RetryingHMSHandler.java:91',org.apache.hadoop.hive.metastore.HiveMetaStore:newRetryingHMSHandler:HiveMetaStore.java:6463',org.apache.hadoop.hive.metastore.HiveMetaStoreClient::HiveMetaStoreClient.java:206',org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient::SessiononHiveMetaStoreClient.java:76','*java.lang.OutOfMemoryError:超出GC开销限制:0:-1'],sqlState=None,errorCode=0,errorMessage='未能打开新会话:java.lang.RuntimeException:java.lang.RuntimeException:无法实例化org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient'),serverProtocolVersion=7,sessionHandle=None,configuration=None)