2015-01-02 3 views
3

У меня есть 500 каталогов и 1000 файлов (каждая около 3-4 тыс. Строк) для каждой директории. Я хочу запустить такую ​​же программу clojure (уже написанную) для каждого из этих файлов. У меня 4 октановых сервера. что является хорошим способом распространения процессов в этих ядрах? cascalog (hadoop + clojure)?clojure: параллельная обработка с использованием нескольких компьютеров

в основном, программа считывает в файл, использует 3 участник Java банка, чтобы сделать вычисление, и вставляет результаты в БД

отметить, что: 1. будучи в состоянии использовать 3-библиотеки/баночка обязательный 2. нет никаких запросов

+0

До сих пор я была обработкой одного каталога в то время, на 1 сервер, используя «PMAP». но для обработки 500 каталогов, мне нужно масштабировать по горизонтали –

+1

вы считали о STORM? –

+0

@ shawn-zhang благодарит за предложение, я посмотрю его. Тем не менее, я никогда не делал обработку «больших данных» и не знаю многих опций, отличных от самых популярных, таких как hadoop, или найден из основного поиска, такого как cascalog и т. д. –

ответ

1

Поскольку в вашем общем процессе нет «уменьшения» этапа, поскольку я его понимаю, имеет смысл разместить 125 каталогов на каждом сервере, а затем провести остаток времени время, затрачиваемое на ускорение этой программы. До такой степени, когда вы насыщаете БД, конечно.

Большинство доступных инструментов «больших данных» (Hadoop, Storm) фокусируются на процессах, которые требуют как очень мощной карты, так и сокращения операций, возможно, на нескольких этапах каждого. В вашем случае все, что вам действительно нужно, - это достойный способ отслеживать, какие задания прошли, а какие нет. Я так же плох, как и любой (и еще хуже, чем многие) при прогнозировании времени разработки, хотя в этом случае я бы сказал, что даже случайность переписывания вашего процесса на одном из инструментов сокращения карты потребует больше времени, чем добавление процесс мониторинга, чтобы отслеживать, какие задания были завершены и которые не удалось, поэтому вы можете повторно запустить неудавшиеся позже (предпочтительно автоматически).

+0

Точно мои мысли; просто хотел получить подтверждение. Благодаря :) –

1

Onyx - это недавняя чистая альтернатива Clojure для Hadoop/Storm. Пока вы знакомы с Clojure, работа с Onyx довольно проста. Вы должны дать этому данные подхода попробовать:

https://github.com/MichaelDrogalis/onyx

Смежные вопросы