You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oozie.apache.org by vi...@apache.org on 2013/04/17 01:04:01 UTC
svn commit: r1468659 - in /oozie/trunk: ./
core/src/main/java/org/apache/oozie/action/hadoop/
sharelib/hive/src/main/java/org/apache/oozie/action/hadoop/
sharelib/hive/src/test/java/org/apache/oozie/action/hadoop/
webapp/src/main/webapp/
Author: virag
Date: Tue Apr 16 23:04:00 2013
New Revision: 1468659
URL: http://svn.apache.org/r1468659
Log:
OOZIE-1281 Hiveaction should populate externalChildIDs (rohini via virag)
Modified:
oozie/trunk/core/src/main/java/org/apache/oozie/action/hadoop/HiveActionExecutor.java
oozie/trunk/release-log.txt
oozie/trunk/sharelib/hive/src/main/java/org/apache/oozie/action/hadoop/HiveMain.java
oozie/trunk/sharelib/hive/src/test/java/org/apache/oozie/action/hadoop/TestHiveActionExecutor.java
oozie/trunk/webapp/src/main/webapp/oozie-console.js
Modified: oozie/trunk/core/src/main/java/org/apache/oozie/action/hadoop/HiveActionExecutor.java
URL: http://svn.apache.org/viewvc/oozie/trunk/core/src/main/java/org/apache/oozie/action/hadoop/HiveActionExecutor.java?rev=1468659&r1=1468658&r2=1468659&view=diff
==============================================================================
--- oozie/trunk/core/src/main/java/org/apache/oozie/action/hadoop/HiveActionExecutor.java (original)
+++ oozie/trunk/core/src/main/java/org/apache/oozie/action/hadoop/HiveActionExecutor.java Tue Apr 16 23:04:00 2013
@@ -19,13 +19,24 @@ package org.apache.oozie.action.hadoop;
import static org.apache.oozie.action.hadoop.LauncherMapper.CONF_OOZIE_ACTION_MAIN_CLASS;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.StringReader;
+import java.net.URISyntaxException;
import java.util.List;
+import java.util.Properties;
import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.mapred.RunningJob;
import org.apache.oozie.action.ActionExecutorException;
import org.apache.oozie.client.WorkflowAction;
import org.apache.oozie.client.XOozieClient;
+import org.apache.oozie.service.HadoopAccessorException;
+import org.apache.oozie.util.IOUtils;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.Namespace;
@@ -80,6 +91,32 @@ public class HiveActionExecutor extends
return true;
}
+ @Override
+ protected void getActionData(FileSystem actionFs, RunningJob runningJob, WorkflowAction action, Context context)
+ throws HadoopAccessorException, JDOMException, IOException, URISyntaxException {
+ super.getActionData(actionFs, runningJob, action, context);
+
+ // Load stored Hadoop jobs ids and promote them as external child ids on job success
+ Properties props = new Properties();
+ props.load(new StringReader(action.getData()));
+ context.setExternalChildIDs((String) props.get(LauncherMain.HADOOP_JOBS));
+ }
+
+ @Override
+ protected void setActionCompletionData(Context context, FileSystem actionFs) throws IOException,
+ HadoopAccessorException, URISyntaxException {
+ super.setActionCompletionData(context, actionFs);
+
+ // Load stored Hadoop jobs ids and promote them as external child ids on job failure
+ Path externalChildIDs = LauncherMapper.getExternalChildIDsDataPath(context.getActionDir());
+ if (actionFs.exists(externalChildIDs)) {
+ InputStream is = actionFs.open(externalChildIDs);
+ BufferedReader reader = new BufferedReader(new InputStreamReader(is));
+ context.setExternalChildIDs(IOUtils.getReaderAsString(reader, -1));
+ reader.close();
+ }
+ }
+
/**
* Return the sharelib name for the action.
*
Modified: oozie/trunk/release-log.txt
URL: http://svn.apache.org/viewvc/oozie/trunk/release-log.txt?rev=1468659&r1=1468658&r2=1468659&view=diff
==============================================================================
--- oozie/trunk/release-log.txt (original)
+++ oozie/trunk/release-log.txt Tue Apr 16 23:04:00 2013
@@ -1,5 +1,6 @@
-- Oozie 4.1.0 release (trunk - unreleased)
+OOZIE-1281 Hiveaction should populate externalChildIDs (rohini via virag)
OOZIE-1322 show child job URL tab selectively for pig action (ryota via mona)
OOZIE-1307 Cover package org.apache.oozie.action.ssh with unit tests (vbondarev via rkanter)
OOZIE-1317 TestEventGeneration.testCoordinatorActionEvent fails (mona)
Modified: oozie/trunk/sharelib/hive/src/main/java/org/apache/oozie/action/hadoop/HiveMain.java
URL: http://svn.apache.org/viewvc/oozie/trunk/sharelib/hive/src/main/java/org/apache/oozie/action/hadoop/HiveMain.java?rev=1468659&r1=1468658&r2=1468659&view=diff
==============================================================================
--- oozie/trunk/sharelib/hive/src/main/java/org/apache/oozie/action/hadoop/HiveMain.java (original)
+++ oozie/trunk/sharelib/hive/src/main/java/org/apache/oozie/action/hadoop/HiveMain.java Tue Apr 16 23:04:00 2013
@@ -238,6 +238,7 @@ public class HiveMain extends LauncherMa
catch (SecurityException ex) {
if (LauncherSecurityManager.getExitInvoked()) {
if (LauncherSecurityManager.getExitCode() != 0) {
+ writeExternalChildIDs(logFile);
throw ex;
}
}
@@ -255,6 +256,24 @@ public class HiveMain extends LauncherMa
System.out.println();
}
+ private void writeExternalChildIDs(String logFile) {
+ // harvesting and recording Hadoop Job IDs
+ try {
+ Properties jobIds = getHadoopJobIds(logFile, HIVE_JOB_IDS_PATTERNS);
+ File file = new File(System.getProperty(LauncherMapper.EXTERNAL_CHILD_IDS));
+ final String hadoopJobIDs = jobIds.getProperty(HADOOP_JOBS);
+ OutputStream os = new FileOutputStream(file);
+ os.write(hadoopJobIDs.getBytes());
+ os.close();
+ System.out.println(" Hadoop Job IDs executed by Hive: " + hadoopJobIDs);
+ System.out.println();
+ }
+ catch (Exception e) {
+ System.out.println("WARN: Error getting Hadoop Job IDs executed by Hive");
+ e.printStackTrace(System.out);
+ }
+ }
+
private void runHive(String[] args) throws Exception {
CliDriver.main(args);
}
Modified: oozie/trunk/sharelib/hive/src/test/java/org/apache/oozie/action/hadoop/TestHiveActionExecutor.java
URL: http://svn.apache.org/viewvc/oozie/trunk/sharelib/hive/src/test/java/org/apache/oozie/action/hadoop/TestHiveActionExecutor.java?rev=1468659&r1=1468658&r2=1468659&view=diff
==============================================================================
--- oozie/trunk/sharelib/hive/src/test/java/org/apache/oozie/action/hadoop/TestHiveActionExecutor.java (original)
+++ oozie/trunk/sharelib/hive/src/test/java/org/apache/oozie/action/hadoop/TestHiveActionExecutor.java Tue Apr 16 23:04:00 2013
@@ -158,6 +158,7 @@ public class TestHiveActionExecutor exte
Properties outputData = new Properties();
outputData.load(new StringReader(context.getAction().getData()));
assertTrue(outputData.containsKey(LauncherMain.HADOOP_JOBS));
+ assertEquals(outputData.get(LauncherMain.HADOOP_JOBS), context.getExternalChildIDs());
//while this works in a real cluster, it does not with miniMR
//assertTrue(outputData.getProperty(LauncherMain.HADOOP_JOBS).trim().length() > 0);
Modified: oozie/trunk/webapp/src/main/webapp/oozie-console.js
URL: http://svn.apache.org/viewvc/oozie/trunk/webapp/src/main/webapp/oozie-console.js?rev=1468659&r1=1468658&r2=1468659&view=diff
==============================================================================
--- oozie/trunk/webapp/src/main/webapp/oozie-console.js (original)
+++ oozie/trunk/webapp/src/main/webapp/oozie-console.js Tue Apr 16 23:04:00 2013
@@ -553,7 +553,7 @@ function jobDetailsPopup(response, reque
labelWidth : 70,
items : urlUnit
};
- if (actionStatus.type == "pig") {
+ if (actionStatus.type == "pig" || actionStatus.type == "hive") {
var tabPanel = win.items.get(0);
tabPanel.add(childJobsItem);
}