понедельник, 29 октября 2012 г.

Hadoop в реальном времени

На прошлой неделе в Нью Йорке состоялась  конфа Hadoop World 2012.
На этой конфе клаудера презентовала свою новую разработку Cloudera Impala (анг. "Чернопятая антилопа"). Эта система для выполнения SQL подобных запросов на данных в HDFS в реальном времени.

С точки зрения пользователя - Impala - это облегченый hiveQL.  Однако в отличие от Hive - Impala не является оберткой вокруг map-reduce, а независимой утилитой, инстансы которой ставятся на все машины кластера.
Об архитектуре Impala написано очень скупо, приведена лишь такая вот диаграмма

на схеме MPP скорее всего означает "Massive Parallel Processing" - массово паралельную систему вычислений. В блоге cloudera сказано, что так реализован движок распределенных запросов, который очень похож на то, на чем строятся коммерческие паралельные СУБД.

Фичи Impala:
  • 100% open source
  • может работать с данными как из hdfs, так и из hbase
  • можно настроить единое хранилище метаинформации для нее и для hive'а, тогда она будет работать с теми же таблицами, что и hive
  • умеет делать join'ы таблиц
По сравнению с hive:
  • в задачах ввода-вывода скорость выше в 3-4 раза
  • в одиночных джойнах в 7-45 раз
  • в джойнах, когда данные помещаются в память - в 20-90 раз
Я немножно потестировала impala сам, скачав настроенную виртуалку с сайта cloudera.
  • над простой тестовой задачей "select * from table" Impala работала 0.7 секунд, когда hive'у потребовалось около 12.
  • с задачей посложнее, где надо было сделать 6 джойнов, Impala думала 16 секунд, а hivе отправил виртуалку в жесткий свап.
Технические органичения на бету строгие: только RHEL или CentOS, причем определенныой версии.
Вот такая вот штука. Будем ждать релиза и облизываться.

Ссылки по теме:

3 комментария:

  1. Интересно, какая судьба ждет hive, когда Impala дойдет до зрелого релиза...

    ОтветитьУдалить
    Ответы
    1. Думаю, что за судьбу hive можно не волноваться, так же как и за mapReduce.
      Одно из важных свойств hadoop, которое не может использовать impala - отказоустойчивость при падении отдельным машин. Поэтому для больших вычислительно нагруженных задач impala не подойдет.
      Другая проблема - для ускорения расчетов многие действия делаются impal'ой в оперативной памяти. А она, как известно, не резиновая.

      Удалить
  2. Павел, вопрос наверно не в тему поэтому сразу прошу прощения. К hive есть ODBC драйвера, по крайней мере информация о них в встречается в гугле. Вопрос в следующем возможно ли Django через ODBC прикрутить к Hadoop (во всяком случае теоретически это выглядит возможным)? Или есть причины по которым это делать даже не имеет смысла?

    ОтветитьУдалить