2016-04-26 4 views
5

मैं एक दूरस्थ सर्वर पर एक यार्न क्लस्टर पर एक स्पार्क स्ट्रीमिंग अनुप्रयोग चलाने के लिए चाहता हूँ। डिफ़ॉल्ट जावा संस्करण 1.7 है लेकिन मैं अपने आवेदन के लिए 1.8 का उपयोग करना चाहता हूं जो सर्वर में भी है लेकिन डिफ़ॉल्ट नहीं है। स्पार्क के माध्यम से निर्दिष्ट करने का कोई तरीका है- जावा 1.8 का स्थान सबमिट करें ताकि मुझे प्रमुख नहीं मिल सके .minor त्रुटि?स्पार्क-सबमिट कमांड में किस जावा संस्करण का उपयोग करने के लिए निर्दिष्ट करें?

+1

आप मेवेन का उपयोग करते हैं? यदि ऐसा है तो आप pom.xml –

+3

में जावा संस्करण निर्दिष्ट कर सकते हैं हो सकता है कि आप स्पार्क-सबमिट करने से ठीक पहले JAVA_HOME सेट कर सकें। इस तरह: "JAVA_HOME =/path/to/java ./bin/spark-submit ......" – Hlib

+2

स्पार्क-सबमिट कमांड मेरे लिए काम करने से पहले JAVA_HOME सेटिंग। धन्यवाद :) – Priyanka

उत्तर

2

हालांकि आप किसी विशेष जावा संस्करण (export JAVA_HOME=/path/to/jre/ && spark-submit ... ) पर चलाने के लिए ड्राइवर कोड को मजबूर कर सकते हैं, फिर भी कार्यकर्ता कार्यकर्ता मशीन से यार्न उपयोगकर्ता के पथ से डिफ़ॉल्ट जावा संस्करण के साथ कोड निष्पादित करेगा।

आप क्या कर सकते हैं spark-env.sh फ़ाइलों (documentation) को संपादित करके प्रत्येक स्पार्क इंस्टेंस को एक विशेष JAVA_HOME का उपयोग करने के लिए सेट कर सकते हैं।

9

JAVA_HOME हमारे मामले में पर्याप्त नहीं था, चालक जावा 8 में चल रहा था, लेकिन मुझे बाद में पता चला कि यार्न में स्पार्क श्रमिक जावा 7 का उपयोग करके लॉन्च किए गए थे (हडूप नोड्स में जावा संस्करण दोनों स्थापित हैं)।

मुझे spark-defaults.conf में जोड़ना पड़ा। ध्यान दें कि आप इसे --conf के साथ कमांड लाइन में प्रदान कर सकते हैं।

http://spark.apache.org/docs/latest/configuration.html#runtime-environment

+0

जिनके पास वर्कर नोड्स पर जावा संस्करण की जांच करने की अनुमति/अनुमति नहीं है, 'spark.range (0, 100)। MapPartitions (_। मानचित्र का उपयोग करें) (_ => java.lang.System.getProperty ("java.version")))। सैनिटी चेक के लिए दिखाएं। यार्न/स्पार्क यूआई के माध्यम से रनटाइम जावा संस्करण निर्धारित करना बहुत मुश्किल हो सकता है –

संबंधित मुद्दे

 संबंधित मुद्दे