When running SQL statements through Hue against one of our Hadoop clusters running Hortonworks 2.2.4.2-2, we keep getting the following error:
Fetching results ran into the following error(s):
Couldn't find log associated with operation handle: OperationHandle [opType=EXECUTE_STATEMENT, getHandleIdentifier()=40fad20f-8413-4bd1-b6c8-9f0e858e3262]
The query log shows the following:
Bad status for request TFetchResultsReq(fetchType=1, operationHandle=TOperationHandle(hasResultSet=True, modifiedRowCount=None,
operationType=0, operationId=THandleIdentifier(secret='\xdf\xb6\xb0\xdeM\xdfH~\x88bu]w\x96Q\xae', guid='@\xfa\xd2\x0f\x84\x13K\xd1\xb6\xc8\x9f\x0e\x85\x8e2b')),
orientation=4, maxRows=-1):
TFetchResultsResp(status=TStatus(errorCode=0, errorMessage="Couldn't find log associated with operation handle:
OperationHandle [opType=EXECUTE_STATEMENT, getHandleIdentifier()=40fad20f-8413-4bd1-b6c8-9f0e858e3262]", sqlState=None,
infoMessages=["*org.apache.hive.service.cli.HiveSQLException:Couldn't find log associated with operation handle:
OperationHandle [opType=EXECUTE_STATEMENT, getHandleIdentifier()=40fad20f-8413-4bd1-b6c8-9f0e858e3262]:45:44",
'org.apache.hive.service.cli.operation.OperationManager:getOperationLogRowSet:OperationManager.java:257',
'org.apache.hive.service.cli.session.HiveSessionImpl:fetchResults:HiveSessionImpl.java:656',
'sun.reflect.NativeMethodAccessorImpl:invoke0:NativeMethodAccessorImpl.java:-2', 'sun.reflect.NativeMethodAccessorImpl:invoke:NativeMethodAccessorImpl.java:57',
'sun.reflect.DelegatingMethodAccessorImpl:invoke:DelegatingMethodAccessorImpl.java:43', 'java.lang.reflect.Method:invoke:Method.java:606',
'org.apache.hive.service.cli.session.HiveSessionProxy:invoke:HiveSessionProxy.java:79',
'org.apache.hive.service.cli.session.HiveSessionProxy:access$000:HiveSessionProxy.java:37',
'org.apache.hive.service.cli.session.HiveSessionProxy$1:run:HiveSessionProxy.java:64',
'java.security.AccessController:doPrivileged:AccessController.java:-2', 'javax.security.auth.Subject:doAs:Subject.java:415',
'org.apache.hadoop.security.UserGroupInformation:doAs:UserGroupInformation.java:1628',
'org.apache.hadoop.hive.shims.HadoopShimsSecure:doAs:HadoopShimsSecure.java:536',
'org.apache.hive.service.cli.session.HiveSessionProxy:invoke:HiveSessionProxy.java:60',
'com.sun.proxy.$Proxy25:fetchResults::-1', 'org.apache.hive.service.cli.CLIService:fetchResults:CLIService.java:450',
'org.apache.hive.service.cli.thrift.ThriftCLIService:FetchResults:ThriftCLIService.java:587',
'org.apache.hive.service.cli.thrift.TCLIService$Processor$FetchResults:getResult:TCLIService.java:1553',
'org.apache.hive.service.cli.thrift.TCLIService$Processor$FetchResults:getResult:TCLIService.java:1538',
'org.apache.thrift.ProcessFunction:process:ProcessFunction.java:39', 'org.apache.thrift.TBaseProcessor:process:TBaseProcessor.java:39',
'org.apache.thrift.server.TServlet:doPost:TServlet.java:83', 'org.apache.hive.service.cli.thrift.ThriftHttpServlet:doPost:ThriftHttpServlet.java:101',
'javax.servlet.http.HttpServlet:service:HttpServlet.java:727', 'javax.servlet.http.HttpServlet:service:HttpServlet.java:820',
'org.eclipse.jetty.servlet.ServletHolder:handle:ServletHolder.java:565', 'org.eclipse.jetty.servlet.ServletHandler:doHandle:ServletHandler.java:479',
'org.eclipse.jetty.server.session.SessionHandler:doHandle:SessionHandler.java:225', 'org.eclipse.jetty.server.handler.ContextHandler:doHandle:ContextHandler.java:1031',
'org.eclipse.jetty.servlet.ServletHandler:doScope:ServletHandler.java:406', 'org.eclipse.jetty.server.session.SessionHandler:doScope:SessionHandler.java:186',
'org.eclipse.jetty.server.handler.ContextHandler:doScope:ContextHandler.java:965', 'org.eclipse.jetty.server.handler.ScopedHandler:handle:ScopedHandler.java:117',
'org.eclipse.jetty.server.handler.HandlerWrapper:handle:HandlerWrapper.java:111', 'org.eclipse.jetty.server.Server:handle:Server.java:349',
'org.eclipse.jetty.server.AbstractHttpConnection:handleRequest:AbstractHttpConnection.java:449',
'org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler:content:AbstractHttpConnection.java:925',
'org.eclipse.jetty.http.HttpParser:parseNext:HttpParser.java:857', 'org.eclipse.jetty.http.HttpParser:parseAvailable:HttpParser.java:235',
'org.eclipse.jetty.server.AsyncHttpConnection:handle:AsyncHttpConnection.java:76', 'org.eclipse.jetty.io.nio.SelectChannelEndPoint:handle:SelectChannelEndPoint.java:609',
'org.eclipse.jetty.io.nio.SelectChannelEndPoint$1:run:SelectChannelEndPoint.java:45', 'java.util.concurrent.ThreadPoolExecutor:runWorker:ThreadPoolExecutor.java:1145',
'java.util.concurrent.ThreadPoolExecutor$Worker:run:ThreadPoolExecutor.java:615', 'java.lang.Thread:run:Thread.java:745'],
statusCode=3), results=None, hasMoreRows=None
It's interesting to notice that the same SELECT statements run fine when the tables are browsed using the Metastore Manager. I also want to point out that our cluster is using transport mode for Hive set to HTTP (instead of BINARY). That was one of the resons why we switched from Hue 3.7.1 to 3.8.1 as we found some info that stated support for HTTP
解决方法
Solved. According to this link, the temporary workaround is to specify use_get_log_api=true in the beeswax section of the hue.ini configuration file. The “Server does not support GetLog()” error will still show, but the SQL statement will be executed.
临时解决方法是指定 use_get_log_api =true在hive 中的部分hue.ini配置文件。“服务器不支持GetLog()”错误仍会显示,但SQL语句将被执行。
在hue.ini配置文件的beeswax部分中设置use_get_log_api = true。
更改hue.ini文件后运行命令以重新启动配置单元服务器,否则我将无法工作。
sudo service hive-server2 stop
sudo service hue stop
sudo service hive-server2 start
sudo service hue start