Какая библиотека является самой зрелой для построения конвейера аналитики данных в Java/Scala для Hadoop?
В последнее время я нашел много вариантов, которые интересны в их сравнении главным образом зрелостью и стабильностью.
- Хруст - https://github.com/cloudera/crunch
- Scrunch - https://github.com/cloudera/crunch/tree/master/scrunch
- Каскадирование - http://www.cascading.org/
- Обжигающий https://github.com/twitter/scalding
- FlumeJava
- Скуби - https://github.com/NICTA/scoobi/
3 ответа
Scalding также обладает преимуществом значительных проектов с открытым исходным кодом, таких как Matrix API и Algebird.
Вот несколько примеров: http://sujitpal.blogspot.com/2012/08/scalding-for-impatient.html
Cascalog был выпущен почти за два года до Scalding и, возможно, имеет более продвинутые функции для создания надежных рабочих процессов: https://github.com/nathanmarz/cascalog/wiki
Поскольку я разработчик Scoobi, не ожидайте непредвзятого ответа.
Во-первых, FlumeJava - это внутренний проект Google, который предоставляет (очень продуктивную) абстракцию поверх MapReduce (но не hasoop). Они выпустили статью об этом, на которой основаны такие проекты, как Scoobi и Crunch.
Если ваш единственный критерий - зрелость - я думаю, Каскадинг - ваш лучший выбор.
Однако, если вы ищете (imho улучшенную) абстракцию в стиле FlumeJava, вам нужно выбрать между (S) хрустом и Scoobi.
Самое большое различие, как ни странно, заключается в том, что crunch написан на Java с привязками Scala (Scrunch). А Scoobi написан на Scala с привязками Java (scoobij). Они оба - действительно твердый выбор, и вы не ошибетесь, какой бы вы ни выбрали. Я уверен, что с Crunch такая же история, но Scoobi используется в реальных проектах и находится в постоянном развитии. Мы очень активны в исправлении ошибок и реализации функций.
В любом случае, они оба великолепные проекты с замечательными людьми, и оба были выпущены в течение нескольких дней. Они обеспечивают ту же абстракцию (с похожим API), поэтому переключение между ними не будет проблемой ни в малейшей степени. Я рекомендую дать им обоим попробовать и посмотреть, что работает для вас. Там нет блокировки в любом проекте, поэтому вам не нужно коммитить:)
И если у вас есть какие-либо отзывы по любому из проектов, обязательно предоставьте их:)
Я большой поклонник Scoobi, и я использовал его в производстве. Мне нравится, как он позволяет вам писать безопасные для типов программы Hadoop очень идиоматическим способом на языке Scala. Если это не обязательно ваша вещь, и вам нравится модель Cascading, но вы напуганы огромным количеством шаблонного кода, который вам придется написать, Twitter недавно открыл свой собственный слой абстракции Scala поверх Cascading под названием Scalding.
- Объявление: https://dev.twitter.com/blog/scalding
- GitHub: https://github.com/twitter/scalding
Я полагаю, что на данный момент это дело вкуса, так как большинство фреймворков очень близко друг к другу.