Pārlūkot izejas kodu

HUE-8330 [impapal] Fix _get_impala_result_size when using multi cluster

Romain Rigaux 7 gadi atpakaļ
vecāks
revīzija
d89f5fd0ca

+ 5 - 1
apps/impala/src/impala/dbms.py

@@ -33,7 +33,7 @@ LOG = logging.getLogger(__name__)
 
 def get_query_server_config(cluster_config=None):
   query_server = {
-      'server_name': 'impala' + ('-' + cluster_config.get('name') if cluster_config else ''),
+      'server_name': _get_server_name(cluster_config),
       'server_host': conf.SERVER_HOST.get() if not cluster_config else cluster_config.get('server_host'),
       'server_port': conf.SERVER_PORT.get() if not cluster_config else 21050,
       'principal': conf.IMPALA_PRINCIPAL.get(),
@@ -52,6 +52,10 @@ def get_query_server_config(cluster_config=None):
   return query_server
 
 
+def _get_server_name(cluster_config):
+  return 'impala' + ('-' + cluster_config.get('name') if cluster_config else '')
+
+
 class ImpalaDbms(HiveServer2Dbms):
 
   @classmethod

+ 4 - 1
desktop/libs/notebook/src/notebook/connectors/hiveserver2.py

@@ -60,6 +60,7 @@ except ImportError, e:
 
 try:
   from impala import api   # Force checking if Impala is enabled
+  from impala.dbms import _get_server_name
   from impala.conf import CONFIG_WHITELIST as impala_settings
   from impala.server import get_api as get_impalad_api, ImpalaDaemonApiException, _get_impala_server_url
 except ImportError, e:
@@ -848,7 +849,9 @@ DROP TABLE IF EXISTS `%(table)s`;
     total_records, total_size, msg = None, None, None
 
     query_id = self._get_impala_query_id(snippet)
-    session = Session.objects.get_session(self.user, application='impala')
+    application = _get_server_name(snippet.get('compute', {}))
+    session = Session.objects.get_session(self.user, application=application)
+
     server_url = _get_impala_server_url(session)
     if query_id:
       LOG.debug("Attempting to get Impala query profile at server_url %s for query ID: %s" % (server_url, query_id))