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

#apache-spark #hadoop #amazon-emr

#apache-spark #hadoop #amazon-emr

Вопрос:

Я новичок в EMR и Spark Hadoop Cluster. Я должен загрузить встроенную 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",
 

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