• Hadoop, часть 1: развертывание кластера

      hadoop

      Непрерывный рост данных и увеличение скорости их генерации порождают проблему их обработки и хранения. Неудивительно, что тема «больших данных» (Big Data) является одной из самых обсуждаемых в современном ИТ-сообществе.

      Материалов по теории «больших данных» в специализированных журналах и на сайтах сегодня публикуется довольно много. Но из теоретических публикаций далеко не всегда ясно, как можно использовать соответствующие технологии для решения конкретных практических задач.

      Одним из самых известных и обсуждаемых проектов в области распределенных вычислений является Hadoop — разрабатываемый фондом Apache Software Foundation свободно распространяемый набор из утилит, библиотек и фреймворк для разработки и выполнения программ распределенных вычислений.

      Мы уже давно используем Hadoop для решения собственных практических задач. Результаты нашей работы в этой области стоят того, чтобы рассказать о них широкой публике. Эта статья — первая в цикле о Hadoop. Сегодня мы расскажем об истории и структуре проекта Hadoop, а также покажем на примере дистрибутива Hadoop Cloudera, как осуществляется развертывание и настройка кластера.

      Осторожно, под катом много трафика.
      Читать дальше →
    • Как релизится GitHub

        Yac 2013 посетил Jason Rudolph из GitHub. Я считаю его доклад про API был одним из самых интересных на конференции. Яндекс обещал выложить в сеть записи, так что советую на досуге посмотреть его всем, кто не видел.

        Но речь пойдет не о докладе. На картинке график релизов GitHub на продакшн.



        Когда я услышал цифру, я не поверил своим ушам. У GitHub'а сотни обновлений в неделю. В команде около сорока разработчиков и ни одного QA.

        К счастью Джейсон после доклада еще какое-то время находился рядом со сценой и я смог расспросить его с пристрастием о том как они это делают.
        Читать дальше →
      • Архитектура BigData-инфраструктуры сервиса Pandorama и защита ее данных от сбоев

          Если мантра Google звучит как “поиск всей информации в мире одним кликом”, то мантра молодого российского проекта Pandorama идет дальше: “найдем без клика всю интересную вам информацию”.



          Приложение Pandorama предлагает своим пользователям “бесконечную” персонализированную ленту новостей, составленную на основе их личных информационных предпочтений, не требуя при этом от читателя работы с “тегами”, “категориями” или “лайками” друзей. Сначала нужно ответить на пару вопросов про несколько забавных панд, а потом нужно просто… читать предлагаемую ленту. Те новости, которые вы прочитали, будут автоматически анализироваться и обрабатываться системой, с тем, чтобы в дальнейшем такого рода новостей в ленте становилось все больше, а тех новостей, которые не вызвали у вас интереса – все меньше.



          Pandorama

          Pandorama уже объединяет более 40 тыс. пользователей по всему миру, и это число постоянно растет. В данной статье рассматривается BigData-инфраструктура этого проекта, функционирующая в режиме 24x7, механизмы обеспечения ее отказоустойчивости, и защита ее данных от сбоев, построенная с использованием Veeam Backup & Replication Cloud Edition.


          Читать дальше →
        • Hadoop Tutorial. Пишем свой grep

          Доброго времени суток, дорогое хабрасообщество. Не так давно я начал изучать работу с большими данными (Map/Reduce, NoSQL...) и очень быстро узнал о фреймворке с открытым исходным кодом Apache Hadoop, за изучение которого сразу и принялся.

          Данный пост рассчитан на новичков, которые тоже не так давно начали изучать Hadoop. В посте будет разобрано небольшое приложение построенное на этом фреймворке(Этакий Hello World!). Кому интересно, добро пожаловать под кат.
          Читать дальше →
          • +29
          • 33.1k
          • 8
        • Технология Real Time MapReduce в Яндексе. Как ускорить что-то очень большое

            Некоторое время назад мы рассказывали на Хабре о том, что поиск Яндекса стал более персонализированным. Он учитывает не только постоянные, но и сиюминутные интересы пользователя, ориентируясь на последние несколько запросов и действий.

            Сегодня мы хотим рассказать о технологии Real Time MapReduce, благодаря которой всё это стало возможно. Она обеспечивает передачу и обработку огромных объёмов данных, необходимых для этой задачи, и чтобы сделать это, нам даже не пришлось переписывать код для MapReduce, который у нас уже использовался.



            Чтобы персонализировать поисковую выдачу, нужно определить круг интересов пользователя, для чего мы сохраняем информацию о его поведении на странице поиска. Данные о действиях пользователя записываются в логи, а затем обрабатываются при помощи специальных алгоритмов, которые позволяют нам составить наиболее релевантную выдачу по запросу для каждого отдельно взятого пользователя. Сначала обработка логов запускалась раз в сутки, для чего очень хорошо подходила технология распределенных вычислений MapReduce. Она прекрасно справляется с анализом значительных объемов данных.
            Читать дальше →
          • Краткий список нововведений в Oracle 12c

              Час назад прошла On-line презентация 12-й версии РСУБД Oracle.
              На YouTube грохнули В хорошем качестве

              Кому лень смотреть и переводить — кратко выжимка в посте.


              Концепция 12й версии:
              Вообще 12с означает CLOUD — суть в том, что предлагается объединять все свои БД(PluggableDB=PDB) в единое облако(CloudDB = CDB)
              Сама технология называется Multitenant Database.
              Важно — все PDB д.б. обновлены до версии 12c.
              К одной CDB можно подключить до 255 PDB.

              Фишки DBA:
              1. Патч накатывается 1 раз на всё CDB — далее он реплицируется на все PDB автоматом.
              2. 2 PDB объединенные в CDB можно MERGE-ить.
              3. На все PDB пишется ТОЛЬКО 1 общий backup. Накатывается тоже 1 раз сразу на все.
              4. Утилита Privileges Analysis — позволяет отслеживать выданные права и роли, предотвращать «лишние» права.
              5. Служебный процесс DataOptimization — сжимает «холодные» блоки таблиц.

              Основные фишки кодера (их более 500):
              1. Новый тип данных для PK — Identity. Сам создает сиквенс, который (видимо) создает триггер Before Insert и дергает его.
                Подобная вещь давно есть в PostgreSQL — называется SERIAL.
              2. NOT NULL полю теперь можно присвоить DEFAULT VALUE даже если в нем есть данные. NULL-ячейки моментально обновятся на DEFAULT
              3. БД-шный тип VARCHAR расширили с 4000 char до 32000 char (как в PL/SQL)
              4. В запросах можно выбирать любые строки по номерам — select… TOP 10 или выбрать 3,5 и 10 строки
              5. Новый формат ф-ии syntax в регулярных выражениях (можно делать гибкий поиск).
              6. On-line перемещение партиций таблиц (больше не надо останавливать Instance, все далает на лету).
              7. Explain plan оптимизирован, учитиывает статистику, и горячие блоки (см. фичу HeatMap).
              8. Новые типы гистограмм при сборе статистики таблиц.
              9. В UNDO и REDO логи больше не пишутся записи из TEMPORARY-таблиц. Теперь эти логи пишутся в САМИ временные таблицы.
              10. Фича HeatMap (Карта обращений) — собирает статистику обращений к каждому блоку. Есть 3 типа: HOT, WARM, COLD.
                Перемещает «горячие» блоки перед «холодными» и «теплыми». Помещает эти данные в статистику таблицы. Далее учитывает при чтении.
              11. Фича Transaction Guard — предотвращает повторные транзакции типа «дрогнул палец, нажал 2 раза».

              Подробнее на офиц.сайте: Здесь

              P.S.
              Oracle Database 12c New Features – Part 1
              Oracle Database 12c New Features – Part 2
              P.P.S.
              Oracle Database 12c New Features – Part 3
              Oracle Database 12c New Features – Part 4
            • Шаг за шагом, или Как мы строили свой поиск

                В прошлом посте мы рассмотрели примеры архитектуры поисковиков. Везде ключевую роль играет база данных, над которой удобно производить некоторые операции, исследовать и анализировать содержащиеся в ней документы.

                До весны 2012 года у нас вместо такой базы существовали две базы данных разного уровня — со стороны спайдера, который имел свою собственную базу URL-ов, и со стороны индексатора. Это было крайне неудобно: допустим, если пользователь жаловался, что его сайт не индексируется, то для того, чтобы найти причину, при старой архитектуре пришлось бы анализировать массу данных. На это требовалось день-два, иногда даже неделя.

                Задачи, которые обрабатывали данные, такие как антиспам или ссылочный граф, вынуждены были работать отдельно, создавая еще большую путаницу. Мы понимали, что нужно что-то менять.

                Читать дальше →
              • Знай сложности алгоритмов

                • Translation
                Эта статья рассказывает о времени выполнения и о расходе памяти большинства алгоритмов используемых в информатике. В прошлом, когда я готовился к прохождению собеседования я потратил много времени исследуя интернет для поиска информации о лучшем, среднем и худшем случае работы алгоритмов поиска и сортировки, чтобы заданный вопрос на собеседовании не поставил меня в тупик. За последние несколько лет я проходил интервью в нескольких стартапах из Силиконовой долины, а также в некоторых крупных компаниях таких как Yahoo, eBay, LinkedIn и Google и каждый раз, когда я готовился к интервью, я подумал: «Почему никто не создал хорошую шпаргалку по асимптотической сложности алгоритмов? ». Чтобы сохранить ваше время я создал такую шпаргалку. Наслаждайтесь!
                Читать дальше →
              • Microsoft Dryad vs Apache Hadoop. Неначатое сражение за Big Data

                  UPD: сменил заголовок статьи, т.к. прошлый заголовок я написал, пока был лунатиком (шутка, разумеется).

                  На прошлой неделе на Хабре появилось 2 поста о фреймворке распределенных вычислений от Microsoft Research – Dryad. В частности, подробно были описаны концепции и архитектура ключевых компонентов Dryad – среды исполнения Dryad и языка запросов DryadLINQ.


                  Логическим завершением цикла статей о Dryad видится сравнение фреймворка Dryad с другими, знакомыми разработчикам MPP-приложений, инструментами: реляционными СУБД (в т.ч. параллельными), GPU-вычислениями и платформой Hadoop.


                  RDBMS vs Hadoop vs Dryad

                  Читать дальше →
                  • +18
                  • 10.3k
                  • 6
                • Oracle 12c Multitenant Architecture. Новые возможности для разработки и тестирования

                    Самым крупным нововведением недавно вышедшего Oracle 12c безусловно является Multitenant Architecture. Сам Oracle преподносит эту возможность в основном как средство консолидации и снижения расходов.

                    Суть технологии состоит в возможности запустить несколько независимых баз (pluggable database, PDB) в рамках одного инстанса (container database, CDB). Каждая база имеет свой набор схем и табличных пространств, но при этом у них общая SGA и один набор серверных процессов. Есть возможность клонировать pluggable database, как в рамках одного контейнера, так и между контейнерами. Вот эту возможность и будем использовать для создания копий тестовых баз и экономии ресурсов.
                    Читать дальше →
                    • +16
                    • 22.3k
                    • 5
                  • Map-Reduce на примере MongoDB

                    В последнее время набирает популярность семейство подходов и методологий обработки данных, объединенных общими названиями Big Data и NoSQL. Одной из моделей вычислений, применяемых к большим объемам данных, является технология Map-Reduce, разработанная в недрах компании Google. В этом посте я постараюсь рассказать о том, как эта модель реализована в нереляционной СУБД MongoDB.

                    Что касается будущего нереляционных баз вообще и технологии Map-Reduce в частности, то на эту тему можно спорить до бесконечности, и пост совершенно не об этом. В любом случае, знакомство с альтернативными традиционным СУБД способами обработки данных является полезным для общего развития любого программиста, так же как, к примеру, знакомство с функциональными языками программирования может оказаться полезным и для программистов, работающих исключительно с императивными языками.

                    Нереляционная СУБД MongoDB представляет данные в виде коллекций из документов в формате JSON и предоставляет разные способы обработки этих данных. В том числе, присутствует собственная реализация модели Map-Reduce. О том, насколько целесообразно применять именно эту реализацию в практических целях, будет сказано ниже, а пока ограничимся тем, что для ознакомления с самой парадигмой Map-Reduce эта реализация подходит как нельзя лучше.

                    Итак, что же такого особенного в Map-Reduce?
                    Читать дальше →
                    • +54
                    • 54.3k
                    • 8