maven (gölge eklentisi ile) ile bir kıvılcım uygulaması yapıyorum ve bunu spark-submit --deploy-mode küme ile yürütmek için bir veri düğümünde scp'ing yapıyorum --deploy mode istemcisi ile benim kontrolüm altında olmayan asimetrik ağ nedeniyle çalışmıyor.kıvılcım gönderme sınıfıNotFoundException
İşte
--class Testi --master iplik --deploy modlu cluster --supervise --verbose jarName.jar HDF'ler kıvılcım gönderin benim fırlatma komutu var:///somePath/Test.txt HDF'ler: ///somePath/Test.out
işler hızlıca Testi için ClassNotFoundException ile başarısız $ 1; java.lang: evre 0.0 (TID 0, dataNode3) Kayıp görev 0.0: anonim sınıflar java biri
6/03/18 12:59:41 scheduler.TaskSetManager WARN benim ana sınıfından oluşturur. ClassNotFoundException: Sınama $ 1
Birçok kez (google) bahsettiğim bu hatayı gördüm ve çoğu öneri conf.setJars (jarPaths) veya benzerlerini çağırmak için kaynatılır.
Eksik sınıf kesinlikle (isteğe bağlı olarak) jarName.jar dosyasında bulunduğunda, bunun neden gerekli olduğunu anlamıyorum, neden bunu derleme zamanında belirtmeniz tercih sebebi ile çalışma zamanında tercih edilir - kıvılcım gönderme argümanı olarak, ve her iki durumda da, kavanoz için hangi yolu sağlamalıyım. Ben inşa sistemi üzerinde target/jarName.jar gelen datanode üzerinde benim ev dizine kopyalamak ama bu kıvılcım gönderme ya da derleme zaman ya hard-kodlanmış bir yol adı içine zor tırnaklar hdfs bir yere kopyalar gibi görünüyor veya başlatma zamanı.
Ve her şeyden önemlisi, neden spark.jar argümanını otomatik olarak someJar.jar argümanını kullanarak ele almıyoruz ve eğer değilse, bunu düzeltmek için ne yapmalıyım?
Sadece bir şaka ve üzerinde --deployMode istemcisi kullanılarak çalıştı çalıştı! Bunu gerçekten anlamıyorum. – Bradjcox
Spark'ın kavanozunuzu bulamayacağına inanıyorum. Kavanoğunuz her düğümde mevcut mu? Kavanoza mutlak yol belirlemeyi denediniz mi? –