Hadoop è progettato solo per lavori di elaborazione dati "semplici", in cui le comunicazioni tra i nodi distribuiti sono sparse?

0

Non sono un programmatore professionista, ma piuttosto un ingegnere / matematico che usa il computer per risolvere problemi numerici. Finora la maggior parte dei miei problemi sono legati alla matematica, come risolvere sistemi lineari su larga scala, eseguire operazioni di algebra lineare, fft, ottimizzazione matematica ecc. Su scala più piccola, questi sono meglio gestiti da Matlab (e simili pacchetti matematici di alto livello) . Su larga scala, tuttavia, devo ricorrere a linguaggi di basso livello vecchio stile (e MOLTO TEDESCO) come Fortran o C / C ++. Non è tutto, quando il problema diventa eccessivamente grande, la parallelizzazione diventa necessaria, e MPI in questo senso è un incubo da superare.

Recentemente ho sentito parlare di hadoop e di "big data" su base regolare. Ma la mia impressione è che il hadoop NON è un paradigma di calcolo parallelo general-purpose, nel senso che gestisce i dati che richiedono comunicazioni reciproche minime (correggimi se sbaglio). Ad esempio, in un'operazione di LA generale su un set di dati di grandi dimensioni distribuito su più nodi, anziché elaborare indipendentemente la propria parte di dati, ogni nodo deve comunicare con OGNI altro nodo per inviare / ottenere informazioni prima che i propri dati possano essere elaborati correttamente, e l'intero set di dati viene aggiornato solo dopo che TUTTE le comunicazioni sono state eseguite. Spero di aver chiarito il mio punto di vista: nelle applicazioni numeriche, l'elaborazione dei dati è naturalmente GLOBAL, e il "grafico" per la comunicazione spesso è un GRAFICO COMPLETO (sebbene ci siano eccezioni).

La mia domanda è, è haadoop adatto a tale scopo, o è progettato solo per lavori di elaborazione dati "semplici", in cui le comunicazioni tra i nodi distribuiti sono scarse?

    
posta user138668 25.06.2014 - 11:19
fonte

1 risposta

0

L'uso canonico per i processi Hadoop come un albero. L'intervallo di query iniziale è suddiviso in sotto-intervalli. La query per ogni sottogruppo viene inviata al nodo che memorizza i dati per tale sub-intervallo. Il lavoro viene eseguito sul nodo per il sottogruppo di quel nodo e ne riporta la risposta. Le risposte secondarie sono aggregate alla leva più alta per rispondere alla domanda iniziale. Quindi, in generale, non supporta il tuo caso "grafico completo".

Dico "query" poiché questo è il caso tipico. Il framework può elaborare qualsiasi carico di lavoro che può essere disperso e amalgamato.

L'algoritmo è noto come Riduzione mappa. Ecco una domanda SO su di essa.

    
risposta data 25.06.2014 - 12:13
fonte

Leggi altre domande sui tag