вторник, 17 июля 2012 г.

Охраняем зоопарк

imageРысцов Денис написал на хабре статью, доступно объясняющую что такое hadoop zookeeper и как его можно самим использовать в собственной разработке.
Описание  Zookeeper'а от других автором всегда оставаляло у меня расплывчатое представление что же это такое. В его статье я наконец нашел нормальное определение этой штуки.

ZooKeeper, это распределенное key/value хранилище со следующими свойствами:

  • пространство ключей образует дерево (иерархию подобную файловой системе)
  • значения могут содержаться в любом узле иерархии, а не только в листьях (как если бы файлы одновременно были бы и каталогами), узел иерархии называется znode
  • между клиентом и сервером двунаправленная связь, следовательно, клиент может подписываться как изменение конкретного значения или части иерархии
  • возможно создать временную пару ключ/значение, которая существует, пока клиент её создавший подключен к кластеру
  • все данные должны помещаться в память
  • устойчивость к смерти некритического кол-ва узлов кластера

Поддерживаемые операции

exists проверяет существование znode и возвращает его метаданные
create создает znode
delete удаляет znode
getData получает данные ассоциированные с znode
setData ассоциирует новые данные с znode
getChildren получает детей указанного znode
sync дожидается синхронизации узла кластера, к которому мы подсоединены, и мастера. 

Читать далее на хабре

четверг, 12 июля 2012 г.

Map Reduce 2.0 или Eще Один Переговорщик

В конце 2011 года apache выпустил новый релиз hadoop под номером 0.23. По сравнению с известием о выходе первой стабильной версии hadoop 1.0.0, это событие оказалось не таким заметным. Однако новая версия хадупа имеет ряд очень важных улучшений, такие как
  •  высокодоступная нейм нода (High Available NameNode)
  •  федерация нейм нод
  •  новая версия MapReduce, названная YARN или MapReduce 2.0
Идея изменить архитектуру вычислений на MapReduce кластере созревала давно. Разработчикам hadoop не нравилось, что job tracker является единой точкой отказа, узким местом в производительности больших кластеров, а вычислительные мощности расходуются неоптимальным образом. Поэтому в 2010 году в Yahoo начал разрабатываться проект новой системы кластерных вычислений, результатом которой стал YARN.
О стабильности и надежности нового релиза можно судить по тому, что на
его основе cloudera уже сделала новую сборку своего дистрибутива - cdh4.

вторник, 3 июля 2012 г.

Старый и новый Hadoop API


Все начинающие hadoop  разработчики рано или поздно обнаруживают, что все примеры готовых hadoop приложений написаны с использованием разных map и reduce функций, разного наследования классов от производного класса, с разным способом запуска задач.
Дело в том. что начиная с версии 0.20 у hadoop появился новый API, который несовместим со старым, хотя они и достаточно похожи друг на друга. Под старый API написано уже много кода, от которого не все еще готовы отказаться, поэтому сейчас два hadoop API существуют параллельно, что создает большую путаницу.