0
ich SparkLauncher bin mit meiner Funke App von Java.The Code starten sieht aus wieGot UnsatisfiedLinkError wenn Start Spark-Programm von Java-Code
Map<String, String> envMap = new HashMap<>();
envMap.put("HADOOP_CONF_DIR","/etc/hadoop/conf");
envMap.put("JAVA_LIBRARY_PATH", "/opt/cloudera/parcels/CDH-5.5.1-1.cdh5.5.1.p0.11/lib/hadoop/lib/native");
envMap.put("LD_LIBRARY_PATH", "/opt/cloudera/parcels/CDH-5.5.1-1.cdh5.5.1.p0.11/lib/hadoop/lib/native");
envMap.put("SPARK_HOME","/opt/cloudera/parcels/CDH-5.5.1-1.cdh5.5.1.p0.11/lib/spark");
envMap.put("DEFAULT_HADOOP_HOME","/opt/cloudera/parcels/CDH-5.5.1-1.cdh5.5.1.p0.11/lib/hadoop");
envMap.put("SPARK_DIST_CLASSPATH","all jars under /opt/cloudera/parcels/CDH-5.5.1-1.cdh5.5.1.p0.11/jars");
envMap.put("HADOOP_HOME","/opt/cloudera/parcels/CDH-5.5.1-1.cdh5.5.1.p0.11/lib/hadoop");
SparkLauncher sparklauncher = new SparkLauncher(envMap)
.setAppResource("myapp.jar")
.setSparkHome("/opt/cloudera/parcels/CDH-5.5.1-1.cdh5.5.1.p0.11/lib/spark/")
.setMainClass("spark.HelloSpark")
.setMaster("yarn-cluster")
.setConf(SparkLauncher.DRIVER_MEMORY, "2g")
.setConf("spark.driver.userClassPathFirst", "true")
.setConf("spark.executor.userClassPathFirst", "true").launch();
jedes Mal, ich
bekamUser class threw exception: java.lang.UnsatisfiedLinkError: org.xerial.snappy.SnappyNative.maxCompressedLength(I)I
Können Sie Ihre Antwort näher erläutern? und etwas ähnliches auf https://community.cloudera.com/t5/Advanced-Analytics-Apache-Spark/Override-libraries-for-spark/mp/32146#M1142 gefunden – Vishnu667
Irgendwie ist Ihr Glas überschreiben Cloudera inneren Bibliotheken, wie '' 'snappy-java'''. Dies beschwört den inneren Prozess, weil sie ihre eigenen Bibliotheken erwarten. Oder die Reihenfolge der Klassenpfade wird durch das Flag '' 'userClassPathFirst'' beeinflusst - denken Sie daran, dass es experimentell ist (http://spark.apache.org/docs/latest/configuration.html). –