Jelajahi Sumber

HUE-8877 [jb] Remove yarn dependency

Jean-Francois Desjeans Gauthier 6 tahun lalu
induk
melakukan
d0b724dab8

+ 15 - 6
apps/jobbrowser/src/jobbrowser/api.py

@@ -24,6 +24,7 @@ from django.utils.translation import ugettext as _
 from desktop.lib.exceptions_renderable import PopupException
 from desktop.lib.rest.http_client import RestException
 
+from hadoop.conf import YARN_CLUSTERS
 from hadoop.cluster import rm_ha
 
 import hadoop.yarn.history_server_api as history_server_api
@@ -68,10 +69,15 @@ class YarnApi(JobBrowserApi):
   """
   def __init__(self, user):
     self.user = user
-    self.resource_manager_api = resource_manager_api.get_resource_manager(user.username)
-    self.mapreduce_api = mapreduce_api.get_mapreduce_api(user.username)
-    self.history_server_api = history_server_api.get_history_server_api(user.username)
-    self.spark_history_server_api = spark_history_server_api.get_history_server_api()  # Spark HS does not support setuser
+    self.resource_manager_api = None
+    self.mapreduce_api = None
+    self.history_server_api = None
+    self.spark_history_server_api = None
+    if YARN_CLUSTERS.keys():
+      self.resource_manager_api = resource_manager_api.get_resource_manager(user.username)
+      self.mapreduce_api = mapreduce_api.get_mapreduce_api(user.username)
+      self.history_server_api = history_server_api.get_history_server_api(user.username)
+      self.spark_history_server_api = spark_history_server_api.get_history_server_api()  # Spark HS does not support setuser
 
   def get_job_link(self, job_id):
     return self.get_job(job_id)
@@ -93,11 +99,14 @@ class YarnApi(JobBrowserApi):
     if kwargs.get('time_value'):
       filters['startedTimeBegin'] = self._get_started_time_begin(kwargs.get('time_value'), kwargs.get('time_unit'))
 
-    json = self.resource_manager_api.apps(**filters)
+    if self.resource_manager_api: # This happens when yarn is not configured, but we need jobbrowser for Impala
+      json = self.resource_manager_api.apps(**filters)
+    else:
+      json = {}
     if type(json) == str and 'This is standby RM' in json:
       raise Exception(json)
 
-    if json['apps']:
+    if json.get('apps'):
       jobs = [Application(app) for app in json['apps']['app']]
     else:
       return []

+ 1 - 1
desktop/core/src/desktop/js/onePageViewModel.js

@@ -390,7 +390,7 @@ class OnePageViewModel {
               });
             } else {
               if (type.indexOf('json') > -1) {
-                var presponse = JSON.parse(response);
+                const presponse = JSON.parse(response);
                 if (presponse && presponse.url) {
                   window.location.href = window.HUE_BASE_URL + presponse.url;
                   return;

+ 1 - 0
desktop/core/src/desktop/js/topNavViewModel.js

@@ -126,6 +126,7 @@ class TopNavViewModel {
           clusterConfig['app_config'] &&
           clusterConfig['app_config']['browser'] &&
           (clusterConfig['app_config']['browser']['interpreter_names'].indexOf('yarn') != -1 ||
+            clusterConfig['app_config']['editor']['interpreter_names'].indexOf('impala') ||
             clusterConfig['app_config']['browser']['interpreter_names'].indexOf('dataeng') != -1)
       );
     });