2015-07-02 7 views
8

Ich bin neu in der Welt der Karte zu reduzieren, habe ich einen Job ausgeführt und es scheint ewig dauern, um abzuschließen, dass es eine relativ kleine Aufgabe ist, ich rate etwas ist nicht gegangen nach Plan. Ich benutze Hadoop-Version 2.6, hier sind einige Informationen, die ich dachte, könnte helfen. Die Map-Reduce-Programme selbst sind einfach und ich werde sie nicht hinzufügen, es sei denn, jemand möchte, dass ich mehr Einblick gebe - der Python-Code, der für map reduce läuft, ist identisch mit dem hier - http://www.michael-noll.com/tutorials/writing-an-hadoop-mapreduce-program-in-python/. Wenn jemand einen Hinweis darauf geben kann, was falsch gelaufen ist oder warum das großartig wäre. Danke im Voraus.Hadoop-Karte reduzieren nehmen für immer

Name: streamjob1669011192523346656.jar 
Application Type: MAPREDUCE 
Application Tags: 
State: ACCEPTED 
FinalStatus: UNDEFINED 
Started: 3-Jul-2015 00:17:10 
Elapsed: 20mins, 57sec 
Tracking URL: UNASSIGNED 
Diagnostics:  

das ist, was ich bekomme, wenn das Programm ausgeführt wird:

bin/hadoop jar share/hadoop/tools/lib/hadoop-streaming-2.6.0.jar - file python-files/mapper.py -mapper python-files/mapper.py -file python - files/reducer.py -reducer python-files/reducer.py -input /user/input/* - output /user/output 
15/07/03 00:16:41 WARN streaming.StreamJob: -file option is deprecated, please use generic option -files instead. 
2015-07-03 00:16:43.510 java[3708:1b03] Unable to load realm info from SCDynamicStore 
15/07/03 00:16:44 WARN util.NativeCodeLoader: Unable to load native- hadoop library for your platform... using builtin-java classes where  applicable 
packageJobJar: [python-files/mapper.py, python-files/reducer.py,  /var/folders/4x/v16lrvy91ld4t8rqvnzbr83m0000gn/T/hadoop-unjar8212926403009053963/] []  /var/folders/4x/v16lrvy91ld4t8rqvnzbr83m0000gn/T/streamjob1669011192523346656.jar tmpDir=null 
15/07/03 00:16:53 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032 
15/07/03 00:16:55 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032 
15/07/03 00:17:05 INFO mapred.FileInputFormat: Total input paths to process : 1 
15/07/03 00:17:06 INFO mapreduce.JobSubmitter: number of splits:2 
15/07/03 00:17:07 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1435852353333_0003 
15/07/03 00:17:11 INFO impl.YarnClientImpl: Submitted application application_1435852353333_0003 
15/07/03 00:17:11 INFO mapreduce.Job: The url to track the job:  http://mymacbook.home:8088/proxy/application_1435852353333_0003/ 
15/07/03 00:17:11 INFO mapreduce.Job: Running job: job_1435852353333_0003 
+0

Wie ist Ihr Cluster eingerichtet? Welche Daten versuchen Sie zu verarbeiten und wie sagt die MR, dass sie Ihren Job (z. B. von Ihrer Tracker-URL) aufschlüsselt haben? –

+2

Gehen Sie zur YRIN-Ressourcenmanager-Web-UI-Hauptseite (http: //mymacbook.home: 8088 /) und buchen Sie die Ausgabe von Aktive Knoten:, Gesamtspeicher :, Verwendeter Speicher:, Vcores Total:, Verwendete VCores: – sachin

Antwort

4

Wenn ein Job in ACCEPTED Zustand für lange Zeit und nicht zu RUNNING Zustand zu ändern, könnte es aufgrund der folgenden Gründe.

Der Nodemanager (Slave-Dienst) ist entweder tot oder kann nicht mit dem Ressourcenmanager kommunizieren. Wenn der Active nodes im Yarn-Ressourcenmanager Web ui main page Null ist, können Sie bestätigen, dass keine Knotenmanager mit dem Ressourcenmanager verbunden sind. Wenn dies der Fall ist, müssen Sie den Knotenmanager starten.

Ein weiterer Grund ist es möglicherweise andere Jobs ausgeführt werden, die den freien Steckplatz und kein Raum für neue Arbeitsplätze überprüfen Sie den Wert Memory Total einnimmt, Memory used, Vcores Total, VCores Used in der Ressourcenmanager webui Hauptseite.

0

Haben Sie Ihre Daten auf dieselbe Weise partitioniert, wie Sie sie abfragen? Grundsätzlich möchten Sie nicht alle Ihre Daten abfragen, was Sie gerade tun. Das könnte erklären, warum es so lange dauert, um zu laufen.

Sie möchten eine Teilmenge Ihres gesamten Datensatzes abfragen. Wenn Sie beispielsweise über Daten partitionieren, möchten Sie wirklich Abfragen mit einer Datumsbeschränkung schreiben, da sonst die Ausführung der Abfrage ewig dauert.

Wenn Sie können, machen Sie Ihre Abfrage mit einer Einschränkung für die Variable (n), die zum Partitionieren Ihrer Daten verwendet werden.