From f8a2f23b2c377be4224741475c484373696adf19 Mon Sep 17 00:00:00 2001 From: Ayca Acar Date: Wed, 25 Apr 2018 16:27:32 +0300 Subject: [PATCH 1/4] BeelineHive plugin added --- plugins/jobtype/build.xml | 361 +++++++++--------- .../src/azkaban/jobtype/BeelineHiveJob.java | 307 +++++++++++++++ .../jobtype/HadoopSecureBeelineWrapper.java | 51 +++ 3 files changed, 542 insertions(+), 177 deletions(-) create mode 100644 plugins/jobtype/src/azkaban/jobtype/BeelineHiveJob.java create mode 100644 plugins/jobtype/src/azkaban/jobtype/HadoopSecureBeelineWrapper.java diff --git a/plugins/jobtype/build.xml b/plugins/jobtype/build.xml index 2810df28..09a8f15c 100644 --- a/plugins/jobtype/build.xml +++ b/plugins/jobtype/build.xml @@ -1,201 +1,208 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - + + - - - - - - + target="1.8" debug="true" deprecation="false" failonerror="true"> + + + + + + - + - - - - - + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/jobtype/src/azkaban/jobtype/BeelineHiveJob.java b/plugins/jobtype/src/azkaban/jobtype/BeelineHiveJob.java new file mode 100644 index 00000000..028ba751 --- /dev/null +++ b/plugins/jobtype/src/azkaban/jobtype/BeelineHiveJob.java @@ -0,0 +1,307 @@ +package azkaban.jobtype; + +import azkaban.flow.CommonJobProperties; +import azkaban.jobExecutor.JavaProcessJob; +import azkaban.jobtype.HadoopConfigurationInjector; +import azkaban.jobtype.HadoopJobUtils; +import azkaban.jobtype.HadoopSecureWrapperUtils; +import azkaban.security.commons.HadoopSecurityManager; +import azkaban.utils.Props; +import azkaban.utils.StringUtils; +import org.apache.log4j.Logger; + +import java.io.File; +import java.io.IOException; +import java.util.*; + +import static org.apache.hadoop.security.UserGroupInformation.HADOOP_TOKEN_FILE_LOCATION; + +public class BeelineHiveJob extends JavaProcessJob { + + public static final String HIVE_SCRIPT = "hive.script"; + public static final String HIVE_URL = "hive.url"; + private static final String HIVECONF_PARAM_PREFIX = "hiveconf."; + private static final String HIVEVAR_PARAM_PREFIX = "hivevar."; + public static final String HADOOP_SECURE_HIVE_WRAPPER = + "azkaban.jobtype.HadoopSecureBeelineWrapper"; + + private String userToProxy = null; + private boolean shouldProxy = false; + private boolean obtainTokens = false; + private File tokenFile = null; + + private HadoopSecurityManager hadoopSecurityManager; + + private boolean debug = false; + + public BeelineHiveJob(final String jobid, final Props sysProps, final Props jobProps, final Logger log) + throws IOException { + + super(jobid, sysProps, jobProps, log); + + getJobProps().put(CommonJobProperties.JOB_ID, jobid); + + this.shouldProxy = getSysProps().getBoolean(HadoopSecurityManager.ENABLE_PROXYING, false); + getJobProps().put(HadoopSecurityManager.ENABLE_PROXYING, Boolean.toString(this.shouldProxy)); + this.obtainTokens = getSysProps().getBoolean(HadoopSecurityManager.OBTAIN_BINARY_TOKEN, false); + + this.debug = getJobProps().getBoolean("debug", false); + + if (this.shouldProxy) { + getLog().info("Initiating hadoop security manager."); + try { + this.hadoopSecurityManager = HadoopJobUtils.loadHadoopSecurityManager(getSysProps(), log); + } catch (final RuntimeException e) { + throw new RuntimeException("Failed to get hadoop security manager!" + e); + } + } + } + + @Override + public void run() throws Exception { + HadoopConfigurationInjector.prepareResourcesToInject(getJobProps(), + getWorkingDirectory()); + + if (this.shouldProxy && this.obtainTokens) { + this.userToProxy = getJobProps().getString("user.to.proxy"); + getLog().info("Need to proxy. Getting tokens."); + // get tokens in to a file, and put the location in props + final Props props = new Props(); + props.putAll(getJobProps()); + props.putAll(getSysProps()); + HadoopJobUtils.addAdditionalNamenodesToPropsFromMRJob(props, getLog()); + this.tokenFile = HadoopJobUtils.getHadoopTokens(this.hadoopSecurityManager, props, getLog()); + getJobProps().put("env." + HADOOP_TOKEN_FILE_LOCATION, + this.tokenFile.getAbsolutePath()); + } + + try { + super.run(); + } catch (final Throwable t) { + t.printStackTrace(); + getLog().error("caught error running the job"); + throw new Exception(t); + } finally { + if (this.tokenFile != null) { + HadoopJobUtils.cancelHadoopTokens(this.hadoopSecurityManager, this.userToProxy, this.tokenFile, getLog()); + if (this.tokenFile.exists()) { + this.tokenFile.delete(); + } + } + } + } + + @Override + protected String getJavaClass() { + return HADOOP_SECURE_HIVE_WRAPPER; + } + + @Override + protected String getJVMArguments() { + String args = super.getJVMArguments(); + + final String typeUserGlobalJVMArgs = + getJobProps().getString("jobtype.global.jvm.args", null); + if (typeUserGlobalJVMArgs != null) { + args += " " + typeUserGlobalJVMArgs; + } + final String typeSysGlobalJVMArgs = + getSysProps().getString("jobtype.global.jvm.args", null); + if (typeSysGlobalJVMArgs != null) { + args += " " + typeSysGlobalJVMArgs; + } + final String typeUserJVMArgs = getJobProps().getString("jobtype.jvm.args", null); + if (typeUserJVMArgs != null) { + args += " " + typeUserJVMArgs; + } + final String typeSysJVMArgs = getSysProps().getString("jobtype.jvm.args", null); + if (typeSysJVMArgs != null) { + args += " " + typeSysJVMArgs; + } + + if (this.shouldProxy) { + info("Setting up secure proxy info for child process"); + String secure; + secure = + " -D" + HadoopSecurityManager.USER_TO_PROXY + "=" + + getJobProps().getString(HadoopSecurityManager.USER_TO_PROXY); + final String extraToken = + getSysProps().getString(HadoopSecurityManager.OBTAIN_BINARY_TOKEN, + "false"); + if (extraToken != null) { + secure += + " -D" + HadoopSecurityManager.OBTAIN_BINARY_TOKEN + "=" + + extraToken; + } + + secure += " -Dmapreduce.job.credentials.binary=" + this.tokenFile; + info("Secure settings = " + secure); + args += secure; + } else { + info("Not setting up secure proxy info for child process"); + } + + return args; + } + + @Override + protected String getMainArguments() { + final ArrayList list = new ArrayList(); + + list.add("-u"); + list.add(getJobProps().getString(HIVE_URL)); + + list.add("-n"); + if (this.shouldProxy) { + list.add(this.userToProxy); + } else { + list.add(System.getProperty("user.name")); + } + + list.add("-p"); + list.add("DUMMY"); + + + // for hiveconf + final Map map = getHiveConf(); + if (map != null) { + for (final Map.Entry entry : map.entrySet()) { + list.add("--hiveconf"); + list.add(StringUtils.shellQuote( + entry.getKey() + "=" + entry.getValue(), StringUtils.SINGLE_QUOTE)); + } + } + + if (this.debug) { + list.add("--hiveconf"); + list.add("hive.root.logger=INFO,console"); + } + + // for hivevar + final Map hiveVarMap = getHiveVar(); + if (hiveVarMap != null) { + for (final Map.Entry entry : hiveVarMap.entrySet()) { + list.add("--hivevar"); + list.add(StringUtils.shellQuote( + entry.getKey() + "=" + entry.getValue(), StringUtils.SINGLE_QUOTE)); + } + } + + list.add("-d"); + list.add("org.apache.hive.jdbc.HiveDriver"); + + list.add("-f"); + list.add(getScript()); + + if (this.shouldProxy) { + list.add("-a"); + list.add("delegationToken"); + } + + return StringUtils.join((Collection) list, " "); + } + + @Override + protected List getClassPaths() { + + final List classPath = super.getClassPaths(); + + // To add az-core jar classpath + classPath.add(getSourcePathFromClass(Props.class)); + + // To add az-common jar classpath + classPath.add(getSourcePathFromClass(JavaProcessJob.class)); + classPath.add(getSourcePathFromClass(HadoopSecureWrapperUtils.class)); + classPath.add(getSourcePathFromClass(HadoopSecureBeelineWrapper.class)); + classPath.add(getSourcePathFromClass(HadoopSecurityManager.class)); + + + final String loggerPath = getSourcePathFromClass(org.apache.log4j.Logger.class); + if (!classPath.contains(loggerPath)) { + classPath.add(loggerPath); + } + + classPath.add(HadoopConfigurationInjector.getPath(getJobProps(), + getWorkingDirectory())); + final List typeClassPath = + getSysProps().getStringList("jobtype.classpath", null, ","); + if (typeClassPath != null) { + // fill in this when load this jobtype + final String pluginDir = getSysProps().get("plugin.dir"); + for (final String jar : typeClassPath) { + File jarFile = new File(jar); + if (!jarFile.isAbsolute()) { + jarFile = new File(pluginDir + File.separatorChar + jar); + } + + if (!classPath.contains(jarFile.getAbsoluteFile())) { + classPath.add(jarFile.getAbsolutePath()); + } + } + } + + final List typeGlobalClassPath = + getSysProps().getStringList("jobtype.global.classpath", null, ","); + if (typeGlobalClassPath != null) { + for (final String jar : typeGlobalClassPath) { + if (!classPath.contains(jar)) { + classPath.add(jar); + } + } + } + + return classPath; + } + + protected String getScript() { + return getJobProps().getString(HIVE_SCRIPT); + } + + protected Map getHiveConf() { + return getJobProps().getMapByPrefix(HIVECONF_PARAM_PREFIX); + } + + protected Map getHiveVar() { + return getJobProps().getMapByPrefix(HIVEVAR_PARAM_PREFIX); + } + + private static String getSourcePathFromClass(final Class containedClass) { + File file = + new File(containedClass.getProtectionDomain().getCodeSource() + .getLocation().getPath()); + + if (!file.isDirectory() && file.getName().endsWith(".class")) { + final String name = containedClass.getName(); + final StringTokenizer tokenizer = new StringTokenizer(name, "."); + while (tokenizer.hasMoreTokens()) { + tokenizer.nextElement(); + file = file.getParentFile(); + } + + return file.getPath(); + } else { + return containedClass.getProtectionDomain().getCodeSource().getLocation() + .getPath(); + } + } + + /** + * This cancel method, in addition to the default canceling behavior, also kills the MR jobs launched by Hive + * on Hadoop + */ + @Override + public void cancel() throws InterruptedException { + super.cancel(); + + info("Cancel called. Killing the Hive launched MR jobs on the cluster"); + + final String azExecId = jobProps.getString(CommonJobProperties.EXEC_ID); + final String logFilePath = + String.format("%s/_job.%s.%s.log", getWorkingDirectory(), azExecId, + getId()); + info("log file path is: " + logFilePath); + + HadoopJobUtils.proxyUserKillAllSpawnedHadoopJobs(logFilePath, jobProps, this.tokenFile, getLog()); + } +} + diff --git a/plugins/jobtype/src/azkaban/jobtype/HadoopSecureBeelineWrapper.java b/plugins/jobtype/src/azkaban/jobtype/HadoopSecureBeelineWrapper.java new file mode 100644 index 00000000..2f0d4900 --- /dev/null +++ b/plugins/jobtype/src/azkaban/jobtype/HadoopSecureBeelineWrapper.java @@ -0,0 +1,51 @@ +package azkaban.jobtype; + +import azkaban.jobtype.HadoopConfigurationInjector; +import azkaban.jobtype.HadoopSecureWrapperUtils; +import azkaban.utils.Props; +import org.apache.hadoop.security.UserGroupInformation; +import org.apache.hive.beeline.BeeLine; +import org.apache.log4j.Logger; + +import java.io.IOException; +import java.security.PrivilegedExceptionAction; +import java.util.Properties; + +import static org.apache.hadoop.security.UserGroupInformation.HADOOP_TOKEN_FILE_LOCATION; + +public class HadoopSecureBeelineWrapper { + private static final Logger logger = Logger.getRootLogger(); + private static String hiveScript; + + public static void main(final String[] args) throws IOException, InterruptedException { + final Properties jobProps = HadoopSecureWrapperUtils.loadAzkabanProps(); + HadoopConfigurationInjector.injectResources(new Props(null, jobProps)); + + hiveScript = jobProps.getProperty("hive.script"); + + if (HadoopSecureWrapperUtils.shouldProxy(jobProps)) { + final String tokenFile = System.getenv(HADOOP_TOKEN_FILE_LOCATION); + System.setProperty("mapreduce.job.credentials.binary", tokenFile); + final UserGroupInformation proxyUser = + HadoopSecureWrapperUtils.setupProxyUser(jobProps, tokenFile, logger); + proxyUser.doAs(new PrivilegedExceptionAction() { + @Override + public Void run() throws Exception { + runBeeline(args); + return null; + } + }); + } else { + runBeeline(args); + } + } + + private static void runBeeline(final String[] args) throws IOException { + final BeeLine beeline = new BeeLine(); + final int status = beeline.begin(args, null); + beeline.close(); + if (status != 0) { + System.exit(0); + } + } +} From 2d0b6a3d7493e36a9bbc7b80eaf70fbbc95eb2df Mon Sep 17 00:00:00 2001 From: Ayca Acar Date: Wed, 25 Apr 2018 16:28:11 +0300 Subject: [PATCH 2/4] beelineHiveJob test files added --- extlib/hive-beeline-0.12.0.jar | Bin 0 -> 110891 bytes .../azkaban/jobtype/TestBeelineHiveJob.java | 48 ++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 extlib/hive-beeline-0.12.0.jar create mode 100644 plugins/jobtype/test/azkaban/jobtype/TestBeelineHiveJob.java diff --git a/extlib/hive-beeline-0.12.0.jar b/extlib/hive-beeline-0.12.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..696cf7ec5d3f50e18237c41ecad0cd4e6e75dea4 GIT binary patch literal 110891 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 z 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 MSh&Z6BNpWU09AI20ssI2 literal 0 HcmV?d00001 diff --git a/plugins/jobtype/test/azkaban/jobtype/TestBeelineHiveJob.java b/plugins/jobtype/test/azkaban/jobtype/TestBeelineHiveJob.java new file mode 100644 index 00000000..9bb05b42 --- /dev/null +++ b/plugins/jobtype/test/azkaban/jobtype/TestBeelineHiveJob.java @@ -0,0 +1,48 @@ +package azkaban.jobtype; + +import azkaban.utils.Props; +import com.google.common.io.Files; +import org.apache.log4j.Logger; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.io.File; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.*; + + +public class TestBeelineHiveJob { + Logger testLogger; + private static final String WORKING_DIR = Files.createTempDir().getAbsolutePath() + "/TestBeelineHiveJob"; + + @Before + public void setUp() throws Exception { + this.testLogger = Logger.getLogger("testLogger"); + final File workingDirFile = new File(WORKING_DIR); + workingDirFile.mkdirs(); + } + + @Test + public void testMainArguments() throws Exception { + + final Props sysProps = new Props(); + sysProps.put("database.type", "h2"); + sysProps.put("h2.path", "./h2"); + + final String jobId = "test_job"; + final Props jobProps = new Props(); + jobProps.put("type", "beelinehive"); + jobProps.put("hive.script", "hivescript.sql"); + jobProps.put("hive.url", "localhost"); + + final BeelineHiveJob job = new BeelineHiveJob(jobId, sysProps, jobProps, this.testLogger); + final String jobArguments = job.getMainArguments(); + Assert.assertTrue(jobArguments.endsWith("-d org.apache.hive.jdbc.HiveDriver -f hivescript.sql ")); + Assert.assertTrue(jobArguments.startsWith("-u localhost")); + Assert.assertFalse(jobArguments.contains(" -a ")); + System.out.println(job.getMainArguments()); + + } +} From 1e5e1638b713179f6be567c31e715adc07cb15e0 Mon Sep 17 00:00:00 2001 From: Ayca Acar Date: Wed, 25 Apr 2018 19:21:34 +0300 Subject: [PATCH 3/4] beelinehive jobtype properties file added --- plugins/jobtype/jobtypes/beelinehive/private.properties | 1 + 1 file changed, 1 insertion(+) create mode 100644 plugins/jobtype/jobtypes/beelinehive/private.properties diff --git a/plugins/jobtype/jobtypes/beelinehive/private.properties b/plugins/jobtype/jobtypes/beelinehive/private.properties new file mode 100644 index 00000000..3b71a7b7 --- /dev/null +++ b/plugins/jobtype/jobtypes/beelinehive/private.properties @@ -0,0 +1 @@ +jobtype.class=azkaban.jobtype.BeelineHiveJob From c57a752928283b7b8b878d6e5468697118a96143 Mon Sep 17 00:00:00 2001 From: Ayca Acar Date: Wed, 23 May 2018 12:27:50 +0300 Subject: [PATCH 4/4] sets jobtype.classpath in private.properties --- plugins/jobtype/jobtypes/beelinehive/private.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/jobtype/jobtypes/beelinehive/private.properties b/plugins/jobtype/jobtypes/beelinehive/private.properties index 3b71a7b7..b0292f2d 100644 --- a/plugins/jobtype/jobtypes/beelinehive/private.properties +++ b/plugins/jobtype/jobtypes/beelinehive/private.properties @@ -1 +1,3 @@ jobtype.class=azkaban.jobtype.BeelineHiveJob +hadoop.home=/usr/hdp/current +jobtype.classpath=${hadoop.home}/hadoop-client/hadoop-common.jar,${hadoop-home}/hadoop-client/lib/*,${hadoop.home}/hive-client/lib/*,/etc/hadoop/conf