मैं यार्न पर चलने वाले स्पार्क क्लस्टर को नौकरी सौंपता हूंकभी-कभी अपेक्षाकृत धीमी कनेक्शन के माध्यम से स्पार्क-सबमिट का उपयोग करना। प्रत्येक काम के लिए 156 एमबी स्पार्क-असेंबली फ़ाइल अपलोड करने से बचने के लिए, मैंने कॉन्फ़िगरेशन विकल्प सेट किया spark.yarn.jar
HDFS पर फाइल करने के लिए। हालाँकि, यह अपलोड से बचता नहीं है, बल्कि HDFS स्पार्क डायरेक्टरी से असेंबली फाइल को ले जाता है और इसे एप्लिकेशन डायरेक्टरी में कॉपी करता है:
$:~/spark-1.4.0-bin-hadoop2.6$ bin/spark-submit --class MyClass --master yarn-cluster --conf spark.yarn.jar=hdfs://node-00b/user/spark/share/lib/spark-assembly.jar my.jar
[...]
15/07/06 21:25:43 INFO yarn.Client: Uploading resource hdfs://node-00b/user/spark/share/lib/spark-assembly.jar -> hdfs://nameservice1/user/XXX/.sparkStaging/application_1434986503384_0477/spark-assembly.jar
मैं उम्मीद कर रहा था कि असेंबली फाइल को एचडीएफएस के भीतर कॉपी किया जाना चाहिए, लेकिन वास्तव में यह फिर से डाउनलोड और अपलोड किया गया लगता है जो काफी प्रति-उत्पादक है। उस पर कोई संकेत?
उत्तर:
जवाब के लिए 3 № 1दोनों HDFS को एक ही सिस्टम होना चाहिए। प्रासंगिक कोड यहां देखें:
किसी भी कारण से आप इसके बजाय nameervice1 HDFS पर स्पार्क असेंबली जार कर सकते हैं?