Появилась новая версия Apache Fluo. Fluo — это реализация перколятора Google для Apache Accumulo. Версия 1.1.0 Apache Fluo (инкубация) улучшает масштабируемость и интеграцию Spark. Он также имеет новый API наблюдателей.
Fluo-это реализация Percolator с открытым исходным кодом (которая заполняет поисковый индекс Google). Fluo позволяет обновлять результаты крупномасштабных вычислений, индексов или аналитики по мере обнаружения новых данных.
Проблема, для которой были разработаны Fluo и Percolator, вызвана необходимостью иметь актуальный индекс Интернета, когда постоянно поступают новые документы. Система индексирования Google хранит десятки петабайт данных и обрабатывает миллиарды обновлений в день на тысячах машин. MapReduce и другие системы пакетной обработки полагаются на создание больших пакетов для повышения эффективности, поэтому не могут справиться с необходимостью выполнять так много небольших обновлений, в то время как базы данных не справляются с требованиями к хранению и пропускной способности.
Перколятор был разработан для удовлетворения этой потребности. Он постепенно обрабатывает обновления большого набора данных и используется для создания индекса веб-поиска Google. Google говорит, что, заменив систему пакетной индексации системой индексации, основанной на инкрементной обработке с использованием перколятора, они могут обрабатывать одинаковое количество документов в день, одновременно снижая средний возраст документов в результатах поиска Google на 50%.
Fluo предоставляет версию Percolator с открытым исходным кодом, которая работает с Apache Accumulo. Accumulo-это сортированное, распределенное хранилище ключей и значений, которое предлагает надежную, масштабируемую, высокопроизводительную систему хранения и поиска данных. Он основан на дизайне BigTable от Google и построен поверх Apache Hadoop, Zookeeper и Thrift. Архитектуру Fluo можно увидеть на слайде ниже с саммита Accumulo:
Улучшения в последней версии Fluo начинаются с улучшенного API для предоставления наблюдателей. В предыдущей версии требовалось настроить класс наблюдателя для каждого наблюдаемого столбца. Это было громоздко в использовании и делало использование лямбд невозможным. Новый API требует только настройки одного класса, который предоставляет всех наблюдателей. Этот единственный класс может регистрировать лямбды для наблюдения за столбцом.
Масштабируемость-это еще одна область, которую необходимо улучшить. В предыдущем выпуске каждый работник сканировал всю таблицу в поисках уведомлений, которые хэшировались к ней. В новой версии работники делятся на группы, и каждая группа сканирует подмножество таблицы на наличие уведомлений. Каждый работник в группе сканирует все подмножество таблицы группы в поисках уведомлений, которые хэшируют ее.
Конечным улучшением является лучшая интеграция Spark. Apache Spark можно использовать для предварительной обработки и загрузки пакетов данных в Fluo, но в предыдущем выпуске было трудно передать объекты FluoConfiguration удаленным процессам Spark. Текущая версия имеет сериализуемую флуоконфигурацию, что облегчает эту задачу.