Răsfoiți Sursa

HUE-3079 [jb] Display jobs from JHS (YARN and Spark) and their logs when not in RM

Jenny Kim 9 ani în urmă
părinte
comite
cba68a03b8
1 a modificat fișierele cu 15 adăugiri și 7 ștergeri
  1. 15 7
      apps/jobbrowser/src/jobbrowser/api.py

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

@@ -225,9 +225,14 @@ class YarnApi(JobBrowserApi):
                   user.is_superuser or
                   job.user == user.username, jobs)
 
+
+  def _get_job_from_history_server(self, job_id):
+    resp = self.history_server_api.job(self.user, job_id)
+    return YarnJob(self.history_server_api, resp['job'])
+
+
   @rm_ha
   def get_job(self, jobid):
-
     job_id = jobid.replace('application', 'job')
     app_id = jobid.replace('job', 'application')
 
@@ -239,9 +244,8 @@ class YarnApi(JobBrowserApi):
           job = SparkJob(app, rm_api=self.resource_manager_api, hs_api=self.spark_history_server_api)
         elif app['state'] == 'KILLED':
           job = KilledYarnJob(self.resource_manager_api, app)
-        else:
-          resp = self.history_server_api.job(self.user, job_id)
-          job = YarnJob(self.history_server_api, resp['job'])
+        else:  # Job succeeded, attempt to fetch from JHS
+          job = self._get_job_from_history_server(job_id)
       else:
         if app['state'] == 'ACCEPTED':
           raise ApplicationNotRunning(app_id, app)
@@ -254,11 +258,15 @@ class YarnApi(JobBrowserApi):
         else:
           job = Application(app, self.resource_manager_api)
     except RestException, e:
-      if e.code == 404:  # Job not found in RM so attempt to find job in History Server
-        resp = self.history_server_api.job(self.user, job_id)
-        job = YarnJob(self.history_server_api, resp['job'])
+      if e.code == 404:  # Job not found in RM so attempt to find job in JHS
+        job = self._get_job_from_history_server(job_id)
       else:
         raise JobExpired(app_id)
+    except PopupException, e:
+      if 'NotFoundException' in e.message:
+        job = self._get_job_from_history_server(job_id)
+      else:
+        raise e
     except ApplicationNotRunning, e:
       raise e
     except Exception, e: