Microsoft открывает свой фреймворк REEF для больших данных как открытый исходный код. REEF использует новый диспетчер ресурсов YARN от Hadoop и может использоваться для создания заданий, в которых необходимо поддерживать состояние даже после завершения задания.
REEF расшифровывается как Retainable Evaluator Execution Framework. Его важность в «Digital Shoebox» Microsoft была описана техническим сотрудником Microsoft и техническим директором информационных служб Рагху Рамакришнаном на конференции ACM Knowledge Discovery и Data Mining в Чикаго.
Рамакришнан описал идею цифровой обувной коробки как онлайн-хранилища, в котором вы должны иметь возможность собирать любые данные, мгновенно реагировать на них и сохранять их для дальнейшего использования. Вы должны уметь использовать любой инструмент анализа для работы с данными в любом месте, в любой комбинации и в интерактивном режиме.
Данные могут поступать из SQL, Hive или MR (MapReduce), из потоковой обработки, бизнес-аналитики или машинного обучения. YARN — это элемент диспетчера ресурсов проекта Apache Hadoop, который дает вам возможность запускать и управлять несколькими заданиями этих разных типов в одном кластере физических машин. Это может уменьшить количество необходимых машин, а также означает, что вы можете выполнять различные анализы одних и тех же данных в одном месте.
По словам Рамакришнана, YARN не идеальна для всех типов работ; некоторые, такие как машинное обучение, проблематичны, потому что у них есть особые требования в таких областях, как перемещение данных, мониторинг задач и способность сохранять наборы результатов для дальнейшего анализа и модификации. Однако REEF, который представляет собой набор библиотек, работающих поверх YARN, решит некоторые из этих проблем.
REEF состоит из двух основных частей: оценщиков, которые представляют собой контейнеры YARN, содержащие службы REEF, и действия, которые представляют собой код пользователя, выполняемый внутри оценщика. Рамакришнан продемонстрировал пример рабочего процесса, в котором YARN запускает Evaluator, а код Activity запускается внутри него и завершается. Затем тот же Evaluator может быть снова запущен, сохраняя его исходное состояние, чтобы другие Activity могли запускаться с его данными. Он включает в себя библиотеку взаимодействующих примитивов управления данными, оптимизированных для связи и перемещения данных (которые отличаются от представления HDFS о локальности хранилища). Библиотека также позволяет приложениям REEF получать доступ к внешним службам, таким как пользовательские реляционные базы данных.
Поскольку Microsoft Research хотела отделить нижние уровни REEF от моделей данных и семантики систем, построенных на их основе, они разработали две новые автономные системы. Это Tang, менеджер конфигурации и инжектор зависимостей, и Wake, среда программирования и перемещения данных, управляемая событиями. Оба они не зависят от языка, что позволяет REEF соединять экосистемы JVM и .NET. Рамакришнан сказал, что Microsoft Research построила библиотеку MapReduce поверх REEF, которая запускает Hive и Pig, и является отличной отправной точкой для таких оптимизаций M / R, как кэширование, перемешивание, сопоставление-уменьшение-сокращение и сеансы. Команда также объединила алгоритмы машинного обучения, такие как деревья решений и линейные модели, и планирует добавить поддержку SVD (разложение по сингулярным значениям) «в ближайшее время».
Ожидается, что в следующем месяце будет открыт исходный код REEF.