Hadoop vs Shell: Quando la linea di comando batte il cluster in 235x

Hadoop vs Shell: Quando la linea di comando batte il cluster in 235x

Avete mai avuto un momento in cui vi siete chiesti: “Ma perché sto usando questo mega cluster quando il mio laptop fa lo stesso in 12 secondi?”

Ecco, è quello che è successo ad Adam Drake quando ha scoperto che analizzare 1.75GB di partite di scacchi era 235 volte più veloce con comandi shell rispetto a un cluster Hadoop.

Il caso è semplice: Tom Hayden stava giocando con mrjob ed EMR su Amazon per analizzare risultati di partite di scacchi. Niente di particolarmente complesso, ma Hadoop ha impiegato 26 minuti per fare un lavoro che un semplice script bash ha risolto in 12 secondi. Sì, avete letto bene: 235 volte più lento.

Ma perché? Perché spesso ci buttiamo su soluzioni ‘cool’ e ‘distribuite’ quando un po’ di buon vecchio grep, awk e xargs fanno il lavoro meglio, più veloce e senza costi nascosti.

Il bello è che Drake non si è fermato alla semplice dimostrazione. Ha costruito un pipeline che sfrutta al meglio il parallelismo del terminale, usando xargs per far girare più istanze di awk in parallelo e mawk per un ultimo sprint di performance. Il risultato? Un sistema che non solo batte Hadoop in velocità, ma è anche più facile da mantenere e costringe a ragionare in modo più efficiente.

E per noi smanettoni? Beh, la lezione è chiara: prima di buttarsi su soluzioni complesse, provate a vedere se non possiate fare di meglio con gli strumenti che già avete. Magari il vostro prossimo progetto ‘Big Data’ potrebbe essere solo un bel script bash ben ottimizzato.

E poi, ammettiamolo: c’è una certa soddisfazione nel vedere un cluster da migliaia di dollari umiliato da un terminale e qualche comando ben scritto.

Il vero peccato? Che spesso queste soluzioni ‘distribuite’ vengono vendute come la panacea di tutti i mali, quando invece il 90% dei casi potrebbe essere risolto con un po’ di buon senso e qualche comando shell. Ma questa è un’altra storia…

Source: Command-line Tools can be 235x Faster than your Hadoop Cluster (2014)

Lascia un commento