Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Лекция 5. MapReduce в Hadoop (алгоритмы)Technopark
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Лекция 5. MapReduce в Hadoop (алгоритмы)Technopark
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Лекция 1. Основные понятия стандарта MPI. Дифференцированные обменыAlexey Paznikov
ЛЕКЦИЯ 1. Основные понятия стандарта MPI. Дифференцированные обмены
Курс "Параллельные вычислительные технологии" (ПВТ), осень 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
http://cpct.sibsutis.ru/~apaznikov/teaching
ПВТ - весна 2015 - Лекция 2. POSIX Threads. Основные понятия многопоточного п...Alexey Paznikov
ЛЕКЦИЯ 2. POSIX Threads. Жизненный цикл потоков. Планирование. Синхронизация
Курс "Параллельные вычислительные технологии" (ПВТ), весна 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...Yandex
Евгений Крутько, НИЦ «Курчатовский институт».
В докладе на примере программы моделирования динамики движения конструкций по методу конечных элементов рассматриваются возможности и практика распараллеливания вычислений. Речь в нём пойдёт как о технике создания новых вычислительных потоков, так и об использовании стандартов openMP и MPI.
Доклад Кулагина И.И., Пазникова А.А., Курносова М.Г. "Оптимизация информационных обменов в параллельных PGAS-программах" на 3-й Всероссийской научно-технической конференции «Суперкомпьютерные технологии» (СКТ-2014)
29 сентября – 4 октября 2014 г., с. Дивноморское
ЛЕКЦИЯ 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Многоядерные вычислительные систем с общей памятью
Курс "Параллельные вычислительные технологии" (ПВТ), весна 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
Лекция 4. Производные типы данных в стандарте MPIAlexey Paznikov
ЛЕКЦИЯ 4. Производные типы данных в стандарте MPI
Курс "Параллельные вычислительные технологии" (ПВТ), осень 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
http://cpct.sibsutis.ru/~apaznikov/teaching
Со времён С++98 стандартные контейнеры и идиома RAII позволяли избегать использования оператора delete, что делало код более безопасным. С приходом С++11 и умных указателей отпала необходимость использовать оператор new, что позволило практически полностью переложить управление памятью на плечи компилятора. В докладе объясняется идеология управления памятью и ресурсами в современном С++.
Григорий Демченко, “Асинхронность и сопрограммы: обработка данных“Platonov Sergey
Предлагаемый подход позволяет без труда получить параллельную асинхронную обработку данных без явного использования средств синхронизации, по максимуму задействуя доступные вычислительные ресурсы. Использование сопрограмм значительно упрощает написание многопоточного кода. Это дает возможность сконцентрироваться непосредственно на задаче обработки данных, не занимаясь вопросами синхронизации различных операций, включая асинхронную работу с сетью.
Лекция 3. Виртуальные топологии в MPI. Параллельные алгоритмы в стандарте MPI...Alexey Paznikov
ЛЕКЦИЯ 3. Виртуальные топологии в MPI. Параллельные алгоритмы в стандарте MPI умножения матрицы на вектор, метода Монте-Карло, решение линейных алгебраических уравнений (СЛАУ) методами Гаусса и сопряжённых градиентов
Курс "Параллельные вычислительные технологии" (ПВТ), осень 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
http://cpct.sibsutis.ru/~apaznikov/teaching
Лекция 1. Основные понятия стандарта MPI. Дифференцированные обменыAlexey Paznikov
ЛЕКЦИЯ 1. Основные понятия стандарта MPI. Дифференцированные обмены
Курс "Параллельные вычислительные технологии" (ПВТ), осень 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
http://cpct.sibsutis.ru/~apaznikov/teaching
ПВТ - весна 2015 - Лекция 2. POSIX Threads. Основные понятия многопоточного п...Alexey Paznikov
ЛЕКЦИЯ 2. POSIX Threads. Жизненный цикл потоков. Планирование. Синхронизация
Курс "Параллельные вычислительные технологии" (ПВТ), весна 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...Yandex
Евгений Крутько, НИЦ «Курчатовский институт».
В докладе на примере программы моделирования динамики движения конструкций по методу конечных элементов рассматриваются возможности и практика распараллеливания вычислений. Речь в нём пойдёт как о технике создания новых вычислительных потоков, так и об использовании стандартов openMP и MPI.
Доклад Кулагина И.И., Пазникова А.А., Курносова М.Г. "Оптимизация информационных обменов в параллельных PGAS-программах" на 3-й Всероссийской научно-технической конференции «Суперкомпьютерные технологии» (СКТ-2014)
29 сентября – 4 октября 2014 г., с. Дивноморское
ЛЕКЦИЯ 1. Актуальность параллельных вычислений. Анализ параллельных алгоритмов. Многоядерные вычислительные систем с общей памятью
Курс "Параллельные вычислительные технологии" (ПВТ), весна 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
Лекция 4. Производные типы данных в стандарте MPIAlexey Paznikov
ЛЕКЦИЯ 4. Производные типы данных в стандарте MPI
Курс "Параллельные вычислительные технологии" (ПВТ), осень 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
http://cpct.sibsutis.ru/~apaznikov/teaching
Со времён С++98 стандартные контейнеры и идиома RAII позволяли избегать использования оператора delete, что делало код более безопасным. С приходом С++11 и умных указателей отпала необходимость использовать оператор new, что позволило практически полностью переложить управление памятью на плечи компилятора. В докладе объясняется идеология управления памятью и ресурсами в современном С++.
Григорий Демченко, “Асинхронность и сопрограммы: обработка данных“Platonov Sergey
Предлагаемый подход позволяет без труда получить параллельную асинхронную обработку данных без явного использования средств синхронизации, по максимуму задействуя доступные вычислительные ресурсы. Использование сопрограмм значительно упрощает написание многопоточного кода. Это дает возможность сконцентрироваться непосредственно на задаче обработки данных, не занимаясь вопросами синхронизации различных операций, включая асинхронную работу с сетью.
Лекция 3. Виртуальные топологии в MPI. Параллельные алгоритмы в стандарте MPI...Alexey Paznikov
ЛЕКЦИЯ 3. Виртуальные топологии в MPI. Параллельные алгоритмы в стандарте MPI умножения матрицы на вектор, метода Монте-Карло, решение линейных алгебраических уравнений (СЛАУ) методами Гаусса и сопряжённых градиентов
Курс "Параллельные вычислительные технологии" (ПВТ), осень 2015
Сибирский государственный университет телекоммуникаций и информатики
Пазников Алексей Александрович
к.т.н., доцент кафедры вычислительных систем СибГУТИ
http://cpct.sibsutis.ru/~apaznikov
http://cpct.sibsutis.ru/~apaznikov/teaching
Мы поговорим об Apache Spark — более быстром, универсальном и user friendly аналоге Hadoop как инструменте для batch-обработки больших данных. Рассмотрим архитектуру Spark и его главного строительного блока — RDD. Сравним код в MapReduce и RDD моделях. Обсудим развитие других Apache top-level проектов и плавный отход индустрии от MapReduce модели к Spark.
AlaSQL - SQL библиотека на JavaScript (выступление на PiterJS)Andrey Gershun
AlaSQL - это библиотека для обработки данных с помощью языка SQL, которая написана на JavaScript и может работать в браузере (в том числе, и в режиме WebWorker) или Node.js. Библиотека может быть использована в приложениях для обработки данных, а также для решения задач ETL (extract-transform-loading), таких как приложения бизнес-аналитики.
AlaSQL позволяет проводить сложные манипуляции с массивами данных (такие как группировки, сортировки, выборки, слияния) с помощью привычных выражений языка SQL. Встроенные процедуры импорта и экспорта данных в различных форматах (включая TXT, JSON, CSV, TSV, Microsoft Excel и Google Spreadsheets) предоставляют удобный интерфейс для импорта и экспорта прямо из SQL-выражений. Библиотека хорошо сочетается с такими современными фреймворками, как Angular.js, d3.js и Google Chars.
AlaSQL поддерживает совместимость по многим операторам со стандартным SQL и различными его диалектами, что позволяет переносить ранее разработанные процедуры для других баз данных. Специальные расширения синтаксиса SQL позволяют простым и удобным способом использовать все возможности, предоставляемые JavaScript, например, обработка JSON объектов из SQL выражений.
Для достижения высокого быстродействия AlaSQL написана с использованием сильно оптимизированного JavaScript и содержит несколько эвристик для сокращения времени обработки SQL выражений.
Михаил Давыдов "Масштабируемые JavaScript-приложения"Yandex
2 июля 2011, Я.Субботник в Екатеринбурге
Михаил Давыдов "Масштабируемые JavaScript-приложения"
О докладе:
Проектирование масштабируемых JavaScript-приложений уровня Яндекс.Почты.
Чем отличается сайт от JavaScript приложения? Какие проблемы могут возникнуть при разработке многокомпонентных приложений? Какую архитектуру нужно заложить, чтобы приложение могло легко развиваться?
В своей работе мы постоянно используем инструменты, призванные облегчить нам жизнь. Но как хорошо мы ими на самом деле владеем? И почему мы пренебрегаем их суперсилами? Например, Chrome DevTools — это не только отладчик и инспектор HTML. Но когда у нас в руках молоток, кругом мерещатся гвозди. Десятки мегабайт и процентов загрузки процессора на вкладку браузера — верный признак того, что пора учиться пользоваться микроскопом.
Роман предложит освоить что-то посложнее молотка и расскажет о том, какую реальную пользу можно получить от профилирования, как найти в огромном отчёте проблему с кодом и что лучше — написать в коде десяток console.log или async debug.
Александр Соловьев "Как modnaKasta трансформировалась"Fwdays
Рассказ о том, как modnaKasta превращается в лучшую ecommerce-платформу, что мы с ней сделали, делаем и что будем делать, про архитектуру еë фронт-энда, и прочее.
DUBLEX PCA FOR LOANS & DEFAULTS of FINTURK DATASET with R SoftWareFatma ÇINAR
# This is an introductory study of Machine Learning study of Financial data
# We use an enhanced FINTURK data with NUTS and SEGE regional information
# Machine Learning techniques require very big computing power and memory of computers.
# PCA analysis and Dimentional Reduction techniques represents a suitable starting point to tackle with these questions
# This PPT representation covers the runnable R program of Duplex PCA Analysis and Clustering on FINTURK Data Credits and Defaults and resulting graphs.
Similar to О.В.Сухорослов "MapReduce: инструменты и практические примеры" (20)
Предсказание оттока игроков из World of TanksYandex
Одна из наиболее часто возникающих задач в бизнес-аналитике для компаний — это предсказание оттока клиентов. Ведь если заранее знать, что клиент собирается уйти к конкуренту, его можно попытаться остановить. Задача будет рассмотрена на примере прогнозирования оттока игроков из World of Tanks.
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Yandex
Лекция Сергея Царика в Школе вебмастеров: «Как принять/организовать работу по поисковой оптимизации сайта».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Основные этапы и методы поисковой оптимизации
Рассмотрим проработку стратегии продвижения, планирование ресурсов на проект, поймем как нужно прорабатывать семантическое ядро для продвижения, разберемся с очередностью всех работ.
Разложим по полочкам основные приемы оптимизации в связке с внутренними и внешними факторами ранжирования поисковых систем, а также в связке с поведенческими факторами и характеристиками. Разберемся с тем, что же должен делать оптимизатор для достижения топа.
Что должно включать в себя ТЗ на поисковую оптимизацию
Разберемся с основными блоками технического задания от оптимизатора, с тем, каким оно должно быть с точки зрения подачи информации и ее глубины.
Сравнение in-house подхода и агентства
Рассмотрим все «за» и «против» оптимизатора в штате компании и вне её.
На основе каких метрик нужно оценивать эффективность оптимизаторской работы
Выделим ключевые показатели эффективности работы оптимизатора, рассмотрим процесс их измерения, динамику, разберемся с возможными «миксами» и их связкой с мотивацией подрядчика.
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаYandex
Лекция Юлия Тихоход в Школе вебмастеров: «Структурированные данные на поиске»
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Что такое микроразметка и в чём её польза
Что такое микроразметка (семантическая разметка, семантическая микроразметка) и кому она нужна. Очень кратко — всё, что я знаю о применении семантической разметки поисковыми системами и другими веб-сервисами.
Передача данных в машиночитаемом виде
Какие ещё есть способы передать данные о сайте поисковым системам кроме микроразметки, особенности разных способов. Что бывает с плохими вебмастерами, которые пытаются обмануть поисковые системы и передать неверные данные.
Типы разметки
Из чего состоит микроразметка, какие бывают словари и синтаксисы. Популярные сочетания словарей и синтаксисов, как правильно выбирать нужную комбинацию для своего сайта.
Передача данных об интернет-магазине
Разбор семантической разметки: что в принципе доступно для разметки в интернет-магазине, что это даёт, а что можно не размечать вовсе.
Проверка правильности микроразаметки
Ошибки в микроразметке, способы их обнаружения и исправления. Популярные валидаторы микроразметки. Какие ошибки непременно нужно исправлять, а что можно игнорировать.
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаYandex
Лекция Сергея Лысенко в Школе вебмастеров: «Представление сайта в поиске»
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Основные элементы сниппетов: как влиять на их формирование
Как по внешнему виду и содержанию визитки судят, стоит ли «связываться», так и по представлению сайта на странице выдачи пользователи решают, стоит ли переходить на сайт. Как изменить представление сайта в выдаче поисковых систем? Что может повлиять на CTR и что для этого нужно сделать? Рассмотрим фавиконки, навигационные цепочки, быстрые ссылки и многое, многое другое.
Зачем нам заголовок: как им управлять
Что должно быть в заголовке, а чего уж точно не стоит делать. Как избавиться от мусора и расставить акценты. И как это скажется на представлении сайта в поиске.
Основной контент аннотации и мета-описания: что нам они дают
Сниппет — зачем он нужен? Как обрабатываются данные для аннотаций? Что в сниппете помогает, а что мешает пользователю сориентироваться? Как подсказать поисковой системе, что выводить в сниппете? От Open Graf до schema.org. Инструменты, возможности, рекомендации.
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Yandex
Лекция Екатерины Гладких в Школе вебмастеров: «Плохие методы продвижения сайта»
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Как завязывают с портянками
Как использовать wordstat, чтобы превратить текст в SEO-портянку. Как Яндекс определяет текстовый спам и какие ограничения могут быть применены к сайтам, злоупотребляющим ключевыми словами.
Эффектное размещение SEO-ссылок
Какие бывают SEO-ссылки и как они классифицируются в базе Яндекса. В чём отличие SEO-ссылок от рекламы. Как размещать SEO-ссылки наиболее эффектно. Методы борьбы против ссылочного спама – АГС и Минусинск. Снятие ссылок.
Поведенческие факторы, медитативные практики
Популярные сервисы накрутки: как это работает и как это не работает. Методы накрутки и методы борьбы с мошенничеством. Примеры пользовательских сессий и кто на самом деле посещает ваш сайт. Как выйти из-под санкций за накрутку поведенческих факторов.
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Yandex
Лекция Сергея Царика и Антона Роменского в Школе вебмастеров: «Основные принципы ранжирования»
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Как работает поиск
При запросе пользователя к поисковой системе происходит множество процессов, которые позволяют дать наиболее релевантный ответ. Рассмотрим основные механизмы формирования выдачи: формулы, Матрикснет, персонализацию и обновления.
Что учитывается при ранжировании сайтов
Так как сайты разные и по-разному решают пользовательские задачи, при ранжировании поисковой системе нужно учитывать множество факторов. Поговорим о том, что обязательно должно быть на сайте для правильной индексации.
Ещё о факторах ранжирования
Какой контент действительно важен и как его правильно представить. Для правильного ранжирования сайта важно разобраться с его региональной привязкой. Разберёмся, какой регион присваивать сайту и как сделать это правильно.
Реальный кейс долгосрочной работы над позициями
Посмотрим на реальном примере, как изменялись основные жизненные характеристики (трафик, конверсии) сайта на пути в топ выдачи поисковых систем.
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Yandex
Лекция Александра Смирнова в Школе вебмастеров: «Основные принципы индексирования сайта».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Как поиск находит страницу, её путь до появления в поиске
Поисковые системы постоянно собирают информацию о страницах в интернете. Как же это происходит и как добавить страницы своего сайта в поиск? Проверка индексирования сайта.
Как управлять роботом (зеркала, sitemap, robots.txt)
Множество сайтов в интернете доступны сразу по нескольким адресам. Как указать поисковому роботу на основной и как скорректировать индексирование?
Особенности индексирования
Современные сайты используют различные технологии в своей работе. Рассмотрим, как настроить их правильно и сделать контент доступным для робота.
Как улучшить индексирование (дубли, HTTP-ответ, удаление из поиска)
В поиск попадают различные страницы, которые известны роботу. Какие нужны, а какие нет? Как повлиять на их индексирование?
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Yandex
Лекция Александра Лукина в Школе вебмастеров: «Мобильное приложение: как и зачем»
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Проектирование. Быть или не быть
Обсудим обоснование для разработки мобильного приложения — какую ценность оно может принести для проекта и бизнеса. Определим основные типы приложений и сценарии использования. Рассмотрим основные технологии и выбор оптимальных для конкретных задач. ТЗ — как оценить и какие особенности необходимо учесть.
Разработка. Важные детали
На что обратить внимание на этапе разработки и тестирования, заметки по специфике мобильных экосистем. Выбираем арсенал SDK для всестороннего анализа проекта в полёте.
Публикация и продвижение
Кратко рассмотрим специфику Google Play и AppStore. Проведём экскурс в мир мобильного маркетинга, подчеркнём сходства с вебом и отличия от него. Рассмотрим ключевые метрики для анализа продукта и процесса продвижения, а также способы их повышения.
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Yandex
Лекция Олега Ножичкина в Школе вебмастеров: «Сайты на мобильных устройствах»
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Статистика и тренды по мобильному интернету
Основные показатели мобильного интернет-рынка. Тенденции роста мобильной аудитории.
Новые алгоритмы ранжирования поисковых систем
Адаптация сайта к мобильным пользователям и её влияние на позиции в поисковой выдаче.
Возможности для бизнеса в мобильном вебе
Мобильный сайт позволяет воспользоваться дополнительными возможностями взаимодействия с пользователем. Рассмотрим конкретные примеры.
Мобильный сайт и приложение — в чём разница
Чем отличается мобильное приложение от мобильно сайта. Какие преимущества и недостатки у каждого варианта.
Представление сайтов на мобильных устройствах
Адаптивные сайты. Мобильные сайты. Сайты для десктопа. Чем они отличаются, какие преимущества у каждого типа и нужно ли переключаться между мобильной и десктоп-версиями?
Удобный мобильный сайт для пользователя
Поведение пользователей на мобильном сайте. Отличия от десктопа, достижение целей и простые правила увеличения конверсии.
Специфика разработки мобильного сайта
Особенности проектирования, разработки и тестирования сайтов.
Инструменты для разработки мобильных сайтов
Готовые инструменты для проектирования и тестирования. Примеры фреймворков.
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Yandex
Лекция Юрия Батиевского в Школе вебмастеров: «Качественная аналитика сайта»
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Что мы хотим от аналитики сайта
На какие вопросы должна отвечать аналитика сайта. Как аналитика сайта связана с аналитикой бизнеса. На какие блоки можно поделить аналитику онлайн-процессов. Какой должна быть идеальная аналитическая система.
Анализ общих показателей бизнеса
Как построить систему аналитики бизнеса в интернете. Ключевые показатели эффективности (KPI). Построение воронки продаж. Business Intelligence — сквозная аналитика всех процессов.
Обзор инструментов для анализа сайта и аудитории
Яндекс.Метрика и Google Analytics как основа веб-аналитики. Инструменты для веб-мастеров. Инструменты для анализа действий пользователей (Kiss-metrics, Woopra, Mixpanel). Системы для подсчета целевых действий, CPA и ROMI.
Анализ каналов привлечения клиентов
Как анализировать источники трафика. Популярные инструменты для анализа.
Пройти тест по теме
Процесс развертывания системы аналитики сайта
Подготовка к установке систем веб-аналитики. Тонкости установки и настройки трекеров. Подключение коллтрекинга и дополнительных инструментов фиксации целевых действий. Настройка пользовательских сценариев. Пример по анализу пользовательского сценария.
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Yandex
Лекция Петра Аброськина в Школе вебмастеров: «Что можно и что нужно измерять на сайте».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Базовые принципы веб-аналитики
Как работает веб-аналитика и какие подводные камни есть в учёте и анализе данных. Как правильно работать с данными.
Основные метрики и термины
Посетители, визиты, глубина просмотра, время на сайте — какие метрики важны и чем они отличаются.
Как выбрать правильный KPI
Самый важный этап в веб-аналитике и продвижении сайта. Какие цели выбрать интернет-магазину, сайту услуг, контентному проекту и т.д.
Ключевые группы отчетов и применение знаний на практике
Семь главных типов отчётов для бизнеса. Анализ контекстной рекламы, SEO и контента сайта — на конкретных примерах.
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Yandex
Лекция Алексея Бородкина в Школе вебмастеров: «Как правильно поставить ТЗ на создание сайта».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
ТЗ: две буквы с большим потенциалом
Что такое техническое задание. Какое место оно занимает в веб-разработке. Какие цели преследует. И каким требованиям оно должно отвечать.
Что нужно сделать, прежде чем садиться за ТЗ
Зачем нужна подготовка к написанию ТЗ. Какую информацию нужно собрать и как выстроить этот процесс. На каком этапе веб-разработки нужно писать ТЗ — и что будет, если этот момент упустить. Какое отношение имеют к ТЗ прототипы, пользовательские истории и прочие инструменты проектирования.
Хорошее ТЗ
Как соединить в один документ описание интерфейсов, структуру данных и много чего ещё. Структура правильного, хорошего ТЗ с подробным разбором каждого пункта. С какой стороны приступать и как эффективнее всего выстроить работу.
Кто должен писать ТЗ
Кто может написать хорошее ТЗ. Где найти такого человека и как встроить его в общие процессы. Что делать, если ТЗ пишет сам заказчик.
Плохое ТЗ
Популярные ошибки. Чем они ужасны и как их избежать.
Жизнь с ТЗ
По какой схеме нужно согласовывать ТЗ. Как применять его в дальнейшей работе. Кому не нужно показывать ТЗ ни при каких обстоятельствах. Что делать, если ТЗ никому не нравится.
ТЗ по ГОСТ: ад на Земле
Краткая история развития ТЗ со времён Брежнева и до наших дней. Почему я старательно избегаю слова «ТЗ». Почему вы должны нервно вздрагивать при слове «ГОСТ». Что делать, если вы работаете с госзаказчиком.
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
Лекция Петра Волкова в Школе вебмастеров: «Как защитить свой сайт».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Актуальные типы угроз и динамика их развития
Компрометация сервера и её последствия. Распределённые атаки типа «отказ в обслуживании». Подмена или добавление рекламы на стороне клиента. Атаки, направленные на пользователей. Проблемы, связанные со внешним содержимым.
Управление рисками безопасности веб-сайтов
Разные типы сайтов подвержены разным типам рисков информационной безопасности. Понимание целей и подходов злоумылшенников как ключ к эффективному снижению рисков. Методы монетизации атак на сайты.
Доступный инструментарий и методики для обеспечения безопасности
Открытые инструменты форензики для типовых и сложных проектов. Системы обнаружения вторжений, подходы к проектированию безопасности в архитектуре и процессах.
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Yandex
Лекция Дмитрия Сатина в Школе вебмастеров: «Как правильно составить структуру сайта».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Структура сайта, ориентированная на человека; построение структуры, карточная сортировка
Содержимое сайтов часто организовано так, как кажется удобным разработчику или контент-менеджеру компании. Чаще всего такие структуры неудобны для реальных посетителей, потому что не совпадают с их знаниями, не поясняют, как устроен материал, и не помогают найти желаемое. Структура, ориентированная на пользователя, повышает вероятность того, что посетители найдут нужную информацию или товар и сделают это быстро.
Стройте структуру, исходя из пользовательских сценариев. Выделение на сайте разделов, соответствующих структуре компании или схеме процесса закупки, как правило, усложняет навигацию для пользователя. Правильная структура учитывает уровень знаний покупателя и использует понятные ему термины и способы группировки.
Разные типы структур, средства навигации, дальнейший поиск информации на странице
Структуры сайтов, на которых ищут что-то определённое, отличаются от тех, что используются на сайтах, посетители которых ещё не уверены, что именно они хотят или как называется нужная вещь. Строгие структуры — например, организация по наименованию товара, производителю, — предполагают один способ группировки. При нестрогой организации данные можно группировать по теме, по жизненной ситуации и так далее. Используйте средства навигации, которые помогают понять, как организован материал. Решая, какой будет визуальная реализация навигации на сайте, необходимо учитывать количество разделов и связи �
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Yandex
Лекция Дмитрия Васильева в Школе вебмастеров: «Технические особенности создания сайта».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Сайт — расплывчатое понятие
Раньше под словом «сайт» понимался набор HTML-страниц, расположенных в домене второго или третьего уровня. Появление социальных сетей размыло это понятие.
Как выбрать домен
Различные варианты, и какой из них подойдёт именно вашему сайту: доменные зоны, читаемые и нечитаемые домены, кириллица и латиница.
Подходы к созданию сайтов
Первые сайты делались на чистом HTML. Сейчас такой способ ещё встречается, но подавляющее большинство веб-страниц создаются при помощи CMS, фреймворков, конструкторов.
Составные сущности: структура, макеты дизайна, интерактивные элементы, контент, система прав. Размещение сайта на хостинге. Российские и зарубежные, дорогие и дешевые, облачные и традиционные провайдеры. Кратко о тонкостях взаимодействия с ними.
Что такое HTTPS
Всё более популярный безопасный протокол доступа к сайту. Нужен ли он вам и в каких случаях. Как выбрать платформу для сайта, основные системы управления сайтом (CMS) и конструкторы.
Сайт после запуска
Сайты создаются с конкретной целью, обычно связанной с получением дохода. Как контент сайта и его технические характеристики напрямую могут влиять на бизнес-эффективность.
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Yandex
Лекция Елены Першиной в Школе вебмастеров: «Конструкторы для отдельных элементов сайта».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
О пользе тех или иных технологий
Взгляд в будущее, короткий обзор других полезных технологий и «опасностей», которые подстерегают на пути к правильному их выбору.
Как выбрать поиск для сайта
Поиск для сайта — важный инструмент навигации. Чтобы оценить качество поиска по своему сайту, посмотрите на количество уходов со страницы результатов. Полнота, скорость индексирования, обработка запросов (исправление ошибок, опечаток, неправильной раскладки) — без этого невозможно представить качественный поиск.
Как выбрать карты для сайта
Уход посетителя с сайта на «большие» Яндекс.Карты за точной информацией об организации может обернуться потерей клиента, который уже был готов к покупке. Чтобы этого не допустить, лучше сделать интерактивную карту прямо на сайте.
Автоматизация оплаты на сайте
Люди привыкают платить картой, сегодня даже уличные киоски принимают их. Поэтому многим посетителям кажется «подозрительным» интернет-магазин, в котором недоступны электронные платежи. Начать приём банковских карт в онлайне очень просто, главное выбрать для этого подходящую технологию.
Перевод важных страниц
На каких языках говорит ваша аудитория, много ли у вас посетителей из-за рубежа? Ответы на эти вопросы даст Яндекс.Метрика. Именно она поможет оценить, нужно ли тратиться на профессионального переводчика и готовить отдельные описания товаров или новости на других языках. Во многих случаях для совершения покупки достаточно и простого машинного перевода. Узнайте, как его настроить, чтобы ключевые разделы сайта автоматически переводились для иностранных посетителей.
Социальная интеграция
Как заставить пользователей говорить о себе в социальных сетях? В первую очередь нужно сделать хороший продукт или услугу, но и без удобного инструмента для «шаринга» в соцсетях — никуда. Рекомендации о том, как выбрать и установить такой инструмент к себе на сайт.
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Yandex
Лекция Катерины Ерошиной в Школе вебмастеров: «Контент для интернет-магазинов».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Виды контента для интернет-магазинов
Основные страницы, карточки товаров, каталог в целом. Письма покупателям. Статьи для интернет-магазина.
Основные сервисные страницы: что нужно знать покупателю
О страницах доставки, оплаты, контактов, условий работы.
Страница товара интернет-магазина: какой нужен текст, чтобы товар нашли
Признаки товаров. Сниппеты товарных позиций. Когда текст не нужен вообще. Постоянная и техническая информация на карточке.
Блог и внешние публикации интернет-магазина
О чем писать, чтобы подогреть интерес к магазину. Сторителлинг. UGC: методы вовлечения (кратко).
Персонализация интернет-магазина: стать ближе к покупателю
Красивый пример личного бренда директора магазина.
Копирайтинг для интернет-магазина: на чём можно и нельзя экономить
Что делать, если у вас 100 000 товарных позиций и они постоянно меняются.
Хорошее ТЗ копирайтеру для наполнения интернет-магазина
Что должен знать копирайтер, чтобы не писать ерунду.
Как оценить работу копирайтера
Стандартные проверки. Контроль качества текста средствами аналитики.
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Yandex
Лекция Катерины Ерошиной в Школе вебмастеров: «Как написать хороший текст для сайта».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Назначение и типы текстов на сайте и вне его
Цель текста — влиять на поведение пользователя. Самое простое — информировать, самое сложное — привести к покупке. Виды текстов для внешних публикаций. Белые книги и другие способы подтвердить экспертизу.
Контент-план для наполнения, развития сайта и внешних публикаций
Как проектировать контент для нового сайта. Как наращивать информационную массу сайта. Внешние контакты с потребителем.
Разные уровни вовлечения: информируем, продаём, помогаем
Пройти по пути покупателя, выдавать информацию, необходимую для совершения следующего шага. Ловушки на этом пути.
Информационный стиль: применение с пониманием
Чистить текст без фанатизма. Эмоциональное вовлечение. Рациональное обоснование.
Структура и вёрстка
Заголовки и подзаголовки, списки, абзацы, иерархия подачи информации.
SEO-аспекты и LSI-копирайтинг
Понимание ценности ключей. Зачем копирайтеру нужно семантическое ядро.
Оценка качества текста (чеклист)
Уникальность, фактическая достоверность, соответствие целям, информационная плотность, грамотность.
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Yandex
Лекция Алексея Иванова в Школе вебмастеров: «Usability и дизайн: как не помешать пользователю».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Что такое юзабилити и почему оно важно
Поведение пользователей на сайте и достижение ими запланированных целей зависит не только от контента, но и от удобства сайта.
Информационное и функциональное наполнение сайта
Перед созданием сайта нужно правильно определить, какая информация и какой функционал должны быть на сайте. При этом нужно исходить не из того, что у вас есть, а из того, что будет нужно будущим посетителям вашего сайта.
Проектирование входных страниц
В зависимости от целей сайта и источников посетителей нужно сформулировать требования к входным страницам сайта и их содержанию.
Сценарии поведения пользователя
Для правильного распределения информации нужно описать сценарии взаимодействия с сайтом для разных групп посетителей. Рассмотрим методы совмещения разных сценариев на одном сайте.
Пройти тест по теме
Управление конверсией
В большинстве случаев мы ждем от посетителя сайта какого-то целевого действия. Это может быть регистрация, отправка заявки, звонок или что-то ещё. Вы увидите способы мотивации посетителей к совершению целевого действия для различных типов сайтов.
Пройти тест по теме
Основные принципы распределения информации
В рамках этого блока вы увидите, как нужно распределять информацию на странице, чтобы посетители увидели всё, что вы хотите им показать.
Мобильная версия сайта и принципы юзабилити
Всё больше посетителей приходят на сайт с мобильных устройств. Рассмотрим основные особенности взаимодействия с информацией с мобильного устройства и подходы к адаптации сайта под них.
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Yandex
Лекция Алексея Иванова в Школе вебмастеров Яндекса: «Сайт. Зачем он и каким должен быть».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Типы сайтов и потребности аудитории
В зависимости от решаемых задач, сайты можно разделить на несколько характерных типов с разными функциями и контентом. Перед созданием сайта важно понять, чего ждут посетители и какими хотят видеть веб-страницы. При этом на один и тот же сайт может попадать разная аудитория, которая ведёт себя по-разному и каждая имеет свои потребности. Для каждого сегмента нужно разработать отдельные сценарии взаимодействия с информацией на вашей площадке.
Сайт с точки зрения бизнеса
Чаще всего сайт создается для решения конкретных бизнес-задач. Рассмотрим различные типы монетизации сайтов и особенности каждого из них.
Основные показатели и методы измерения
Одно из главных преимуществ цифровых каналов — детальная аналитика взаимодействия посетителей с сайтом. В данном блоке рассмотрим основные инструменты измерения, ключевые показатели сайта, на которые нужно обращать внимание, и подходы к интерпретации полученных данных для принятия решений.
2. Объявления
Конкурс параллельного программирования Accelerate 2012 1
16 апреля - 16 мая
Результаты участия могут быть зачтены как дополнительные
баллы по курсу
Плановый downtime учебного кластера
25.04.2012, 19:00-20:00 MSK
1
http://software.intel.com/ru-ru/articles/contest-accelerate-2012-main/
О.В. Сухорослов () 09 MapReduce 20.04.2012 2 / 63
3. План лекции
Инструменты для работы с Hadoop MapReduce
Задачи на графах и MapReduce
Ограничения MapReduce, другие модели
О.В. Сухорослов () 09 MapReduce 20.04.2012 3 / 63
4. Инструменты для работы с Hadoop MapReduce
О.В. Сухорослов () 09 MapReduce 20.04.2012 4 / 63
6. Apache Pig
Платформа для анализа больших объемов данных
Высокоуровневый язык Pig Latin для описания процедур анализа
и обработки данных
Среда выполнения программ на Pig Latin
Локальное выполнение внутри одной JVM
Компилятор из PigLatin в MapReduce-задания, выполняемые на
Hadoop
О.В. Сухорослов () 09 MapReduce 20.04.2012 6 / 63
7. Цели
Процедуры обработки данных на практике
состоят из нескольких стадий
подразумевают несколько входов и выходов
сочетают стандартные (filter, join ...) и специально реализованные
операции
MapReduce
1 вход, 2 фиксированных шага, 1 выход
много ручного кодирования (соединение MR-стадий руками,
ухищрения для нескольких входов/выходов, реализация типовых
операций)
семантика скрыта внутри map/reduce функций
длительный цикл разработки программы (реализация,
компиляция, упаковка, запуск)
Требуется высокоуровневая модель программирования поверх
MapReduce с быстрым циклом разработки
О.В. Сухорослов () 09 MapReduce 20.04.2012 7 / 63
8. Pig Latin
Процедурный стиль программирования
Последовательность действий
Встроенные операторы
SQL-подобные примитивы
FILTER, GROUP, JOIN, COGROUP, UNION ...
Аналог map
FOREACH ... GENERATE
Чтение и запись данных
LOAD, STORE
Расширение с помощью пользовательских функций
Java, Python, JavaScript
О.В. Сухорослов () 09 MapReduce 20.04.2012 8 / 63
9. Модель данных
Выражения Pig Latin оперируют с мешками (bag)
Мешок является коллекцией кортежей
Кортеж (tuple) - упорядоченное множество полей (field)
У поля есть имя и тип
Внутри поля хранятся данные
О.В. Сухорослов () 09 MapReduce 20.04.2012 9 / 63
10. Word Count
1 data = LOAD ’ data ’ AS ( line : chararray );
2
3 words = FOREACH data GENERATE
4 FLATTEN ( TOKENIZE ( LOWER ( line ) ));
5 grouped = GROUP words BY $0 ;
6 counts = FOREACH grouped GENERATE group , COUNT ( words );
7 ordered = ORDER counts BY $1 DESC ;
8
9 STORE ordered INTO ’ counts ’;
О.В. Сухорослов () 09 MapReduce 20.04.2012 10 / 63
11. Word Count (1)
1 $ pig -x local
2 grunt > data = LOAD ’ saltan . txt ’ AS ( line : chararray );
3 grunt > DUMP data ;
("Кабы я была царица,-)
(Говорит одна девица,-)
(То на весь крещеный мир)
(Приготовила б я пир".)
(- "Кабы я была царица,-)
(Говорит ее сестрица,-)
(То на весь бы мир одна)
(Наткала я полотна".)
(- "Кабы я была царица,-)
(Третья молвила сестрица,-)
(Я б для батюшки-царя)
(Родила богатыря".)
О.В. Сухорослов () 09 MapReduce 20.04.2012 11 / 63
12. Word Count (2)
1 grunt > words = FOREACH data GENERATE
2 FLATTEN ( TOKENIZE ( LOWER ( line ) ));
3 grunt > DUMP words ;
(кабы)
(я)
(была)
(царица)
(-)
(говорит)
(одна)
(девица)
(-)
(то)
...
О.В. Сухорослов () 09 MapReduce 20.04.2012 12 / 63
13. Word Count (2*)
1 grunt > words = FOREACH data GENERATE
2 TOKENIZE ( LOWER ( line ) );
3 grunt > DUMP words ;
({(кабы),(я),(была),(царица),(-)})
({(говорит),(одна),(девица),(-)})
({(то),(на),(весь),(крещеный),(мир)})
({(приготовила),(б),(я),(пир),(.)})
({(-),(кабы),(я),(была),(царица),(-)})
({(говорит),(ее),(сестрица),(-)})
({(то),(на),(весь),(бы),(мир),(одна)})
({(наткала),(я),(полотна),(.)})
({(-),(кабы),(я),(была),(царица),(-)})
({(третья),(молвила),(сестрица),(-)})
({(я),(б),(для),(батюшки-царя)})
({(родила),(богатыря),(.)})
О.В. Сухорослов () 09 MapReduce 20.04.2012 13 / 63
14. Word Count (3)
1 grunt > grouped = GROUP words BY $0 ;
2 grunt > DUMP grouped ;
(-,{(-),(-),(-),(-),(-),(-),(-),(-)})
(.,{(.),(.),(.)})
(б,{(б),(б)})
(я,{(я),(я),(я),(я),(я),(я)})
(бы,{(бы)})
(ее,{(ее)})
(на,{(на),(на)})
(то,{(то),(то)})
(для,{(для)})
(мир,{(мир),(мир)})
...
О.В. Сухорослов () 09 MapReduce 20.04.2012 14 / 63
22. MapReduce-задания для WordCount
... Choosing to move algebraic foreach to combiner
... MR plan size before optimization: 3
... MR plan size after optimization: 3
JobId Maps Reduces Alias Feature
job1 83 12 counts,data,grouped,words GROUP_BY,COMBINER
job2 6 1 ordered SAMPLER
job3 6 1 ordered ORDER_BY
Job DAG:
job1 -> job2,
job2 -> job3,
job3
1 grunt > EXPLAIN - script wiki - count . pig
2 - param input =/ data / wiki / en / articles
3 - param output = wiki - count - en
О.В. Сухорослов () 09 MapReduce 20.04.2012 22 / 63
23. Количество REDUCE-задач?
Автоматический режим
Эвристика на основе объема входных данных (1Gb per reducer)
1 # reducers = MIN ( pig . exec . reducers . max ,
2 tota l_input_b ytes / pig . exec . reducers . bytes . per . reducer )
Ручной режим
Команда “set default parallel N”
Ключевое слово PARALLEL
Применяется с операторами GROUP, COGROUP, CROSS,
DISTINCT, JOIN, ORDER BY
О.В. Сухорослов () 09 MapReduce 20.04.2012 23 / 63
24. Пример использования PARALLEL
1 data = LOAD ’ $input ’ AS ( title : chararray ,
2 content : chararray );
3 words = FOREACH data GENERATE
4 FLATTEN ( TOKENIZE ( LOWER ( content ) ));
5 grouped = GROUP words BY $0 PARALLEL 70;
6 counts = FOREACH grouped GENERATE group , COUNT ( words );
7 ordered = ORDER counts BY $1 DESC PARALLEL 5;
8 STORE ordered INTO ’ $output ’;
О.В. Сухорослов () 09 MapReduce 20.04.2012 24 / 63
25. Пример 2
Найти Top10 наиболее посещаемых сайтов в каждой категории
О.В. Сухорослов () 09 MapReduce 20.04.2012 25 / 63
29. User Defined Functions2
Позволяют реализовать произвольную логику обработки данных,
а также поддержку чтения/записи различных форматов
Поддерживаемые языки реализации UDF
Java
Наболее широкие возможности и максимальная эффективность
Python
Нет поддержки load/store
JavaScript
Experimental
2
http://pig.apache.org/docs/r0.9.2/udf.html
О.В. Сухорослов () 09 MapReduce 20.04.2012 29 / 63
30. Более сложные примеры
Pig Tutorial3
Анализ логов поисковой системы
Определение популярных поисковых запросов по часам дня
Сравнение популярности поисковых запросов за два временных
периода
3
http://pig.apache.org/docs/r0.9.2/start.html#tutorial
О.В. Сухорослов () 09 MapReduce 20.04.2012 30 / 63
31. Запуск Pig на учебном кластере
Установлен Pig 0.9.2
Интерактивная оболочка Grunt
1 $ pig -- help // Help
2 $ pig -x local // Local mode
3 $ pig // MapReduce mode ( - x mapreduce )
Скрипт-файл
1 $ pig -x local myscript . pig
2 $ pig myscript . pig
3
4 // Will replace ’ $pname ’ with ’ pvalue ’ in script
5 $ pig - param pname = pvalue myscript . pig
О.В. Сухорослов () 09 MapReduce 20.04.2012 31 / 63
32. Pig и домашние задания
Pig нельзя использовать при решении ДЗ №3
Pig можно будет использовать при решении ДЗ №4
О.В. Сухорослов () 09 MapReduce 20.04.2012 32 / 63
34. Apache Mahout
Масштабируемые реализации алгоритмов машинного обучения
Для Hadoop MapReduce и не только
Алгоритмы13
Classification
Clustering
Pattern Mining
Recommenders / Collaborative Filtering
...
13
https://cwiki.apache.org/confluence/display/MAHOUT/Algorithms
О.В. Сухорослов () 09 MapReduce 20.04.2012 34 / 63
35. Задачи на графах и MapReduce
О.В. Сухорослов () 09 MapReduce 20.04.2012 35 / 63
36. Классы задач
Поиск и планирование путей
Выделение компонент
Нахождение минимального остовного дерева
Паросочетания в двудольном графе
Максимальный поток в сети
Поиск “особых” вершин
О.В. Сухорослов () 09 MapReduce 20.04.2012 36 / 63
37. Большие графы
Ссылочный граф Web
Миллиарды вершин
Социальные сети
Сотни миллионов вершин
Часто разреженные
Число ребер порядка числа вершин
О.В. Сухорослов () 09 MapReduce 20.04.2012 37 / 63
38. Представления графа
Матрица смежности
Список смежных вершин
Эффективнее для разреженных графов
О.В. Сухорослов () 09 MapReduce 20.04.2012 38 / 63
42. Параллельный алгоритм
Применение поиска в ширину для определения кратчайших путей
d(source) = 0
Для всех вершин n, достижимых из source: d(n) = 1
Для всех вершин n, достижимых из некоторого множества вершин
S: d(n) = 1 + minm∈S d(m)
Параллельный поиск в ширину
Каждая итерация может быть представлена в виде
MapReduce-задания
Рассмотрим сначала вариант графа с ребрами единичного веса
О.В. Сухорослов () 09 MapReduce 20.04.2012 42 / 63
43. Итерация
Структура графа передается между map и reduce
Результат итерации используется в качестве входа следующей
итерации
О.В. Сухорослов () 09 MapReduce 20.04.2012 43 / 63
44. Остановка
Продолжаем итерации до тех пор, пока не останется вершин с
d =∞
Делаем проверку в Reduce и записываем в счетчик
Сколько итераций потребуется?
О.В. Сухорослов () 09 MapReduce 20.04.2012 44 / 63
45. Ребра с произвольными весами
В списках смежных вершин требуется дополнительно хранить веса
ребер w
В Map вместо d + 1 возвращается d + w
Условие остановки итераций?
О.В. Сухорослов () 09 MapReduce 20.04.2012 45 / 63
46. Остановка
Остановить итерации следует тогда, когда расстояния перестанут
изменяться
Что если в графе есть ребра с отрицательным весом?
О.В. Сухорослов () 09 MapReduce 20.04.2012 46 / 63
47. Сравнение с последовательным алгоритмом
Алгоритм Дейкстры
эффективнее в плане общего количества операций
использует глобальную структуру данных в памяти
плохо распараллеливается
Алгоритм на MapReduce
выполняет бОльшее количество операций
хорошо распараллеливается
хорошо масштабируется (для разреженных графов)
О.В. Сухорослов () 09 MapReduce 20.04.2012 47 / 63
48. MapReduce-алгоритмы на графах
Структура графа представлена с помощью списков смежных
вершин
Помимо этого с каждой вершиной и ребром может быть связаны
некоторые данные
Map
вычисления над каждой вершиной в отдельности, с
использованием локальных данных и исходящих ребер
результаты вычислений оформляются в виде пар
(соседняя_вершина, значение)
Reduce:
аггрегация всех промежуточных значений, поступивших для
заданной вершины
Структура графа передается между map и reduce
Обычно итерационный процесс
Основная программа осуществляет запуск MR-итераций и
проверяет условие остановки
О.В. Сухорослов () 09 MapReduce 20.04.2012 48 / 63
49. PageRank
Определение рейтинга страницы через количество ведущих на нее
ссылок и рейтинги ссылающихся страниц (Брин, 1998)
О.В. Сухорослов () 09 MapReduce 20.04.2012 49 / 63
50. Модель случайного блуждания по Web-графу
Стартуем на случайной странице
С вероятностью α (около 0,15) переходим на случайную страницу
С вероятностью (1 − α) переходим по одной из ссылок на странице
PageRank
предельная вероятность оказаться на заданной странице
распределение вероятности по всем страницам
О.В. Сухорослов () 09 MapReduce 20.04.2012 50 / 63
51. Вычисление PageRank
Рекурсивная формула
Итеративный алгоритм
Вычисляем новые значения PR по формуле, используя значения с
предыдущей итерации
Достаточно быстро сходится
Для графа с 322M ребер потребовалось 52 итерации
О.В. Сухорослов () 09 MapReduce 20.04.2012 51 / 63
56. Вершины без исходящих ребер
Проблема
Нарушается постоянство суммарного значения PageRank
Решение
Равномерное распределение “пропавшей” массы PageRank между
всеми вершинами графа
Реализация на MapReduce
Подсчет “пропавшего” PageRank
Счетчик
Промежуточные значения со специальным ключом
Запись промежуточной суммы каждой map-задачи в сторонний
файл
Распределение “пропавшего” PageRank между всеми вершинами
Дополнительное MapReduce-задание
Внутри map вычисляем окончательное значение PageRank с
учетом дополнительной массы m и фактора α:
О.В. Сухорослов () 09 MapReduce 20.04.2012 56 / 63
57. Остановка
Значения PR стабилизировались
Фиксированное число итераций
Ранжирование страниц стабилизировалось
О.В. Сухорослов () 09 MapReduce 20.04.2012 57 / 63
58. Оптимизация MapReduce-алгоритмов на графах14
Использование in-mapper combining
Повышение эффективности локальной аггрегации путем
предварительного разбиения графа на компоненты с сильной
внутренней связностью
Сортировка пользователей социальной сети по местоположению
Сортировка страниц по доменным именам
Отказ от передачи по сети (shuffle) структуры графа
Передаем только “сообщения” между вершинами графа
Reducer загружает соотв. часть графа из файла в HDFS
14
http://www.umiacs.umd.edu/ jimmylin/publications/Lin_Schatz_MLG2010.pdf
О.В. Сухорослов () 09 MapReduce 20.04.2012 58 / 63
60. Ограничения MapReduce и альтернативные модели
О.В. Сухорослов () 09 MapReduce 20.04.2012 60 / 63
61. Ограничения MapReduce
Глобальная синхронизация только между map и reduce
Задачи, требующие наличия общего глобального состояния во
время вычислений
Синхронизация между заданиями через чтение/запись в ФС
Итеративные алгоритмы
Batch-обработка больших порций данных
Online-обработка данных в потоковом режиме
Инкрементальное добавление небольших порций
Real-time запросы
О.В. Сухорослов () 09 MapReduce 20.04.2012 61 / 63
62. Предлагаемые расширения и надстройки
Map-Reduce-Merge
SQL engine on top of MapReduce
Tenzing (Google, 2011)
Parallel Collections
FlumeJava (Google, 2010)
Iterative
HaLoop
Twister
Hadoop Online
Online aggregation
Stream processing
Spark
Iterative algorithms
Interactive data mining
О.В. Сухорослов () 09 MapReduce 20.04.2012 62 / 63
63. Другие модели и архитектуры
Dataflow
Dryad/DryadLINQ (Microsoft), Nephele/PACT, SCOPE
Real-Time / Stream Processing
S4 (Yahoo!), Cloudscale (C++, MPI), Storm (Twitter)
Graph Processing
Pregel (Google, 2009), Giraph, Golden Orb
GraphLab
Partitioned In-memory Table
Piccolo
Incremental Processing
Percolator (Google, 2010)
Interactive Analysis, ad hoc queries
Dremel (Google, 2010)
О.В. Сухорослов () 09 MapReduce 20.04.2012 63 / 63