JUGLviv

Meta


Share on:


Storm – big data solution for soft-real time

juglvivjuglviv

Hadoop – чудовий інструмент, що дозволяє реалізувати аналітику в домашніх умовах, перенести її на кластер і скейлити а ж до 4000 інстансів. Наприклад, можна написати свого конкурента Google Analytics, який на основі логів веб-серверу буде показувати статистику по країні, мові, відвіданому ресурсі чи ще будь-якій комбінації… купа варіантів, усе дуже просто і чудово масштабується. Єдина проблема, це буде зовсім не “в реальному часі”. Це пов”язано з тим, що Хадуп пропонує нам так звану “пакетну” обробку даних.
На прикладі, це виглядає так: веб сервери пишуть логи з 11:00 до 11:59, о 12:00 вони починають писати нові логи, а ми забираємо логи за попередню годину (11:00 – 11:59) і починаємо їх процесати. Припустимо це займає біля 15ти хвилин. Отже, лише після 12:15 ми матимемо дані за попередню годину. Додаму сюди можливі проблеми – з нетфорком чи фейли в кластрі, тобто треба мати запас як мінімум на ще один перезапуск хадупівських джобів. Отже, ми можемо обіцяти кастомеру готові дані з затримкою хвилин в 40 (ну що б з гарантією 99%), а в маркетингових цілях – так і взагалі лише о 13:00 🙂

Отже, виходе якось не дуже:( Звісно, нам би хотілося усю цю аналітику показувати в “в реальному часі” (в гугл аналітікс і така вкладка є), а для цього хадуп вже якось не дуже підходить…

Нащастя, і для цього вже придумали ріщення – називається Storm, родом з Твітера де використовується для побудови малопримітної колоночки “тренди”. Ну а ще її можна застосувати, щоб показувати статистику по відвідуваннях для різних критеріїв, в режимі наближеному до реального часу.

 Storm кардинально відрізняєтсья від Hadoop в першу чергу своєю орієнтованістю на потокову обробку даних, тут немає окремих етапів заходу даних, їх обробки і видання результату – усе це відбуваєтсья постійно, як потік води. Друга відмінність – Storm не пропонує готових MapReduce компонентів, вас не обмежують використанням цього алгоритму.

Основні компоненти Шторму:

тепер ми можемо приймати дані від веб-сервера про нових відвідувачів “як тільки”, розсилати бродкастом усім зацікавленим болтам, які зроблять агрегацію і оперативно віддадуть це наступному болту. який вже віддасть цей результат назовні і наші щасливі кастомери зможуть насолоджуватися стаститикою з затримкою в кілька секунд.
На цьому все, усе дуже просто, якщо виникнуть питання – задавайте

Bitnami