Как загрузить собственную библиотеку в EMR (AWS) Spark Hadoop Cluster для Java - PullRequest
1 голос
/ 18 апреля 2019

Я новичок в EMR и Spark Hadoop Cluster.Мне нужно загрузить библиотеку Native abcd_linux.so во время выполнения для моего исполняемого файла xyz_spark.jar.Все файлы 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",

Но библиотека не загружается и не может найти какие-либо надлежащие шаги по документированию для загрузки собственной библиотеки.

...