Hadoop великолепен, но в заднице может возникнуть боль в настройке. На данный момент это лучшая статья, которую я читал о настройке Hadoop. Я настоятельно рекомендую это:
http://www.michael -noll.com / вики / Running_Hadoop_On_Ubuntu_Linux_% 28Single-Node_Cluster% 29
Clojure построен поверх Java, поэтому маловероятно, что он будет работать быстрее, чем Java. Тем не менее, это один из немногих языков, который хорошо разделяет память, что может быть полезным, а может и не быть. Я не математик, но кажется, что большинство математических вычислений очень распараллеливаемы, и при этом не нужно, чтобы потоки разделяли память. В любом случае, вы можете попробовать Incanter , который является библиотекой статистических вычислений Clojure, и clojure-hadoop , который делает написание заданий Hadoop намного менее болезненным.
Что касается языков, я считаю, что различия в производительности оказываются постоянными факторами. Гораздо лучше просто найти язык, который вам нравится, и сосредоточиться на улучшении ваших алгоритмов. Однако, согласно некоторой перестрелке , процитированной Питером Норвигом (прокрутите вниз к красочному столу, вы можете уклониться от Python и Perl из-за их дурацкого отношения к массивам.
В двух словах, NoSQL отлично подходит для неструктурированных / произвольно структурированных данных, тогда как SQL / RDBMS отлично (или, по крайней мере, допустимо) для структурированных данных. Изменение / добавление полей в СУБД обходится дорого, поэтому, если это случится много, вы можете от них уклониться.
Однако в вашем случае кажется, что вы собираетесь выполнять пакетную обработку тонны данных, а затем получать ответ, в отличие от данных, о которых вы будете периодически задавать вопросы? Возможно, вы могли бы просто обрабатывать CSV / текстовые файлы в Hadoop. Если вам не нужен эффективный способ доступа к произвольной информации о ваших данных на лету, я не уверен, что SQL или NoSQL будут полезны.