Я новичок в 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",
Но библиотека не загружается и не может найти какие-либо надлежащие шаги по документированию для загрузки собственной библиотеки.