Check Levi9 best QA positions to Backbase team!
×Закрыть

входим в тему «big data»

Какими технологиями и знаниями должен владеть программист для вхождения в тему обработки «big data»?
Навскидку:
1) Hadoop. Возможно какие-то сопутствующие фреймворки/надстройки (какие?).
2) Алгоритмы (какие? не все же подряд). Из доклада об одном из реальных проектов — понятно, что алгоритм Дайкстры там задействован (или какой-то другой, — в общем, поиск кратчайшего пути по графу). То есть копаем графы. Ну и деревья тоже.
3) Подозреваю, что нужно хорошее знание темы многопоточности.

Что ещё необходимо?

P.S.:
Подразумевается Java.

👍НравитсяПонравилось0
В избранноеВ избранном0
LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Как и в случае с не «big data», набор технологий и знаний очень от того, что обрабатывать (графы, гео данные, логи, тексты и т.д.), зачем (визуализировать миллиард точек, найти кратчайший маршрут с учетом особенностей дорог и т.д.) и когда (риалтайм или например, результаты нужны раз в пол года). Из теории может понадобиться все, что угодно, например, теория графов, NLP, machine learning, visual analytics, кластеризация, классификация и еще туева хуча базвордов. Ну и самое интересное, то что написано, в книжке, например, про граффы в большинстве случаев не будет работать с «big data» без дополнительных махинаций: ни кто не использует Дейкстру или А* для построения навигационных маршрутов в чистом виде и т.д.

Хотя с другой стороны, обрабатывать большие объемы данных можно не будучи программистом вообще. Для этого есть hadoop+pig, с минимальным порогом вхождения (при условии что не надо настравивать hadoop самому).

3) Подозреваю, что нужно хорошее знание темы многопоточности.
ИМХО это самое последнее, что нужно, если не реализовывать какой нибудь map reduce самому.

Вообщем я бы посоветовал почитать про map reduce, посмотреть Hadoop (pig, hive) и Storm, почитать Mining of Massive Datasets (infolab.stanford.edu/...n/mmds/book.pdf ), а дальше отталкиваться от конкретных задач. Если нужны графы, то теория графов + современные исследования на эту тему (гуглить всякие PhD диссертации) и графовые базы данные типа Neo4J и т.д.

Есть еще такая книга Programming Collective Intelligence, она довольная наивная и не совсем про обработку больших объемов данных, но дает представление о теории, которая может пригодиться.

Спасибо за объяснения. Помогло сориентироваться.

Книга тоже крутая.

Про многопоточность я погорячился. Конечно, имея реализацию MapReduce, о thread’ах можно не думать (или почти не думать).

А что за штука Storm? Я нашёл вот это — en.wikipedia.org/...torm_(software — но это совсем другое.

Кроме хадупа почитать еще про hive, pig, cascading.
Если интересны онлайн алгоритмы то еще про hbase и cassandra.

Map reduce херово подходит для обработки графов, лучше смотреть специализированные фреймворки — типа cassovary.

Спасибо. Начал читать разное, потихоньку приходит понимание..

Подписаться на комментарии