SlideShare a Scribd company logo
Распределенные
вычисления на
JavaScript!
Viktor Turskyi
CTO at WebbyLab
Kyiv.js 2015
Бизнес задача
Обработка большого массива (миллиарды
записей) данных с соц. сетей.
Примера анализа
Расчет упоминаемости групп ключевых
слов.
Источник данных - Twitter Public Stream API
Объем данных: +15ГБ ежедневно (5ТБ в
год)
Примеры запроса
“#nike” против “#adidas”
“#nike & nba” против “#adidas & nba”
“(спорт|турнир) & -футбол”
“волки & косметичка”
MapReduce или как это делают в
Google
MapReduce — модель распределённых
вычислений, представленная компанией
Google, используемая для параллельных
вычислений над очень большими, несколько
петабайт, наборами данных в компьютерных
кластерах. (Wikipedia)
Как работает MapReduce?
Фазы mapreduce
map: mapper(line) -> (k1, v1)
shuffle: сортировка по k1
reduce: reducer(k1, [v1, v2, v3])
Подсчет слов (“hello world” из мира MR)
Подсчет слов
Когда Джефф Дин не может заснуть,
он мап-редьюсит овечек
Экосистема Hadoop
Google MapReduce -> Hadoop Mapreduce
Google File System -> HDFS
Google BigTable -> Hbase
Как использовать JS c Hadoop
(hadoop streaming)
Подсчет слов на hadoop streaming
Тестируем локально
cat data | ./mapper.js | sort -k1,1 | ./reducer.js
Boilerplate for Hadoop tasks
https://github.com/koorchik/node-hadoop-
boilerplate
Создаем кластер на AWS EMR
(демо)
1) Установка NodeJS на кластер
2) Работа с зависимостями
От “hello world” к реальной задаче
Задача: сравнение упоминаемости групп
ключевых слов.
Вход: данные с твиттера
Выход: график упоминаемости групп
ключевых слов по дням
Время обработки: до 10 секунд
Инвертированный индекс
Построение инвертированного
индекса
Проблемы
Асинхронность маппера
Стоп-слова
Склонения слов (стеминг, лематизация)
Токенизация (ссылки, хеш-теги, юзернеймы)
Компрессия индекса
Вычисление пересечений в индексе
Ранжирование документов
Обработка словосочетаний
Живая демонстрация
Ссылки
Hadoop streaming utils for NodeJS https://www.npmjs.com/package/hadoop-
streaming-utils
Node Hadoop boilerplate https://github.com/koorchik/node-hadoop-boilerplate
NodeJS Mystem3 - https://www.npmjs.com/package/mystem3
MapReduce: Simplified Data Processing on Large Clusters http://research.
google.com/archive/mapreduce.html
Amazon Elastic MapReduce http://aws.amazon.com/elasticmapreduce/
Viktor Turskyi
viktor@webbylab.com
https://twitter.com/koorchik
https://github.com/koorchik
WebbyLab
http://webbylab.com

More Related Content

Viewers also liked

It's Quiz - Cloud testing platform
It's Quiz - Cloud testing platformIt's Quiz - Cloud testing platform
It's Quiz - Cloud testing platform
Viktor Turskyi
 
Testing orm based code
Testing orm based codeTesting orm based code
Testing orm based code
Viktor Turskyi
 
JS Lab 2016 - Frontend trends 2015 - 2016
JS Lab 2016 - Frontend trends 2015 - 2016JS Lab 2016 - Frontend trends 2015 - 2016
JS Lab 2016 - Frontend trends 2015 - 2016
Viktor Turskyi
 
Kharkiv JS 2015: Боль и радость создания изоморфных приложений на ReactJS (RU)
Kharkiv JS  2015: Боль и радость создания изоморфных приложений на ReactJS (RU)Kharkiv JS  2015: Боль и радость создания изоморфных приложений на ReactJS (RU)
Kharkiv JS 2015: Боль и радость создания изоморфных приложений на ReactJS (RU)
Viktor Turskyi
 
Getting Started with React-Nathan Smith
Getting Started with React-Nathan SmithGetting Started with React-Nathan Smith
Getting Started with React-Nathan Smith
TandemSeven
 
Reactjs
Reactjs Reactjs
Reactjs
Neha Sharma
 
An Introduction to MapReduce
An Introduction to MapReduceAn Introduction to MapReduce
An Introduction to MapReduce
Frane Bandov
 
Introduction To Map Reduce
Introduction To Map ReduceIntroduction To Map Reduce
Introduction To Map Reduce
rantav
 

Viewers also liked (8)

It's Quiz - Cloud testing platform
It's Quiz - Cloud testing platformIt's Quiz - Cloud testing platform
It's Quiz - Cloud testing platform
 
Testing orm based code
Testing orm based codeTesting orm based code
Testing orm based code
 
JS Lab 2016 - Frontend trends 2015 - 2016
JS Lab 2016 - Frontend trends 2015 - 2016JS Lab 2016 - Frontend trends 2015 - 2016
JS Lab 2016 - Frontend trends 2015 - 2016
 
Kharkiv JS 2015: Боль и радость создания изоморфных приложений на ReactJS (RU)
Kharkiv JS  2015: Боль и радость создания изоморфных приложений на ReactJS (RU)Kharkiv JS  2015: Боль и радость создания изоморфных приложений на ReactJS (RU)
Kharkiv JS 2015: Боль и радость создания изоморфных приложений на ReactJS (RU)
 
Getting Started with React-Nathan Smith
Getting Started with React-Nathan SmithGetting Started with React-Nathan Smith
Getting Started with React-Nathan Smith
 
Reactjs
Reactjs Reactjs
Reactjs
 
An Introduction to MapReduce
An Introduction to MapReduceAn Introduction to MapReduce
An Introduction to MapReduce
 
Introduction To Map Reduce
Introduction To Map ReduceIntroduction To Map Reduce
Introduction To Map Reduce
 

Similar to Mapreduce in JavaScript

WebCamp:Back-end Developers Day Турский Виктор "Распределенные вычисления на ...
WebCamp:Back-end Developers Day Турский Виктор "Распределенные вычисления на ...WebCamp:Back-end Developers Day Турский Виктор "Распределенные вычисления на ...
WebCamp:Back-end Developers Day Турский Виктор "Распределенные вычисления на ...
GeeksLab Odessa
 
OSPconf Big Data Forum 2014 Ilya Gershanov
OSPconf Big Data Forum 2014 Ilya GershanovOSPconf Big Data Forum 2014 Ilya Gershanov
OSPconf Big Data Forum 2014 Ilya Gershanov
Ilya Gershanov
 
Windows Azure - BigData and Hadoop
Windows Azure - BigData and HadoopWindows Azure - BigData and Hadoop
Windows Azure - BigData and Hadoop
Alexey Bokov
 
DB-Technologies-2017 Keynote (Strategy and tactics for db evaluation)
DB-Technologies-2017 Keynote (Strategy and tactics for db evaluation)DB-Technologies-2017 Keynote (Strategy and tactics for db evaluation)
DB-Technologies-2017 Keynote (Strategy and tactics for db evaluation)
Andrei Nikolaenko
 
Анализ данных в MATLAB 
Анализ данных в MATLAB Анализ данных в MATLAB 
Анализ данных в MATLAB 
MATLAB
 
ClickHouse
ClickHouseClickHouse
ClickHouse
Alexey Milovidov
 
Digital Society Laboratory (Аршавский)
Digital Society Laboratory (Аршавский)Digital Society Laboratory (Аршавский)
Digital Society Laboratory (Аршавский)
Andzhey Arshavskiy
 
BigData в онлайн-маркетинге для малого и среднего бизнеса
BigData в онлайн-маркетинге для малого и среднего бизнесаBigData в онлайн-маркетинге для малого и среднего бизнеса
BigData в онлайн-маркетинге для малого и среднего бизнеса
BranchMarketing
 
О.В.Сухорослов "MapReduce"
О.В.Сухорослов "MapReduce"О.В.Сухорослов "MapReduce"
О.В.Сухорослов "MapReduce"
Yandex
 
Microsoft Graph. Готовая Big Data для Ваших решений
Microsoft Graph. Готовая Big Data для Ваших решенийMicrosoft Graph. Готовая Big Data для Ваших решений
Microsoft Graph. Готовая Big Data для Ваших решений
Vitaly Zhukov
 
«Строим собственную BI в Excel на данных из Яндекс.Метрики и Google Analytics...
«Строим собственную BI в Excel на данных из Яндекс.Метрики и Google Analytics...«Строим собственную BI в Excel на данных из Яндекс.Метрики и Google Analytics...
«Строим собственную BI в Excel на данных из Яндекс.Метрики и Google Analytics...
it-people
 
Строим собственную BI в MS Excel на данных из Яндекс.Метрики и Google Analitycs
Строим собственную BI в MS Excel на данных из Яндекс.Метрики и Google AnalitycsСтроим собственную BI в MS Excel на данных из Яндекс.Метрики и Google Analitycs
Строим собственную BI в MS Excel на данных из Яндекс.Метрики и Google Analitycs
Maxim Uvarov
 
AI&BigData Lab. Быковский Александр "Ассоциативные правила для генерации реко...
AI&BigData Lab. Быковский Александр "Ассоциативные правила для генерации реко...AI&BigData Lab. Быковский Александр "Ассоциативные правила для генерации реко...
AI&BigData Lab. Быковский Александр "Ассоциативные правила для генерации реко...
GeeksLab Odessa
 
Top big data architecture patterns by Igor Chub
Top big data architecture patterns  by Igor ChubTop big data architecture patterns  by Igor Chub
Top big data architecture patterns by Igor Chub
.NET User Group Dnipro
 
Инфраструктура под аналитику и большие данные
Инфраструктура под аналитику  и большие данныеИнфраструктура под аналитику  и большие данные
Инфраструктура под аналитику и большие данные
Cisco Russia
 
Лекция "Архитектура поиска Яндекса"
Лекция "Архитектура поиска Яндекса"Лекция "Архитектура поиска Яндекса"
Лекция "Архитектура поиска Яндекса"Polina Fomina
 
20131105 романенко
20131105 романенко20131105 романенко
20131105 романенко
Yandex
 
Hpc Day
Hpc DayHpc Day
Информационные технологии в эру Больших данных
Информационные технологии в эру Больших данныхИнформационные технологии в эру Больших данных
Информационные технологии в эру Больших данных
Sergey Makrushin
 
Информационные технологии в эру Больших данных
Информационные технологии в эру Больших данныхИнформационные технологии в эру Больших данных
Информационные технологии в эру Больших данных
Сергей Макрушин
 

Similar to Mapreduce in JavaScript (20)

WebCamp:Back-end Developers Day Турский Виктор "Распределенные вычисления на ...
WebCamp:Back-end Developers Day Турский Виктор "Распределенные вычисления на ...WebCamp:Back-end Developers Day Турский Виктор "Распределенные вычисления на ...
WebCamp:Back-end Developers Day Турский Виктор "Распределенные вычисления на ...
 
OSPconf Big Data Forum 2014 Ilya Gershanov
OSPconf Big Data Forum 2014 Ilya GershanovOSPconf Big Data Forum 2014 Ilya Gershanov
OSPconf Big Data Forum 2014 Ilya Gershanov
 
Windows Azure - BigData and Hadoop
Windows Azure - BigData and HadoopWindows Azure - BigData and Hadoop
Windows Azure - BigData and Hadoop
 
DB-Technologies-2017 Keynote (Strategy and tactics for db evaluation)
DB-Technologies-2017 Keynote (Strategy and tactics for db evaluation)DB-Technologies-2017 Keynote (Strategy and tactics for db evaluation)
DB-Technologies-2017 Keynote (Strategy and tactics for db evaluation)
 
Анализ данных в MATLAB 
Анализ данных в MATLAB Анализ данных в MATLAB 
Анализ данных в MATLAB 
 
ClickHouse
ClickHouseClickHouse
ClickHouse
 
Digital Society Laboratory (Аршавский)
Digital Society Laboratory (Аршавский)Digital Society Laboratory (Аршавский)
Digital Society Laboratory (Аршавский)
 
BigData в онлайн-маркетинге для малого и среднего бизнеса
BigData в онлайн-маркетинге для малого и среднего бизнесаBigData в онлайн-маркетинге для малого и среднего бизнеса
BigData в онлайн-маркетинге для малого и среднего бизнеса
 
О.В.Сухорослов "MapReduce"
О.В.Сухорослов "MapReduce"О.В.Сухорослов "MapReduce"
О.В.Сухорослов "MapReduce"
 
Microsoft Graph. Готовая Big Data для Ваших решений
Microsoft Graph. Готовая Big Data для Ваших решенийMicrosoft Graph. Готовая Big Data для Ваших решений
Microsoft Graph. Готовая Big Data для Ваших решений
 
«Строим собственную BI в Excel на данных из Яндекс.Метрики и Google Analytics...
«Строим собственную BI в Excel на данных из Яндекс.Метрики и Google Analytics...«Строим собственную BI в Excel на данных из Яндекс.Метрики и Google Analytics...
«Строим собственную BI в Excel на данных из Яндекс.Метрики и Google Analytics...
 
Строим собственную BI в MS Excel на данных из Яндекс.Метрики и Google Analitycs
Строим собственную BI в MS Excel на данных из Яндекс.Метрики и Google AnalitycsСтроим собственную BI в MS Excel на данных из Яндекс.Метрики и Google Analitycs
Строим собственную BI в MS Excel на данных из Яндекс.Метрики и Google Analitycs
 
AI&BigData Lab. Быковский Александр "Ассоциативные правила для генерации реко...
AI&BigData Lab. Быковский Александр "Ассоциативные правила для генерации реко...AI&BigData Lab. Быковский Александр "Ассоциативные правила для генерации реко...
AI&BigData Lab. Быковский Александр "Ассоциативные правила для генерации реко...
 
Top big data architecture patterns by Igor Chub
Top big data architecture patterns  by Igor ChubTop big data architecture patterns  by Igor Chub
Top big data architecture patterns by Igor Chub
 
Инфраструктура под аналитику и большие данные
Инфраструктура под аналитику  и большие данныеИнфраструктура под аналитику  и большие данные
Инфраструктура под аналитику и большие данные
 
Лекция "Архитектура поиска Яндекса"
Лекция "Архитектура поиска Яндекса"Лекция "Архитектура поиска Яндекса"
Лекция "Архитектура поиска Яндекса"
 
20131105 романенко
20131105 романенко20131105 романенко
20131105 романенко
 
Hpc Day
Hpc DayHpc Day
Hpc Day
 
Информационные технологии в эру Больших данных
Информационные технологии в эру Больших данныхИнформационные технологии в эру Больших данных
Информационные технологии в эру Больших данных
 
Информационные технологии в эру Больших данных
Информационные технологии в эру Больших данныхИнформационные технологии в эру Больших данных
Информационные технологии в эру Больших данных
 

More from Viktor Turskyi

How to create a high performance excel engine in java script
How to create a high performance excel engine in java scriptHow to create a high performance excel engine in java script
How to create a high performance excel engine in java script
Viktor Turskyi
 
Livr 2.0 in JS - Vinnytsia.JS 2019
Livr 2.0 in JS - Vinnytsia.JS 2019Livr 2.0 in JS - Vinnytsia.JS 2019
Livr 2.0 in JS - Vinnytsia.JS 2019
Viktor Turskyi
 
The working architecture of node js applications open tech week javascript ...
The working architecture of node js applications   open tech week javascript ...The working architecture of node js applications   open tech week javascript ...
The working architecture of node js applications open tech week javascript ...
Viktor Turskyi
 
Yet another json rpc library (mole rpc)
Yet another json rpc library (mole rpc)Yet another json rpc library (mole rpc)
Yet another json rpc library (mole rpc)
Viktor Turskyi
 
KharkivJS 2018 Information Security Practice
KharkivJS 2018 Information Security PracticeKharkivJS 2018 Information Security Practice
KharkivJS 2018 Information Security Practice
Viktor Turskyi
 
"Offline mode for a mobile application, redux on server and a little bit abou...
"Offline mode for a mobile application, redux on server and a little bit abou..."Offline mode for a mobile application, redux on server and a little bit abou...
"Offline mode for a mobile application, redux on server and a little bit abou...
Viktor Turskyi
 
The working architecture of NodeJs applications
The working architecture of NodeJs applicationsThe working architecture of NodeJs applications
The working architecture of NodeJs applications
Viktor Turskyi
 
Language Independent Validation Rules 2.0, Viktor Turskyi, talk at OSDN 2017
Language Independent Validation Rules 2.0, Viktor Turskyi, talk at OSDN 2017Language Independent Validation Rules 2.0, Viktor Turskyi, talk at OSDN 2017
Language Independent Validation Rules 2.0, Viktor Turskyi, talk at OSDN 2017
Viktor Turskyi
 
How to extract information from text with Semgrex
How to extract information from text with SemgrexHow to extract information from text with Semgrex
How to extract information from text with Semgrex
Viktor Turskyi
 
How to translate your Single Page Application - Webcamp 2016 (en)
How to translate your Single Page Application - Webcamp 2016 (en)How to translate your Single Page Application - Webcamp 2016 (en)
How to translate your Single Page Application - Webcamp 2016 (en)
Viktor Turskyi
 

More from Viktor Turskyi (10)

How to create a high performance excel engine in java script
How to create a high performance excel engine in java scriptHow to create a high performance excel engine in java script
How to create a high performance excel engine in java script
 
Livr 2.0 in JS - Vinnytsia.JS 2019
Livr 2.0 in JS - Vinnytsia.JS 2019Livr 2.0 in JS - Vinnytsia.JS 2019
Livr 2.0 in JS - Vinnytsia.JS 2019
 
The working architecture of node js applications open tech week javascript ...
The working architecture of node js applications   open tech week javascript ...The working architecture of node js applications   open tech week javascript ...
The working architecture of node js applications open tech week javascript ...
 
Yet another json rpc library (mole rpc)
Yet another json rpc library (mole rpc)Yet another json rpc library (mole rpc)
Yet another json rpc library (mole rpc)
 
KharkivJS 2018 Information Security Practice
KharkivJS 2018 Information Security PracticeKharkivJS 2018 Information Security Practice
KharkivJS 2018 Information Security Practice
 
"Offline mode for a mobile application, redux on server and a little bit abou...
"Offline mode for a mobile application, redux on server and a little bit abou..."Offline mode for a mobile application, redux on server and a little bit abou...
"Offline mode for a mobile application, redux on server and a little bit abou...
 
The working architecture of NodeJs applications
The working architecture of NodeJs applicationsThe working architecture of NodeJs applications
The working architecture of NodeJs applications
 
Language Independent Validation Rules 2.0, Viktor Turskyi, talk at OSDN 2017
Language Independent Validation Rules 2.0, Viktor Turskyi, talk at OSDN 2017Language Independent Validation Rules 2.0, Viktor Turskyi, talk at OSDN 2017
Language Independent Validation Rules 2.0, Viktor Turskyi, talk at OSDN 2017
 
How to extract information from text with Semgrex
How to extract information from text with SemgrexHow to extract information from text with Semgrex
How to extract information from text with Semgrex
 
How to translate your Single Page Application - Webcamp 2016 (en)
How to translate your Single Page Application - Webcamp 2016 (en)How to translate your Single Page Application - Webcamp 2016 (en)
How to translate your Single Page Application - Webcamp 2016 (en)
 

Mapreduce in JavaScript