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);
}