diff --git a/pom.xml b/pom.xml index 97b06bc..985b69c 100644 --- a/pom.xml +++ b/pom.xml @@ -824,6 +824,7 @@ ${test.tmp.dir}/conf:${basedir}/${hive.path.to.root}/conf ${test.hive.hadoop.classpath} ${spark.home}/lib/spark-assembly-${spark.version}-hadoop2.4.0.jar:${test.hive.hadoop.classpath} + -Dorg.xerial.snappy.tempdir=/tmp -Dorg.xerial.snappy.lib.name=libsnappyjava.jnilib ${env.PATH}${test.extra.path} diff --git a/spark-client/src/main/java/org/apache/hive/spark/client/SparkClientImpl.java b/spark-client/src/main/java/org/apache/hive/spark/client/SparkClientImpl.java index a30d8cb..6b919e7 100644 --- a/spark-client/src/main/java/org/apache/hive/spark/client/SparkClientImpl.java +++ b/spark-client/src/main/java/org/apache/hive/spark/client/SparkClientImpl.java @@ -62,6 +62,7 @@ private static final long DEFAULT_SHUTDOWN_TIMEOUT = 10000; // In milliseconds + private static final String OSX_TEST_OPTS = "SPARK_OSX_TEST_OPTS"; private static final String DRIVER_OPTS_KEY = "spark.driver.extraJavaOptions"; private static final String EXECUTOR_OPTS_KEY = "spark.executor.extraJavaOptions"; private static final String DRIVER_EXTRA_CLASSPATH = "spark.driver.extraClassPath"; @@ -212,10 +213,16 @@ public void run() { sparkLogDir = sparkHome + "/logs/"; } } + + String osxTestOpts = ""; + if (Strings.nullToEmpty(System.getProperty("os.name")).toLowerCase().contains("mac")) { + osxTestOpts = Strings.nullToEmpty(System.getenv(OSX_TEST_OPTS)); + } + String driverJavaOpts = Joiner.on(" ").skipNulls().join( - "-Dhive.spark.log.dir=" + sparkLogDir, conf.get(DRIVER_OPTS_KEY)); + "-Dhive.spark.log.dir=" + sparkLogDir, osxTestOpts, conf.get(DRIVER_OPTS_KEY)); String executorJavaOpts = Joiner.on(" ").skipNulls().join( - "-Dhive.spark.log.dir=" + sparkLogDir, conf.get(EXECUTOR_OPTS_KEY)); + "-Dhive.spark.log.dir=" + sparkLogDir, osxTestOpts, conf.get(EXECUTOR_OPTS_KEY)); // Create a file with all the job properties to be read by spark-submit. Change the // file's permissions so that only the owner can read it. This avoid having the