Java'da bir Spark işi yazdım. iş gölgeli kavanozu olarak paketlenir ve yürütülür:Java'da kıvılcım işi: bir kümede çalıştırıldığında 'kaynakların' dosyalarına nasıl erişileceği
kodundaspark-submit my-jar.jar
, src/main/resources/templates
ikamet bazı dosyaları (Freemarker şablonları) olmasıdır. Yerel olarak çalıştırdığınızda, ben mümkün erişim dosyaları değilim: Önceki satıra çalıştırıldığında
File[] files = new File("src/main/resources/templates/").listFiles();
, boş-işaretçi istisna döndürülür.
Ben jar tf my-jar.jar
çalıştırırsanız ben dosyaları templates/
klasörde paketlenmiş olduğunu görebilirsiniz:
[...]
templates/
templates/my_template.ftl
[...]
ben onları okumak için sadece edemiyorum; .listFiles()
'un küme düğümündeki yerel dosya sistemine erişmeye çalıştığından şüpheleniyorum ve dosyalar orada yok.
Bağımsız bir Spark işinde kullanılacak dosyaları nasıl paketlemem gerektiğini merak ediyorum. İşlerin dışında HDFS'ye kopyalamamayı tercih ederim, çünkü bu durumun bakımı karmaşık hale geliyor.
Ustanızın ne olduğunu söyleyebilir misiniz? ve hangi dağıtım modunu kullanıyorsunuz? – user1314742