Spark 1.5.1'i bağımsız küme yöneticisi ile kullanıyorum. Spark'in varsayılan spark-assembly-1.5.1-hadoop2.6.0.jar
, Avro 1.7.7'yi içerir. Özel Avro kütüphanemi tüm Spark işlerinde kullanmak istiyorum, buna Avro 1.7.8 diyelim. Bu, dev modunda mükemmel çalışır (ana = yerel [*]). Ancak, uygulamanızı istemci modunda kümeye gönderdiğimde, yürütücüler hala Avro 1.7.7 kitaplığını kullanıyor.Spark istemci modunda yöneticilere ekstra sınıf yolu ekleme
URL url = getClass().getClassLoader().getResource(GenericData.class.getName().replace('.','/')+".class");
Bunu yazdırırken, benim infaz deftercisi gösterir:
işçi düğümünde benim spark-env.sh bir parçasıdır işçi düğümündeki orker işlemi (/opt/spark/lib/spark-assembly-1.5.1-hadoop2.6.0.jar/org/apache/avro/ İşte
benim w: jenerik/GenericData.class İşteexport SPARK_WORKER_OPTS="-Dspark.executor.extraClassPath=/home/ansible/avro-1.7.8.jar -Dspark.executor.userClassPathFirst=true
ps aux | grep worker
):
kıvılcım 955 1.8 1.9 4161448 243600? Sl 13:29 0:09 /usr/java/jdk1.7.0_79/jre/bin/java -cp /home/ansible/avro-1.7.8.jar:/etc/spark-worker/:/opt/spark- 1.5.1-bin-hadoop2.6/lib/kıvılcım montaj-1.5.1-hadoop2.6.0.jar: /opt/spark-1.5.1-bin-hadoop2.6/lib/datanucleus-api-jdo-3.2 .6.jar: /opt/spark-1.5.1-bin-hadoop2.6/lib/datanucleus-rdbms-3.2.9.jar: /opt/spark-1.5.1-bin-hadoop2.6/lib/datanucleus -core-3.2.10.jar -Dspark.executor.extraClassPath =/home/ansible/avro-1.7.8.jar -Dspark.executor.userClassPathFirst = true -Xms512m -Xmx512m -XX: MaxPermSize = 256m org.apache.spark .deploy.worker.Worker --webui portlu 8081 kıvılcım: Açıkçası 7077
bu kavanoza koyun:-a-01 kıvılcım // /home/ansible/avro-1.7.8.jar
tüm işçi nodlarında.
Uygulayıcı, kıvılcım aksamının yerine kavanozu kullanmaya nasıl zorlanacağını bilen var mı?
Uygulamamı, "sparkConf.setMaster (" spark: // .... ")' kullanarak SBT'den "client" dağıtım modunda çalıştırıyorum. Benim durumumda söylediklerini eşdeğer: 'sparkConf.setJars (Seq (" dosya: //home/tmouron/avro-1.7.8.jar "))'. Ama bu ek hattında da aynı sorun var: avro-1.7.7 kullanılıyor. – tmouron