Parcourir la source

Impala table import is failing intermittently when beeswax max_number_of_sessions != 0

sreenaths il y a 3 ans
Parent
commit
a4df9c89bc
1 fichiers modifiés avec 16 ajouts et 4 suppressions
  1. 16 4
      desktop/libs/notebook/src/notebook/connectors/hiveserver2.py

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

@@ -183,10 +183,17 @@ class HS2Api(Api):
   def create_session(self, lang='hive', properties=None):
     application = 'beeswax' if lang == 'hive' or lang == 'llap' else lang
 
+    uses_session_pool = has_session_pool()
+    uses_multiple_sessions = has_multiple_sessions()
+
+    if lang == 'impala':
+      uses_session_pool = False
+      uses_multiple_sessions = False
+
     try:
-      if has_session_pool():
+      if uses_session_pool:
         session = Session.objects.get_tez_session(self.user, application, MAX_NUMBER_OF_SESSIONS.get())
-      elif not has_multiple_sessions():
+      elif not uses_multiple_sessions:
         session = Session.objects.get_session(self.user, application=application)
       else:
         session = None
@@ -195,7 +202,7 @@ class HS2Api(Api):
         LOG.exception('Connection being refused or service is not available in either session or in multiple sessions'
                       '- HA failover')
         reset_ha()
-        
+
     reuse_session = session is not None
     if not reuse_session:
       db = dbms.get(self.user, query_server=get_query_server_config(name=lang, connector=self.interpreter))
@@ -289,8 +296,13 @@ class HS2Api(Api):
       except Exception as e:
         LOG.exception('Error closing statement %s' % str(e))
 
+    close_sessions = CLOSE_SESSIONS.get()
+
+    if session['type'] == 'impala':
+      close_sessions = False
+
     try:
-      if idle and CLOSE_SESSIONS.get():
+      if idle and close_sessions:
         response['result'].append(self.close_session(session))
     except QueryExpired:
       pass