如何在Java的EMR(AWS)Spark Hadoop集群上加载本机库

时间:2019-04-18 09:14:22

标签: apache-spark hadoop amazon-emr

我是EMR和Spark Hadoop集群的新手。 我必须在运行时为我的可执行文件xyz_spark.jar加载本机 abcd_linux.so 库。所有JAR,本机库和引导程序文件都将上传到s3存储桶( spark-bucket ),如下所示:-

s3://spark-bucket/bootstrap/xyz_spark.jar
s3://spark-bucket/bootstrap/bootstrap_action.sh
s3://spark-bucket/bootstrap/linux/abcd_linux.so

其中 bootstrap_action.sh 就像

#!/bin/bash
export LD_LIBRARY_PATH=/home/hadoop/linux
aws s3 cp s3://spark-bucket/bootstrap/ /home/hadoop --recursive
ls -l /home/hadoop

加载 abcd_linux.so 的类/代码如下所示

val os = System.getProperty("os.name")
logger.info("Current OS is "+os)
println("Current OS is "+os)
if(os.toLowerCase().contains("windows")){
  System.loadLibrary("abcd_win")
}else{
  System.loadLibrary("abcd_linux")
}

然后将JAVA_OPTIONS传递给应用,如下所示:-

"--driver-java-options", "-Dcontext=dev/app_dev_steps.json -XX:-UseGCOverheadLimit -Dlog4j.configuration=/home/hadoop/log4j.xml -DLD_LIBRARY_PATH=/home/hadoop/linux",

但是库未加载,无法找到任何适当的文档步骤来加载本机库。

0 个答案:

没有答案