четверг, 24 июля 2014 г.

Hadoop! Hadoop!

В последнее время про Hadoop пишут даже в ЖЖ. С тех пор, как Джоэль Спольски напророчил, что что Гугл всех победит, потому что его сотрудники читали SICP и используют Map Reduce, мир захватила Hadoop-омания. Каждый, у кого больше 1.44 Мб , хочет знать, как поставить Hadoop и стать большим, креативным и модным, как mr. Google. У кого меньше, тот вынужден ограничиться Эрлангом и компиляцей в облаке.

Ведь почему Гугл ищет быстро и точно? Потому что Map Reduce! А где Map Reduce? В Hadoop! Поэтому кто поставит себе Hadoop, тот сможет найти даже то, что Гугл на всякий случай удалил из результатов поиска.

Так вот, неправда всё это.

Зачем Map Reduce Гуглу, догадаться несложно. У Гугла петабайты данных на жёстких дисках, которые лежат в известной пустыне на известных складах. Диски ломаются, их меняют, достраивают новые склады. И всё это надо делать быстро. Вот и выстроилась система, при которой данные можно разбрасывать, как картошку, только успевай ведро подставлять.

А в целом Map Reduce - адски медленный. Потому что постоянно копирует и вставляет. И даже когда речь идёт о гигабайтах, он всё равно будет медленней (см. соответствующий курс на курсере). Он будет расширяемей, легче в обслуживании - да!

И медленней.

Поэтому Hadoop для 99.9% проектов не нужен. Если у вас много данных, кладите их в базу. А иначе будет драма наподобие:

Ну, там есть еще странности типа того, что чуваки используют его для конфигурирования 100 серверов и жалуются, что он не выдерживает нагрузки, если 100 серверов одновременно загружаются. Ну, в таком духе. Короче, не очень понятно, в чем с ним проблема, но что-то есть. В нем, на самом деле, есть еще концептуальная проблема, сам ZooKeeper внутри надежный, но, если ты используешь его для strong consistency, тебе нужно чтобы клиент был правильно написан. У них клиент очень примитивный, он не рассчитан даже на просто отключение от сервера, грубо говоря. Обработку ошибок нужно самому делать. Если хочется strong consistency, там, вообще говоря, очень нетривиально написать хорошего клиента.

Комментариев нет:

Отправить комментарий