UnbefriedigterLinkError (NativeIO $ Windows.access0) beim Übermitteln von mapreduce-Auftrag an hadoop 2.2 von Windows an ubuntu

9

Ich sende meine mapreduce-Jobs von einer Java-Anwendung, die unter Windows läuft, an den Hadoop-2.2-Cluster, der auf ubuntu läuft. In Hadoop 1.x funktionierte das wie erwartet, aber auf Hadoop 2.2 erhalte ich einen seltsamen Fehler:

java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.native.NativeIO $ Windows.access0 (Ljava / lang / String; I) Z

Ich habe die erforderlichen Windows-Bibliotheken (hadoop.dll und winutils.exe) kompiliert und kann über Code auf die hdfs zugreifen und die Cluster-Informationen mit der hadoop-API lesen. Nur die Job-Einreichung funktioniert nicht.

Jede Hilfe wird angekündigt.

Lösung : Ich habe es selbst herausgefunden, der Pfad, wo die Windows-Hadoop-Binärdateien gefunden werden können, muss der PATH-Variable von Windows hinzugefügt werden.

    
padmalcom 14.12.2013, 13:55
quelle

1 Antwort

0

Dieser Fehler tritt im Allgemeinen auf, weil die Binärdateien in Ihrem% HADOOP_HOME% \ bin-Ordner nicht übereinstimmen. Also, was Sie tun müssen, ist Hadoop.dll und winutils.exe speziell für Ihre Hadoop-Version zu bekommen.

Rufen Sie hadoop.dll und winutils.exe für Ihre spezifische Hadoop-Version auf und kopieren Sie sie in Ihren% HADOOP_HOME% \ bin-Ordner.

    
Vijay 17.10.2017 05:43
quelle

Tags und Links