ClassNotFound yol açar: ("spark.serializer", CustomSparkSerializer.class.getCanonicalName())Kıvılcım özel seri hale getirici ben olarak tanımlanan <strong>özel kıvılcım seri hale</strong> kullanmaya çalışıyorum
conf.set;
Ama infaz env oluşturma, örneğin zaman ClassNotFoundException konuyu bakan değilim Spark için başvuruda zaman:
16/04/01 18:41:11 BİLGİ util.Utils: Başarıyla hizmet başladı o kullanılarak çözülebilir yerel bağımsız modunda port 52153.
Exception in thread "main" java.lang.reflect.UndeclaredThrowableException
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1643)
at org.apache.spark.deploy.SparkHadoopUtil.runAsSparkUser(SparkHadoopUtil.scala:68)
at org.apache.spark.executor.CoarseGrainedExecutorBackend$.run(CoarseGrainedExecutorBackend.scala:149)
at org.apache.spark.executor.CoarseGrainedExecutorBackend$.main(CoarseGrainedExecutorBackend.scala:250)
at org.apache.spark.executor.CoarseGrainedExecutorBackend.main(CoarseGrainedExecutorBackend.scala)
Caused by: java.lang.ClassNotFoundException: example.CustomSparkSerializer
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:270)
at **org.apache.spark.util.Utils$.classForName(Utils.scala:173)**
at org.apache.spark.SparkEnv$.instantiateClass$1(SparkEnv.scala:266)
at org.apache.spark.SparkEnv$.instantiateClassFromConf$1(SparkEnv.scala:287)
at org.apache.spark.SparkEnv$.create(SparkEnv.scala:290)
at org.apache.spark.SparkEnv$.createExecutorEnv(SparkEnv.scala:218)
at org.apache.spark.executor.CoarseGrainedExecutorBackend$$anonfun$run$1.apply$mcV$sp(CoarseGrainedExecutorBackend.scala:183)
at org.apache.spark.deploy.SparkHadoopUtil$$anon$1.run(SparkHadoopUtil.scala:69)
at org.apache.spark.deploy.SparkHadoopUtil$$anon$1.run(SparkHadoopUtil.scala:68)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628)
üzerinde 'sparkExecutor' "spark.executor.extraClassPath = yol// kavanoz için", ancak birkaç düğümlerle küme üzerinde yardımcı olmuyor.
(benim için) bilinen tüm denenmiş kullanım --jars, uygulamakla (ve hatta sürücü) ekstra sınıf ve kütüphane yolu olarak, sc.addJar da ... Faydası değildi gibi yaklaşımlar var.
O Kıvılcım org.apache.spark.util.Utils $ .classForName (Utils.scala: 173) 'de spesifik classloader kullanır bulundu yük serileştirici sınıfı için, ama gerçekten özel seri hale nasıl anlamıyorum yüklenebilen. Oozie - -> SparkSubmit -> İPLİK istemci - Uygulama akış teslim
daha karmaşıktır> Kıvılcım uygulama
soru - herkes özel kıvılcım serileştirici kullanılmalıdır ve nasıl ClassNotFound sorunu çözmek için nasıl biliyor Bununla ? peşin
teşekkürler!
Kullanıcıları e-posta listesine göndermek için soru gönderildi http://apache-spark-user-list.1001560.n3.nabble.com/Spark-custom-serializer-leads-to-ClassNotFound-td26692.html –
El ile koyarsanız İşçilerdeki kavanoz işe yarıyor mu? Bu sorunun özel serileştiriciye özgü olduğundan emin değilim, bana daha geniş görünüyor. –
Yuval, haklısın, sorun ClassLoaders/classpath ile ilgili. Bir süre harcadıktan sonra aşağıdakileri buldum: –