यह प्रश्न श्रमिकों के उपयोग के लिए पूरे क्लस्टर में जार वितरित करने का संदर्भ नहीं देता है।हैडोप HADOOP_CLASSPATH मुद्दे
यह क्लाइंट मशीन पर कई अतिरिक्त पुस्तकालयों को निर्दिष्ट करने के लिए संदर्भित करता है। अधिक विशिष्ट होना करने के लिए: मैं आदेश में एक SequenceFile की सामग्री को पुनः प्राप्त करने में निम्न आदेश को चलाने के लिए कोशिश कर रहा हूँ:
/path/to/hadoop/script fs -text /path/in/HDFS/to/my/file
यह मुझे इस त्रुटि फेंकता है: text: java.io.IOException: WritableName can't load class: util.io.DoubleArrayWritable
मैं एक लिखने योग्य DoubleArrayWritable बुलाया वर्ग की है। वास्तव में, एक और कंप्यूटर पर सब ठीक काम करता है।
मैंने उस श्रेणी वाले जार को शामिल करने के लिए HADOOP_CLASSPATH
सेट करने का प्रयास किया लेकिन बिना किसी परिणाम के। वास्तव में, जब चल रहा है:
/path/to/hadoop/script classpath
परिणाम जार जो मैं HADOOP_CLASSPATH को जोड़ा गया शामिल नहीं है।
सवाल यह है:
: जब Hadoopकुछ अधिक जानकारी जो मदद कर सकता है (लोगों को जो Hadoop स्क्रिप्ट classpath में स्वचालित रूप से शामिल की तुलना में अतिरिक्त अर्थ अन्य पुस्तकालयों से) चल रहा है कि कैसे आप अतिरिक्त पुस्तकालयों निर्दिष्ट करूँ
- मैं hadoop.sh स्क्रिप्ट (और न ही किसी भी संबद्ध स्क्रिप्ट)
- मैं Hadoop स्थापना निर्देशिका
- के तहत/lib निर्देशिका करने के लिए अपने पुस्तकालय कॉपी नहीं कर सकते hadoop-env.sh में बदल नहीं सकते हैं आरयू है n hadoop.sh से n यह लाइन है:
export HADOOP_CLASSPATH=$HADOOP_HOME/lib
जो शायद बताती है कि क्यों मेरे HADOOP_CLASSPATH env var को अनदेखा किया जाता है।
हाँ लेकिन Hadoop स्क्रिप्ट इस करता है: निर्यात HADOOP_CLASSPATH = $ HADOOP_HOME/lib। यह मेरे HADOOP_CLASSPATH – Razvan
@Razvan को मेरे अपडेट किए गए उत्तर –
को फिर से लिखता है जैसा कि मैंने कहा था, मैं "वितरित" क्लासपाथ सेट नहीं करना चाहता हूं। मैं क्लाइंट मशीन – Razvan