Блог Монашёва Михаила
Без бэкапа по жизни.
Привет, Гость
  Войти…
Регистрация
  Сообщества
Опросы
Тесты
  Фоторедактор
Интересы
Поиск пользователей
  Дуэли
Аватары
Гороскоп
  Кто, Где, Когда
Игры
В онлайне
  Позитивки
Online game О!
  Случайный дневник
MindMix
Ещё…↓вниз
Отключить дизайн


Зарегистрироваться

Логин:
Пароль:
   

Забыли пароль?


 
yes
Получи свой дневник!

Блог Монашёва Михаила > MapReduce




суббота, 24 января 2009 г.
Эволюция в обработке данных. Михаил 11:25:12
Вышла интереснаяцепочка: проблема - её решение - проблемы решения.

Данные в коде.
- Неудобно добавлять данные.
Данные в текстовых файликах.
- Неудобно менять данные.
Данные в MySQL + сложные запросы с множеством JOIN-ов.
- Проблемы с производительностью­ БД.
Кэширование в memcached-е.
- Неэффективное кэширование из-за большой связанности данных.
Переход на объекты, кэширование объектов, а не результатов сложных запросов.
- JOIN-ы по прежнему тормозят БД.
Отказ от JOIN-ов и переход на последовательные простые SELECT-ы и их кэширование в memcached-е.
- Данные перестали влезать на диск и/или скорости диска не хватает для их записи и чтения.
Шардинг.
- Опять неудобно менять данные.
MapReduce. Пока этот этап не пройден.
- Неэффективность перебора данных. Подозреваю, что также будут проблемы с пропускной способностью сети и возможно с недостатком процессора.

Что дальше? Выслушаю Ваши мысли.

Категории: Оптимизация, Memcached, MySQL, MapReduce
комментировать 3 комментария | Прoкoммeнтировaть
среда, 21 января 2009 г.
О том, как работает MapReduce Михаил 11:22:16
Недавно узнал, как работает MapReduce и как оказалось, многим он интересен, а принцип работы понять сложно. Попробую объяснить это на примере.

Работает оно так: на входе имеем пары ключ->значение. Например, аксес-лог, который мы хотим обработать и посчитать хиты и хосты посетителей из России. Номер строчки - ключ. Содержимое строчки - значение. На самом деле не важно что там ключ, а что значение. Просто нужно как-то данные представить в виде хэша и дальше их передать, а с таким представлением легче реализовать нарезку этого хэша на кусочки.

Этот хэш делится на много кусочков и каждый кусочек отдаётся своему Маперу. Процессам, которые будет обрабатывать эти данные.

Маперам приходят эти строчки. Они обрабатывают каждую строчку, и выплёвывают от нуля до нескольких пар ключ->значение. В нашей задаче, мы в полученной строке лога выпаршиваем IP, смотрим из какой он страны, и если из России, то выплёвываем пару ip->1 . Т.е. у ip такого засчитан один хит. Если ip не из России, то ничего не выплёвываем.

Когда все маперы отработали и выплюнули много пар ключ->значение, эти пары агрегируются и преобразуются в пары ключ->значение1,...­,значениеN. Т.е. значения у одинаковых ключей сливаются в один список значений. В нашем случае мы получаем пары ip->1,1,1,1,1,1,1 .

Далее эти пары ключ->значение1,...­,значениеN раскидываются по Редьюсерам и они их обрабатывают. Редьюсеры - это такие же процессы, как и Маперы их тоже запускается несколько. На выходе они возвращают также пары ключ->значение. В нашем случае мы при инициализации каждого Редьюсера устанавливаем в ноль две переменные: hits, hosts. При обработке каждой пары ключ->значение1,...­,значениеN суммируем у каждого ip количество единичек и получаем количество хитов для ip. И потом увеличиваем наши счётчики: hits на количество хитов для обратываемого ip-шника, hosts - на единицу. После отработки каждого Редьюсера получаем от них 2 пары: hosts->123, hits->456. Это наши хиты и хосты. Складываем эти цифры, полученные от всех Редьюсеров, и получаем хиты и хосты посетителей из России.

Категории: MapReduce
Прoкoммeнтировaть


Блог Монашёва Михаила > MapReduce

читай на форуме:
Спайной ночи Миндмикс Ширли спать п...
А чё тут все ночью спят? 8-|
я тебе не нужная не буду тебе нужна...
пройди тесты:
Весенее обострение или я на веки твой!1
Любовь и смерть
За что мне эти муки?! 7 часть
читай в дневниках:
~Предисловие~
~Кабинет ButterFly1999~
~Коллекция№1~

  Copyright © 2001—2018 MindMix
Авторами текстов, изображений и видео, размещённых на этой странице, являются пользователи сайта.
Задать вопрос.
Написать об ошибке.
Оставить предложения и комментарии.
Помощь в пополнении позитивок.
Сообщить о неприличных изображениях.
Информация для родителей.
Пишите нам на e-mail.
Разместить Рекламу.
If you would like to report an abuse of our service, such as a spam message, please contact us.
Если Вы хотите пожаловаться на содержимое этой страницы, пожалуйста, напишите нам.

↑вверх