2016-04-28 5 views
0

Ich benutze Spark-1.6.1, 2.6.4 Hadoop und Mesos 0,28 auf 8.en DebianWarum schlägt der Spark-Job auf Mesos mit "hadoop: not found" fehl?

Während eines Auftrag über spark-submit zu einem Mesos Cluster ein Slave mit der folgenden in stderr Protokoll nicht vorlegen versuchen:

I0427 22:35:39.626055 48258 fetcher.cpp:424] Fetcher Info: {"cache_directory":"\/tmp\/mesos\/fetch\/slaves\/ad642fcf-9951-42ad-8f86-cc4f5a5cb408-S0\/hduser","items":[{"action":"BYP$ 
I0427 22:35:39.628031 48258 fetcher.cpp:379] Fetching URI 'hdfs://xxxxxxxxx:54310/sources/spark/SimpleEventCounter.jar' 
I0427 22:35:39.628057 48258 fetcher.cpp:250] Fetching directly into the sandbox directory 
I0427 22:35:39.628078 48258 fetcher.cpp:187] Fetching URI 'hdfs://xxxxxxx:54310/sources/spark/SimpleEventCounter.jar' 
E0427 22:35:39.629243 48258 shell.hpp:93] Command 'hadoop version 2>&1' failed; this is the output: 
sh: 1: hadoop: not found 
Failed to fetch 'hdfs://xxxxxxx:54310/sources/spark/SimpleEventCounter.jar': Failed to create HDFS client: Failed to execute 'hadoop version 2>&1'; the command was e$ 
Failed to synchronize with slave (it's probably exited) 
  1. Meine Jar-Datei enthält hadoop 2.6 Binärdateien
  2. Der Pfad Testamentsvollstrecker funken/binary ist über eine hdfs:// Link

Meine Jobs erscheinen nicht auf der Registerkarte "Framework", aber sie erscheinen im Treiber mit dem Status "in der Warteschlange" und sie sitzen einfach dort, bis ich den Dienst spark-mesos-dispatcher.sh heruntergefahren habe.

+0

Haben Sie "hadoop_home" auf Mesos-Slaves konfiguriert? Es scheint, dass es nicht in der Lage ist, Hadoop-Heim auf Mesos-Sklaven zu finden! – avr

+0

Es gibt ein ähnliches [Problem] (https://issues.apache.org/jira/browse/MESOS-4852) auf Mesos 'JIRA. Überprüfen Sie, ob 'curl' auf Ihrem Computer installiert ist. – Tobi

+0

Wie können Sie' spark-submit', d. H. Können Sie die gesamte Befehlszeile anzeigen? –

Antwort

0

Ich sah einen sehr ähnlichen Fehler und ich erkannte mein Problem war, dass hadoop_home nicht in der Mesos-Agent festgelegt wurde. ich hinzugefügt/etc/default/Mesos-Slave auf jedem (Pfad auf Ihrem installieren verschieden sein können) Mesos-Slave die folgende Zeile ein: MESOS_hadoop_home="/path/to/my/hadoop/install/folder/"

EDIT: Hadoop auf jedem Slave installiert sein, der path/to/my/haoop/install/Ordner ist ein lokaler Pfad

Verwandte Themen