Hadoop "अपने मंच के लिए देशी-हडॉप पुस्तकालय लोड करने में असमर्थ" चेतावनी


269

मैं वर्तमान में चल रहे किसी सर्वर पर Hadoop को विन्यस्त कर रहा हूँ CentOS । जब मैं चलता हूं start-dfs.shया stop-dfs.sh, मुझे निम्न त्रुटि मिलती है:

WARN का उपयोग करें। NativeCodeLoader: अपने प्लेटफ़ॉर्म के लिए देशी-हडॉप लाइब्रेरी लोड करने में असमर्थ ... बिलिन-जावा कक्षाओं का उपयोग करना जहां लागू हो

मैं Hadoop 2.2.0 चला रहा हूं

एक खोज ऑनलाइन करने से यह लिंक सामने आया: http://balanceandbreath.blogspot.ca/2013/01/utilnativecodeloader-unable-to-load.html

हालाँकि, /native/हडॉप 2.x पर निर्देशिका की सामग्री अलग-अलग दिखाई देती है इसलिए मुझे यकीन नहीं है कि क्या करना है।

मैंने इन दो पर्यावरण चर को भी इसमें जोड़ा है hadoop-env.sh:

निर्यात HADOOP_OPTS = "$ HADOOP_OPTS -Djava.library.path = / usr / स्थानीय / हडूप / परिवाद /"

निर्यात HADOOP_COMMON_LIB_NATIVE_DIR = "/ usr / स्थानीय / हडूप / लिबरल / देशी"

कोई विचार?


3
सरचार्जबिलिटी के लिए: यह समस्या कम से कम Hadoop 2.4.0, Hadoop 2.4.1 और शायद अन्य संस्करणों पर भी लागू होती है।
ग्रेग डबकी

देशी पुस्तकालयों का उपयोग कैसे करें के लिए प्रलेखन hasoop.apache.org/docs/current/hadoop-project-dist/…
जेम्स मूर

जवाबों:


227

मुझे लगता है कि आप 64 बिट CentOS पर Hadoop चला रहे हैं। कारण है कि आप ने देखा कि चेतावनी मूल Hadoop पुस्तकालय $HADOOP_HOME/lib/native/libhadoop.so.1.0.0वास्तव में 32 बिट पर संकलित किया गया है।

वैसे भी, यह सिर्फ एक चेतावनी है, और Hadoop की कार्यक्षमता को प्रभावित नहीं करेगा।

इस तरह से यदि आप इस चेतावनी को खत्म करना चाहते हैं libhadoop.so.1.0.0, तो Hadoop के सोर्स कोड को डाउनलोड करें और 64bit सिस्टम पर recompile करें , फिर 32bit को बदलें।

उबंटू के लिए स्रोत कोड को फिर से जोड़ने के तरीके पर कदम:

सौभाग्य।


7
मेरे लिए काम नहीं करता है मुझे आपकी प्लेटफ़ॉर्म त्रुटि के लिए देशी-हडॉप लाइब्रेरी लोड करने में असमर्थ है।
अक्षय हजारी

7
यहां तक ​​कि अगर यह बिल्कुल काम नहीं करता है, यह अभी भी उपयोगी है। तो क्या यह प्रभाव प्रदर्शन होगा?
वाट्स इनबॉक्‍स

1
मैं Centos 7 और Centos 6.5 पर उसी हैडऑप 2.5.0 टार का उपयोग कर रहा हूं। दोनों 64 बिट OS हैं। Centos7 पर ऐसी कोई चेतावनी नहीं है, लेकिन Centos 6.5 मुझे यह चेतावनी देता है, क्यों?
संदीप दिवेकर

धन्यवाद। मुझे महसूस नहीं हुआ कि यह एक चेतावनी है। वास्तव में कहते हैं, "नामेनोड शुरू करना" और आखिरी वाक्य "देशी-हडूप लोड करने में असमर्थ है" जो डर का कारण बना।
कौशिक लेले

ध्यान दें कि आपको वास्तव में पूरे Hadoop को संकलित करने की आवश्यकता नहीं है, जैसा कि निर्देश बताते हैं - hadoop-common-project/hadoop-commonऔर hadoop-hdfs-project/hadoop-hdfsपर्याप्त है।
ग्रेग डबिकि

152

अपने मूल शब्द को HADOOP_OPTSइस तरह से जोड़ें :

export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=$HADOOP_HOME/lib/native"

पुनश्च: धन्यवाद Searene


यह मेरे लिए भी किया। Hadoop 2.6 के साथ उबंटू पर, पथ
/home/user/hadoop-2.6.0/lib/native

25
निर्यात HADOOP_OPTS = "- Djava.library.path = $ HADOOP_HOME / lib / देशी"
Searene

1
मुझे लगता है, दो समाधान समान हैं। डॉक्टर के अनुसार , java.library.path पुस्तकालयों को लोड करते समय खोज करने के लिए रास्तों की एक सूची है। ताकि, आप jw कमांड लाइन में LD_LIBRARY_PATH या उपयोग -D विकल्प निर्यात कर सकें । जावा कमांड लाइन में, और -D <प्रॉपर्टी> = मान हमें सिस्टम प्रॉपर्टी वैल्यू सेट करने की अनुमति देते हैं।
होई-थू वुंग

54

जवाब निर्भर करता है ... मैंने 64-बिट CentOS 6.6 पर टारबॉल से सिर्फ Hadoop 2.6 स्थापित किया। Hadoop स्थापित वास्तव में एक पूर्वनिर्मित 64-बिट देशी पुस्तकालय के साथ आया था। मेरी स्थापना के लिए, यह यहाँ है:

/opt/hadoop/lib/native/libhadoop.so.1.0.0

और मुझे पता है कि यह 64-बिट है:

[hadoop@VMWHADTEST01 native]$ ldd libhadoop.so.1.0.0
./libhadoop.so.1.0.0: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./libhadoop.so.1.0.0)
linux-vdso.so.1 =>  (0x00007fff43510000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f9be553a000)
libc.so.6 => /lib64/libc.so.6 (0x00007f9be51a5000)
/lib64/ld-linux-x86-64.so.2 (0x00007f9be5966000)

दुर्भाग्य से, मैंने बेवकूफी से उस जवाब को अनदेखा कर दिया, जिसमें वह मुझे घूर रहा था, क्योंकि मैं इस पर ध्यान केंद्रित कर रहा था, "क्या यह लाइब्रेरी 64 पीआर बिट है?":

`GLIBC_2.14' not found (required by ./libhadoop.so.1.0.0)

तो, सबक सीखा। वैसे भी, बाकी लोगों ने कम से कम मुझे चेतावनी को दबाने में सक्षम होने के लिए प्रेरित किया। इसलिए मैंने जारी रखा और HADOOP_OPTS पर्यावरण चर का उपयोग करने के लिए पुस्तकालय पथ प्रदान करने के लिए अन्य उत्तरों में अनुशंसित सब कुछ किया, कोई फायदा नहीं हुआ। इसलिए मैंने सोर्स कोड देखा। मॉड्यूल जो त्रुटि उत्पन्न करता है वह आपको संकेत बताता है ( use.NativeCodeLoader ):

15/06/18 18:59:23 WARN util.NativeCodeLoader: Unable to load native-hadoop    library for your platform... using builtin-java classes where applicable

इसलिए, यह देखने के लिए यहां क्लिक करें कि यह क्या करता है:

http://grepcode.com/file/repo1.maven.org/maven2/com.ning/metrics.action/0.2.6/org/apache/hadoop/util/NativeCodeLoader.java/

आह, कुछ डिबग लेवल लॉगिंग है - आइए इसे देखें कि क्या हमें कुछ अतिरिक्त मदद मिलती है। यह $ HADOOP_CONF_DIR / log4j.properties फ़ाइल में निम्न पंक्ति जोड़कर किया जाता है:

log4j.logger.org.apache.hadoop.util.NativeCodeLoader=DEBUG

फिर मैंने एक कमांड चलाई, जो मूल चेतावनी को रोकती है, जैसे- stops.sh, और यह गुडी मिली:

15/06/18 19:05:19 DEBUG util.NativeCodeLoader: Failed to load native-hadoop with error: java.lang.UnsatisfiedLinkError: /opt/hadoop/lib/native/libhadoop.so.1.0.0: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /opt/hadoop/lib/native/libhadoop.so.1.0.0)

और जवाब डिबग संदेश के इस स्निपेट में पता चला है (वही बात जो पिछले ldd कमांड ने "बताने की कोशिश की":

`GLIBC_2.14' not found (required by opt/hadoop/lib/native/libhadoop.so.1.0.0)

मेरे पास GLIBC का कौन सा संस्करण है? यहां जानिए आसान ट्रिक:

[hadoop@VMWHADTEST01 hadoop]$ ldd --version
ldd (GNU libc) 2.12

इसलिए, मेरे OS को 2.14 में अपडेट नहीं कर सकता। केवल समाधान मेरे ओएस पर स्रोतों से देशी पुस्तकालयों का निर्माण करना है या चेतावनी को दबा देना है और अभी के लिए इसे अनदेखा करें। मैंने अभी के लिए कष्टप्रद चेतावनी को दबाने का विकल्प चुना (लेकिन भविष्य में स्रोतों से निर्माण की योजना बनाएं) उसी लॉगिंग विकल्प का उपयोग करके खरीदें, जिसे हम डिबग संदेश प्राप्त करने के लिए उपयोग करते थे, अब के अलावा, बस इसे ERROR स्तर बनाते हैं।

log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR

मुझे उम्मीद है कि यह दूसरों को यह देखने में मदद करता है कि ओपन सोर्स सॉफ़्टवेयर का एक बड़ा लाभ यह है कि यदि आप कुछ सरल तार्किक कदम उठाते हैं तो आप इस सामान का पता लगा सकते हैं।


4
इस सुन्दर विस्तृत उत्तर के लिए धन्यवाद सर। मुझे अपना जवाब मिल गया और इस प्रक्रिया में कुछ मूल्यवान (कुछ काम) सीखा।
dogwynn

26

मेरी भी यही समस्या थी। यह निम्नलिखित पंक्तियों को जोड़कर हल किया गया है .bashrc:

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

5
मुझे HADOOP_OPTS मूल्य में "/ देशी" जोड़ना था
आल्हा 'अलनज्जर

21

मेरे 64 बिट लिनक्स टकसाल ओएस पर हडअप का निर्माण करने के बाद, मेरे मामले में, मैंने देशी पुस्तकालय को बदल दिया hadoop/lib। फिर भी समस्या बनी रहती है। तब मुझे पता लगा कि हडूप ने hadoop/libनहीं करने का इशारा किया hadoop/lib/native। इसलिए मैंने सिर्फ मूल पुस्तकालय से लेकर इसके मूल तक सभी सामग्री को स्थानांतरित कर दिया। और चेतावनी बस चली गई।


मैं सिर्फ नेट पर सब कुछ करने की कोशिश की है। मैं थक गया और सिर्फ लिबर फोल्डर में ही सारी फाइलें खाली कर दीं। अंत में मुझे नहीं पता कि आपके द्वारा किए गए डाउनवोट्स के बावजूद मैंने आपके सुझाव की कोशिश की और यह एक जबरदस्त संघर्ष के बाद काम किया, जो मैंने इस सब के पीछे एक दिन के लिए रखा था। इससे कोई फर्क नहीं पड़ता था कि क्या मैंने देशी लाइब्रेरी स्थान को .bashrc में बदल दिया है। or hadoop-env.sh एक टन धन्यवाद।
अक्षय हजारी

मैं थक गया और बस सभी मूल फ़ोल्डर फ़ाइलों को लिबर फोल्डर में ही खाली कर दिया, यानी ऊपर दिए गए उत्तर में दिए गए लिंक का उपयोग करके संकलित किया गया (नई हडॉप-2.4.0-src.tar.gz में देशी फ़ोल्डर।)
हजारी।

15

यह भी काम करेगा:

export LD_LIBRARY_PATH=/usr/lib/hadoop/lib/native

1
धन्यवाद। यदि आप tomcat apr का उपयोग करने के लिए LD_LIBRARY_PATH को ओवरराइड करते हैं, तो बस hadoop देशी पथ को 'निर्यात LD_LIBRARY_PATH = $ LD_LIBRARY_PATH: / usb / lib / libup / lib / native के रूप में जोड़ें।
एरिक

यह केवल मेरे लिए समाधान का काम करता है। (अन्य सभी उत्तरों की कोशिश की)।
सेलफिश009

13

कोटि द्वारा सुझाए गए निरंतर शोध के बाद इस मुद्दे को हल किया गया।

hduser@ubuntu:~$ cd /usr/local/hadoop

hduser@ubuntu:/usr/local/hadoop$ ls

bin  include  libexec      logs        README.txt  share
etc  lib      LICENSE.txt  NOTICE.txt  sbin

hduser@ubuntu:/usr/local/hadoop$ cd lib

hduser@ubuntu:/usr/local/hadoop/lib$ ls
native

hduser@ubuntu:/usr/local/hadoop/lib$ cd native/

hduser@ubuntu:/usr/local/hadoop/lib/native$ ls

libhadoop.a       libhadoop.so        libhadooputils.a  libhdfs.so
libhadooppipes.a  libhadoop.so.1.0.0  libhdfs.a         libhdfs.so.0.0.0

hduser@ubuntu:/usr/local/hadoop/lib/native$ sudo mv * ../

चियर्स


11

होमब्रे के माध्यम से स्थापित Hadoop वाले OSX के लिए, पथ और Hadoop संस्करण की जगह जहाँ उचित हो, इन चरणों का पालन करें

wget http://www.eu.apache.org/dist/hadoop/common/hadoop-2.7.1/hadoop-2.7.1-src.tar.gz
tar xvf hadoop-2.7.1-src.tar.gz
cd hadoop-2.7.1-src
mvn package -Pdist,native -DskipTests -Dtar
mv lib /usr/local/Cellar/hadoop/2.7.1/

उसके बाद hasoop-env.sh को अपडेट करें

export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true -Djava.security.krb5.realm= -Djava.security.krb5.kdc= -Djava.library.path=/usr/local/Cellar/hadoop/2.7.1/lib/native"

धन्यवाद फिलिप। इस समाधान सही काम किया। मेरे मामले में, ऑल I की जरूरत थी विकल्प Djava.library.path। मुझे इसी की तो तलाश थी। धन्यवाद!!!
arcee123

बहुत बहुत धन्यवाद। मेरे पास bzip2 है: मिथ्या, खुलता है: गलत निर्माण खुलता का समर्थन नहीं करता है। दूसरों को दिखाने का रास्ता है। कोई सुझाव।
गगोरंटल

11
export JAVA_HOME=/home/hadoop/software/java/jdk1.7.0_80
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_COMMON_LIB_NATIVE_DIR"

8

@zhutoulala - FWIW आपके लिंक ने मेरे लिए Hadoop 2.4.0 के साथ काम किया, एक अपवाद के साथ मुझे मावेन को यह बताना था कि वे javadocs का निर्माण न करें। मैंने 2.4.0 के लिए पहले लिंक में पैच का उपयोग किया और यह ठीक काम किया। यहाँ मावेन कमांड मुझे जारी करना था

mvn package -Dmaven.javadoc.skip=true -Pdist,native -DskipTests -Dtar

इसे बनाने और पुस्तकालयों को स्थानांतरित करने के बाद, hadoop-env.sh को अपडेट करना न भूलें :)

सोचा कि यह मेरी मदद कर सकता है जो मेरे समान बाधाओं में भाग गया


5

अपनी संकलित मूल लाइब्रेरी फ़ाइलों को $HADOOP_HOME/libफ़ोल्डर में ले जाएं ।

फिर .bashrcफ़ाइल को संपादित करके अपने पर्यावरण चर सेट करें

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib  
export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=$HADOOP_HOME/lib"

सुनिश्चित करें कि आपकी संकलित मूल लाइब्रेरी फ़ाइलें $HADOOP_HOME/libफ़ोल्डर में हैं।

यह काम करना चाहिए।


2
export HADOOP_HOME=/home/hadoop/hadoop-2.4.1  
export PATH=$HADOOP_HOME/bin:$PATH  
export HADOOP_PREFIX=$HADOOP_HOME  
export HADOOP_COMMON_HOME=$HADOOP_PREFIX  
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_PREFIX/lib/native  
export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop  
export HADOOP_HDFS_HOME=$HADOOP_PREFIX  
export HADOOP_MAPRED_HOME=$HADOOP_PREFIX  
export HADOOP_YARN_HOME=$HADOOP_PREFIX  
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH

हां, आपको हडूप संसाधन के माध्यम से 64 बिट्स / देशी को फिर से भरना चाहिए।
कुनबेटर

2

यह पंक्ति यहीं है:

export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH

कुन्बेटर के जवाब से, मेरे लिए काम किया। बस इसे .bashrc फ़ाइल में जोड़ें और .bashrc सामग्री पुनः लोड करें

$ source ~/.bashrc

मैं अपने स्थानीय सिस्टम में हडूप-2.6.0 संस्करण का उपयोग कर रहा हूं। मैं भी उसी मुद्दे का सामना कर रहा था। फिर मैंने हडूप-2.7.1-src डाउनलोड किया और बाइनरी और नेटिव लाइब्रेरीज़ का निर्माण किया, साथ ही नए बनाए गए नेटिव्स के साथ देशी लाइब्रेरीज़ हडॉप-2.6.0 को बदल दिया। लेकिन फिर भी मुझे वही त्रुटियां हो रही थीं। तब मैंने export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATHऔर यह मेरे लिए काम किया।
ParagFlume

1

यह पंक्ति यहीं है:

export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH

कुनबेटर के जवाब से कि पैसा कहां है


मेरे मामले में मुझे दोनों की जरूरत थी: export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH और export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native:$LD_LIBRARY_PATH
19

1

मुझे JDK6 के साथ भी यही समस्या थी, मैंने JDK को JDK8 में बदल दिया, समस्या हल हो गई। JDK8 का उपयोग करने की कोशिश करो !!!


1

@Zhutoulala स्वीकृत उत्तर के अलावा, यह ARMHF प्लेटफार्मों (रास्पबेरी पाई 3 मॉडल बी) पर नवीनतम स्थिर संस्करण (2.8) के साथ काम करने के लिए एक अद्यतन है। पहले मैं पुष्टि कर सकता हूं कि आपको 64 बिट एआरएम में देशी पुस्तकालयों को फिर से भरना होगा, कुछ पर्यावरण चर सेट करने के आधार पर अन्य उत्तर यहां काम नहीं करेंगे। जैसा कि Hadoop प्रलेखन में संकेत दिया गया है, पूर्व-निर्मित देशी पुस्तकालय 32 बिट हैं।

मुट्ठी लिंक ( http://www.ercoppa.org/posts/how-to-compile-apache-hadoop-on-ubuntu-linux.html ) में दिए गए उच्च स्तर के कदम सही हैं। इस url पर http://www.instructables.com/id/Native-Hadoop-260-Build-on-Pi/ आप रास्पबेरी पाई के लिए विशिष्ट विवरण प्राप्त करते हैं, लेकिन Hadoop संस्करण 2.8 के लिए नहीं।

यहाँ मेरे संकेत हैं Hadoop 2.8 डालना:

  • अभी भी नवीनतम रास्पियन पर कोई प्रोटोबॉफ पैकेज नहीं है, इसलिए आपको इसे स्वयं संकलित करना होगा और संस्करण बिल्कुल प्रोटोबुफ 2.5 ( https://protobuf.googlecode.com/files/protobuf-2.5.0.tar.gz ) पर होना चाहिए
  • CMake फ़ाइल पैचिंग विधि बदलनी चाहिए। इसके अलावा, पैच करने के लिए फ़ाइलें समान नहीं हैं। दुर्भाग्यवश, JIRA पर 2.8 के लिए कोई स्वीकृत पैच नहीं है। इस URL ( https://issues.apache.org/jira/browse/HADOOP-9320 ) पर आपको अपने नामीनोड पर एंड्रियास मुट्सशेलेर प्रस्तावित पैच को कॉपी और पेस्ट करना होगा:

    :hadoop-2.8.0-src/hadoop-common-project/hadoop-common $ touch HADOOP-9320-v2.8.patch
    :hadoop-2.8.0-src/hadoop-common-project/hadoop-common $ vim HADOOP-9320-v2.8.patch
    #copy and paste proposed patch given here : https://issues.apache.org/jira/browse/HADOOP-9320?focusedCommentId=16018862&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16018862
    :hadoop-2.8.0-src/hadoop-common-project/hadoop-common $ patch < HADOOP-9320-v2.8.patch
    patching file HadoopCommon.cmake
    patching file HadoopJNI.cmake
    :hadoop-2.8.0-src/hadoop-common-project/hadoop-common $ cd ../..
    :hadoop-2.8.0-src $ sudo mvn package -Pdist,native -DskipTests -Dtar

एक बार निर्माण सफल होने के बाद:

    :hadoop-2.8.0-src/hadoop-dist/target/hadoop-2.8.0/lib/native $ tar -cvf nativelibs.tar *

और इस संग्रह की सामग्री के साथ अपने Hadoop के lib / देशी निर्देशिका की सामग्री को प्रतिस्थापित करें। Hadoop को चलाते समय चेतावनी संदेश गायब हो जाना चाहिए।


0

Hadoop स्थापित करने के लिए यह बहुत आसान है Cloudera से मुक्त संस्करण स्थापित करना। यह एक अच्छा GUI है जो नोड्स को जोड़ने के लिए सरल बनाता है, निर्भरता के आसपास कोई संकलन या भराई नहीं है, यह हाइव, सुअर आदि जैसे सामान के साथ आता है।

http://www.cloudera.com/content/support/en/downloads.html

चरण हैं: 1) डाउनलोड 2) इसे चलाएं 3) वेब पर जाएं GUI (1.2.3.4:7180) 4) वेब गु में अतिरिक्त नोड्स जोड़ें (अन्य नोड्स पर क्लाउड सॉफ़्टवेयर स्थापित न करें, यह आपके लिए यह सब करता है) 5) वेब GUI में होम पर जाएं, Hue और Hue Web UI पर क्लिक करें। इससे आपको Hive, Pig, Sqoop आदि की सुविधा मिलती है।


कई संस्करणों के लिए उपलब्ध वर्तमान संस्करणों के पीछे कई बार क्लोउडर वितरण होता है। यदि आप "नवीनतम और सबसे बड़ा" चाहते हैं, तो अपाचे
हडोप्प

0

पहले की पोस्टिंग से सत्यापित उपाय:

1) जाँच की कि libhadoop.so.1.0.0Hadoop वितरण के साथ भेज दिया मेरी मशीन वास्तुकला के लिए संकलित किया गया था, जो x86_64 है:

[nova]:file /opt/hadoop-2.6.0/lib/native/libhadoop.so.1.0.0
/opt/hadoop-2.6.0/lib/native/libhadoop.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=3a80422c78d708c9a1666c1a8edd23676ed77dbb, not stripped

2) जोड़ा गया -Djava.library.path=<path>के लिए HADOOP_OPTमें hadoop-env.sh:

export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true -Djava.library.path=/opt/hadoop-2.6.0/lib/native"

इससे वास्तव में कष्टप्रद चेतावनी गायब हो गई।


0

सबसे पहले: आप glibc version.CentOS को सुरक्षित रूप से सुरक्षित रूप से प्रदान कर सकते हैं, इसका अर्थ यह है कि संस्करण glibc, protobuf जैसे पुराने हैं ...

ldd --version
ldd /opt/hadoop/lib/native/libhadoop.so.1.0.0

आप आवश्यक ग्लिबक के साथ वर्तमान ग्लिब के संस्करण की तुलना कर सकते हैं।

दूसरी बात: यदि वर्तमान ग्लिबक का संस्करण पुराना है, तो आप ग्लिबक को अपडेट कर सकते हैं। डाउनलॉड ग्लिबक

यदि वर्तमान ग्लिबेक आईडी का संस्करण सही है, तो आप अपने HADOOP_OPTS के लिए मूल शब्द को जोड़ सकते हैं

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

0

मैं CentOS का उपयोग नहीं कर रहा हूँ। यहाँ मेरे पास उबंटू में 16.04.2, hadoop-2.7.3, jdk1.8.0_121 है। रन प्रारंभ- पीडीएफ या स्टॉप- पीडीएफ सफलतापूर्वक w / o त्रुटि:

# JAVA env
#
export JAVA_HOME=/j01/sys/jdk
export JRE_HOME=/j01/sys/jdk/jre

export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:${PATH}:.

# HADOOP env
#
export HADOOP_HOME=/j01/srv/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

बदलें / j01 / sys / jdk, / j01 / srv / hadoop अपने स्थापना पथ के साथ

मैंने उबंटू पर एक बार के सेटअप के लिए निम्नलिखित भी किया, जो स्टार्ट-एफडीएस को चलाने पर कई बार पासवर्ड दर्ज करने की आवश्यकता को समाप्त करता है:

sudo apt install openssh-server openssh-client
ssh-keygen -t rsa
ssh-copy-id user@localhost

उपयोगकर्ता को अपने उपयोगकर्ता नाम से बदलें


0

असल में, यह कोई त्रुटि नहीं है, यह हडोप क्लस्टर में एक चेतावनी है। यहाँ हम पर्यावरण चर को अद्यतन करते हैं।

निर्यात HADOOP_OPTS = "$ HADOOP_OPTS" -java.library.path = / usr / स्थानीय / हडूप / लिब
 निर्यात HADOOP_COMMON_LIB_NATIVE_DIR = "/ usr / स्थानीय / हडूप / स्थानीय / अन्य
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.