Hadoop-Warnung "Native-Hadoop-Bibliothek für Plattform kann nicht geladen werden"

269

Ich konfiguriere derzeit Hadoop auf einem Server, auf dem CentOs ausgeführt werden . Wenn ich start-dfs.shoder stop-dfs.shstarte, wird folgende Fehlermeldung angezeigt:

WARN util.NativeCodeLoader: Native-Hadoop-Bibliothek für Ihre Plattform kann nicht geladen werden. Verwenden Sie gegebenenfalls integrierte Java-Klassen

Ich verwende Hadoop 2.2.0.

Bei einer Online-Suche wurde der folgende Link aufgerufen : http://balanceandbreath.blogspot.ca/2013/01/utilnativecodeloader-unable-to-load.html

Der Inhalt des /native/Verzeichnisses auf hadoop 2.x scheint jedoch unterschiedlich zu sein, sodass ich nicht sicher bin, was ich tun soll.

Ich habe auch diese beiden Umgebungsvariablen hinzugefügt in hadoop-env.sh:

export HADOOP_OPTS = "$ HADOOP_OPTS -Djava.library.path = / usr / local / hadoop / lib /"

export HADOOP_COMMON_LIB_NATIVE_DIR = "/ usr / local / hadoop / lib / native /"

Irgendwelche Ideen?

Olshansk
quelle
3
Zur Durchsuchbarkeit: Dieses Problem gilt zumindest auch für Hadoop 2.4.0, Hadoop 2.4.1 und wahrscheinlich auch für andere Versionen.
Greg Dubicki
Die Dokumentation zur Verwendung nativer Bibliotheken finden Sie unter hadoop.apache.org/docs/current/hadoop-project-dist/…
James Moore,

Antworten:

227

Ich gehe davon aus, dass Sie Hadoop unter 64-Bit-CentOS ausführen. Der Grund, warum Sie diese Warnung gesehen haben, ist, dass die native Hadoop-Bibliothek $HADOOP_HOME/lib/native/libhadoop.so.1.0.0tatsächlich auf 32 Bit kompiliert wurde.

Auf jeden Fall ist es nur eine Warnung und hat keinen Einfluss auf die Funktionen von Hadoop.

Wenn Sie diese Warnung entfernen möchten, laden Sie den Quellcode von Hadoop herunter, kompilieren Sie ihn libhadoop.so.1.0.0auf einem 64-Bit-System neu und ersetzen Sie den 32-Bit-System.

Hier finden Sie Schritte zum Neukompilieren des Quellcodes für Ubuntu:

Viel Glück.

zhutoulala
quelle
7
Funktioniert bei mir nicht Gibt mir das gleiche. Native-Hadoop-Bibliothek kann für Ihren Plattformfehler nicht geladen werden.
Akshay Hazari
7
Auch wenn dies nicht genau funktioniert, ist es dennoch hilfreich. Wird sich dies überhaupt auf die Leistung auswirken?
WattsInABox
1
Ich verwende den gleichen Hadoop 2.5.0 Teer für Centos 7 und Centos 6.5. Beide sind 64-Bit-Betriebssysteme. Es gibt keine solche Warnung auf Centos7, aber Centos 6.5 gibt mir diese Warnung, warum?
Sandip Divekar
Vielen Dank. Mir war nicht klar, dass es eine Warnung ist. Tatsächlich heißt es "Startnameknoten" und der letzte Satz lautet "Native-Hadoop kann nicht geladen werden ...", was Angst verursachte.
Kaushik Lele
Beachten Sie, dass Sie nicht den gesamten Hadoop kompilieren müssen, wie in den Anweisungen angegeben - hadoop-common-project/hadoop-commonund dies hadoop-hdfs-project/hadoop-hdfsreicht aus.
Greg Dubicki
152

Hängen Sie einfach Wort nativer zu Ihrem HADOOP_OPTSwie folgt aus :

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

PS: Danke Searene

Hoai-Thu Vuong
quelle
Das hat es auch für mich getan. Unter Ubuntu mit Hadoop 2.6 war der Pfad /home/user/hadoop-2.6.0/lib/native
pelazem
25
export HADOOP_OPTS = "- Djava.library.path = $ HADOOP_HOME / lib / native"
Searene
1
Ich denke, zwei Lösungen sind gleich. Laut doc ist java.library.path eine Liste von Pfaden, die beim Laden der Bibliotheken durchsucht werden müssen. Damit können Sie LD_LIBRARY_PATH exportieren oder die Option -D in der Java-Befehlszeile verwenden. In der Java-Befehlszeile können Sie mit -D <Eigenschaft> = Wert einen Systemeigenschaftswert festlegen.
Hoai-Thu Vuong
54

Die Antwort hängt davon ab ... Ich habe gerade Hadoop 2.6 von Tarball auf 64-Bit CentOS 6.6 installiert. Die Hadoop-Installation wurde tatsächlich mit einer vorgefertigten nativen 64-Bit-Bibliothek geliefert. Für meine Installation ist es hier:

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

Und ich weiß, dass es 64-Bit ist:

[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)

Leider habe ich die Antwort genau dort dumm übersehen und mich ins Gesicht gestarrt, als ich mich darauf konzentrierte: "Ist diese Bibliothek 32 pr 64 Bit?":

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

Also, Lektion gelernt. Wie auch immer, der Rest hat mich zumindest dazu gebracht, die Warnung unterdrücken zu können. Also fuhr ich fort und tat alles, was in den anderen Antworten empfohlen wurde, um den Bibliothekspfad unter Verwendung der Umgebungsvariablen HADOOP_OPTS ohne Erfolg bereitzustellen. Also habe ich mir den Quellcode angesehen. Das Modul, das den Fehler generiert, gibt Ihnen den Hinweis ( util.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

Also, auf nach hier, um zu sehen, was es tut:

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

Ah, es gibt eine Protokollierung auf Debug-Ebene - lassen Sie uns diese aktivieren, um zu sehen, ob wir zusätzliche Hilfe erhalten. Dazu fügen Sie der Datei $ HADOOP_CONF_DIR / log4j.properties die folgende Zeile hinzu:

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

Dann habe ich einen Befehl ausgeführt, der die ursprüngliche Warnung generiert, wie stop-dfs.sh, und diesen Goodie erhalten:

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)

Und die Antwort wird in diesem Ausschnitt der Debug-Nachricht enthüllt (dasselbe, was der vorherige ldd-Befehl 'versucht' hat, mir zu sagen:

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

Welche Version von GLIBC habe ich? Hier ist ein einfacher Trick, um dies herauszufinden:

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

Ich kann mein Betriebssystem also nicht auf 2.14 aktualisieren. Die einzige Lösung besteht darin, die nativen Bibliotheken aus Quellen auf meinem Betriebssystem zu erstellen oder die Warnung zu unterdrücken und sie vorerst einfach zu ignorieren. Ich habe mich dafür entschieden, die nervige Warnung vorerst nur zu unterdrücken (aber ich plane, in Zukunft aus Quellen zu bauen). Ich kaufe mit denselben Protokollierungsoptionen, die wir zum Abrufen der Debug-Meldung verwendet haben, außer jetzt, mache sie einfach auf ERROR-Level.

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

Ich hoffe, dies hilft anderen zu erkennen, dass ein großer Vorteil von Open Source-Software darin besteht, dass Sie dieses Zeug herausfinden können, wenn Sie einige einfache logische Schritte unternehmen.

Chromeeagle
quelle
4
Vielen Dank, Sir, für diese sehr detaillierte Antwort. Ich bekam meine Antwort und lernte dabei etwas Wertvolles (ein paar Dinge).
Dogwynn
26

Ich hatte das gleiche Problem. Es wird gelöst, indem folgende Zeilen hinzugefügt werden .bashrc:

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
Neeraj
quelle
5
Ich musste "/ native" zum HADOOP_OPTS-Wert hinzufügen
Ala 'Alnajjar
21

In meinem Fall habe ich nach dem Erstellen von hadoop auf meinem 64-Bit-Linux-Mint-Betriebssystem die native Bibliothek in ersetzt hadoop/lib. Trotzdem bleibt das Problem bestehen. Dann fand ich heraus, dass der Hadoop hadoop/libnicht auf den zeigte hadoop/lib/native. Also habe ich einfach den gesamten Inhalt von der nativen Bibliothek in die übergeordnete verschoben. Und die Warnung ist einfach weg.

Koti
quelle
Ich habe gerade alles im Netz ausprobiert. Ich wurde müde und leerte einfach alle Dateien im lib-Ordner selbst, dh diejenigen, die mit den in der obigen Antwort angegebenen Links kompiliert wurden. Schließlich weiß ich nicht, warum ich trotz der Abstimmungen, die Sie erhalten haben, Ihren Vorschlag ausprobiert habe und er nach einem enormen Kampf, den ich für einen Tag hinter mir gelassen habe, funktioniert hat. Es war egal, ob ich den Speicherort der nativen Bibliothek in .bashrc geändert habe oder hadoop-env.sh. Vielen Dank.
Akshay Hazari
Ich wurde müde und leerte einfach alle nativen Ordnerdateien im lib-Ordner selbst, dh diejenigen, die unter Verwendung der in der obigen Antwort angegebenen Links kompiliert wurden (nativer Ordner im neuen hadoop-2.4.0-src.tar.gz.)
Akshay Hazari
15

Das würde auch funktionieren:

export LD_LIBRARY_PATH=/usr/lib/hadoop/lib/native
Kalyan Ghosh
quelle
1
Vielen Dank. Wenn Sie LD_LIBRARY_PATH überschreiben, um tomcat apr zu verwenden, fügen Sie einfach den nativen Pfad von hadoop als `export LD_LIBRARY_PATH = $ LD_LIBRARY_PATH: / usr / lib / hadoop / lib / native hinzu.
Eric
Das funktioniert nur bei mir. (versuchte alle anderen Antworten).
Segelfisch009
13

Nach einer kontinuierlichen Recherche, wie von KotiI vorgeschlagen, wurde das Problem gelöst.

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 * ../

Prost

Nagarjuna DN
quelle
11

Befolgen Sie für Benutzer unter OSX, auf denen Hadoop über Homebrew installiert ist, die folgenden Schritte, indem Sie den Pfad und gegebenenfalls die Hadoop-Version ersetzen

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/

dann aktualisiere hadoop-env.sh mit

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"
Philip O'Brien
quelle
Danke Philip. Diese Lösung hat perfekt funktioniert. In meinem Fall brauchte ich nur die Option Djava.library.path. Genau das habe ich gesucht. Vielen Dank!!!
Arcee123
Vielen Dank. Ich habe bzip2: false, openssl: false build unterstützt openssl nicht. Die anderen haben einen Pfad, der sich zeigt. Irgendwelche Vorschläge.
Ggorantl
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"
li li
quelle
8

@zhutoulala - FWIW Ihre Links funktionierten für mich mit Hadoop 2.4.0, mit einer Ausnahme musste ich maven sagen, dass er die Javadocs nicht bauen soll. Ich habe auch den Patch im ersten Link für 2.4.0 verwendet und es hat gut funktioniert. Hier ist der Maven-Befehl, den ich ausgeben musste

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

Vergessen Sie nach dem Erstellen und Verschieben der Bibliotheken nicht, hadoop-env.sh zu aktualisieren :)

Ich dachte, das könnte jemandem helfen, der auf die gleichen Straßensperren wie ich stößt

user2229544
quelle
5

Verschieben Sie Ihre kompilierten nativen Bibliotheksdateien in einen $HADOOP_HOME/libOrdner.

Legen Sie dann Ihre Umgebungsvariablen fest, indem Sie die .bashrcDatei bearbeiten

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

Stellen Sie sicher, dass sich Ihre kompilierten nativen Bibliotheksdateien im $HADOOP_HOME/libOrdner befinden.

es sollte funktionieren.

Vijayakumar
quelle
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
KunBetter
quelle
Ja, Sie sollten 64bit lib / native über die Hadoop-Ressource neu kompilieren müssen.
KunBetter
2

Diese Zeile hier:

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

Nach KunBetters Antwort hat es für mich funktioniert. Hängen Sie es einfach an die .bashrc-Datei an und laden Sie den .bashrc-Inhalt neu

$ source ~/.bashrc
BeingSachin
quelle
Ich verwende die Version hadoop-2.6.0 in meinem lokalen System. Ich stand auch vor dem gleichen Problem. Dann habe ich das hadoop-2.7.1-src heruntergeladen und binäre und native Bibliotheken erstellt. Außerdem habe ich die nativen Bibliotheken hadoop-2.6.0 durch die neu erstellten natives ersetzt. Trotzdem bekam ich die gleichen Fehler. Dann haben ich export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATHund es bei mir funktioniert.
ParagFlume
1

Diese Zeile hier:

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

Aus KunBetters Antwort geht hervor, wo das Geld ist

Tom Kelly
quelle
In meinem Fall brauchte ich beides: export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH und export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native:$LD_LIBRARY_PATH
borice
1

Ich hatte das gleiche Problem mit JDK6, ich habe das JDK in JDK8 geändert, das Problem wurde gelöst. Versuchen Sie, JDK8 zu verwenden !!!

MangoJo
quelle
1

Zusätzlich zu der von @zhutoulala akzeptierten Antwort gibt es hier ein Update, damit es mit der neuesten stabilen Version (2.8) auf ARMHF-Plattformen (Raspberry Pi 3 Modell B) funktioniert. Zuerst kann ich bestätigen, dass Sie native Bibliotheken auf 64-Bit-ARM neu kompilieren müssen. Andere Antworten, die hier auf dem Festlegen einiger Umgebungsvariablen basieren, funktionieren nicht. Wie in der Hadoop-Dokumentation angegeben, sind die vorgefertigten nativen Bibliotheken 32-Bit.

Die im ersten Link ( http://www.ercoppa.org/posts/how-to-compile-apache-hadoop-on-ubuntu-linux.html ) angegebenen Schritte auf hoher Ebene sind korrekt. Unter dieser URL http://www.instructables.com/id/Native-Hadoop-260-Build-on-Pi/ erhalten Sie weitere Details zu Raspberry Pi, jedoch nicht zu Hadoop Version 2.8.

Hier sind meine Hinweise für Hadoop 2.8:

  • Es gibt noch kein Protobuf-Paket auf dem neuesten Raspbian, daher müssen Sie es selbst kompilieren und die Version muss genau Protobuf 2.5 sein ( https://protobuf.googlecode.com/files/protobuf-2.5.0.tar.gz ).
  • Die Patch-Methode für CMake-Dateien muss geändert werden. Außerdem sind zu patchende Dateien nicht gleich. Leider gibt es auf JIRA keinen akzeptierten Patch für 2.8. Unter dieser URL ( https://issues.apache.org/jira/browse/HADOOP-9320 ) müssen Sie den von Andreas Muttscheller vorgeschlagenen Patch kopieren und in Ihren Namensknoten einfügen:

    :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

Sobald der Build erfolgreich ist:

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

Ersetzen Sie den Inhalt des Verzeichnisses lib / native Ihrer Hadoop-Installation durch den Inhalt dieses Archivs. Die Warnmeldung beim Ausführen von Hadoop sollte verschwinden.

mattt
quelle
0

Für die Installation von Hadoop ist es soooooo viel einfacher, die kostenlose Version von Cloudera zu installieren. Es kommt mit einer schönen GUI, die es einfach macht, Knoten hinzuzufügen, es gibt kein Kompilieren oder Stöbern mit Abhängigkeiten, es kommt mit Sachen wie Bienenstock, Schwein usw.

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

Schritte sind: 1) Download 2) Führen Sie es aus 3) Gehen Sie zur Web-GUI (1.2.3.4:7180) 4) Fügen Sie zusätzliche Knoten in der Web-GUI hinzu (installieren Sie die Cloudera-Software NICHT auf anderen Knoten, sie erledigt alles für Sie). 5) Gehen Sie in der Web-GUI zu Home und klicken Sie auf Hue und Hue Web UI. Dies gibt Ihnen Zugang zu Hive, Pig, Sqoop usw.

MikeKulls
quelle
Cloudera-Distributionen liegen oft hinter den aktuellen Versionen zurück, die für viele der Pakete verfügbar sind. Wenn Sie "neueste und
beste
0

Verifiziertes Mittel aus früheren Beiträgen:

1) Überprüft, ob die libhadoop.so.1.0.0mit der Hadoop-Distribution gelieferte Version für meine Maschinenarchitektur kompiliert wurde, die x86_64 lautet:

[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) hinzugefügt , -Djava.library.path=<path>um HADOOP_OPTin hadoop-env.sh:

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

Dies ließ die nervige Warnung tatsächlich verschwinden.

piiteraq
quelle
0

Erstens: Sie können die glibc-Version ändern. CentOS bietet gelegentlich sichere Software. Dies bedeutet auch, dass die Version alt ist, z. B. glibc, protobuf ...

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

Sie können die Version des aktuellen Glibc mit dem benötigten Glibc vergleichen.

Zweitens: Wenn die Version des aktuellen Glibc alt ist, können Sie den Glibc aktualisieren. Downloaden Sie Glibc

Wenn die Version der aktuellen glibc-ID richtig ist, können Sie ein Wort an Ihr HADOOP_OPTS anhängen

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
Qidong Wang
quelle
0

Ich benutze kein CentOS. Folgendes habe ich in Ubuntu 16.04.2, hadoop-2.7.3, jdk1.8.0_121. Führen Sie start-dfs.sh oder stop-dfs.sh ohne Fehler erfolgreich aus:

# 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

Ersetzen Sie / j01 / sys / jdk, / j01 / srv / hadoop durch Ihren Installationspfad

Ich habe auch das folgende einmalige Setup unter Ubuntu durchgeführt, wodurch die Notwendigkeit, beim Ausführen von start-dfs.sh mehrmals Kennwörter einzugeben, entfällt:

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

Ersetzen Sie den Benutzer durch Ihren Benutzernamen

Jonathan L.
quelle
0

Grundsätzlich handelt es sich nicht um einen Fehler, sondern um eine Warnung im Hadoop-Cluster. Hier aktualisieren wir nur die Umgebungsvariablen.

export HADOOP_OPTS = "$ HADOOP_OPTS" -Djava.library.path = / usr / local / hadoop / lib
 export HADOOP_COMMON_LIB_NATIVE_DIR = "/ usr / local / hadoop / lib / native"
Spandana r
quelle