Сравнение подходов к крупномасштабному анализу данных

Простота использования


Когда система находится в оперативном режиме, и данные загружены, программисты начинают писать запросы или код, требуемый для выполнения их задач. Как и в других видах программирования, этот процесс часто бывает итерационным: программист пишет небольшую часть кода, тестирует ее, а затем пишет следующую часть. Программист может легко определить, является ли его код синтаксически корректным в системах обоих типов: в среде MR можно проверить, что пользовательский код компилируется, а SQL-серверы могут определить, что запросы корректно разбираются. В обеих системах также обеспечивается поддержка времени выполнения, помогающая пользователям отлаживать их программы.

Также очень важно проанализировать способ написания программистом запросов. MR-программы в Hadoop в основном пишутся на Java (хотя существуют и другие возможности). Большая часть программистов в большей степени знакома с объектно-ориентированным, императивным программированием, чем с другими языковыми технологиями, такими как SQL. Вместе с тем, SQL изучается во многих программах для студентов младших курсов, и этот язык является довольно системно-независимым – авторы смогли использовать с небольшими изменениями одни и те же SQL-команды для СУБД-X и Vertica.

Авторы установили, что, вообще говоря, для подготовки MR-программы и ее запуска в среде Hadoop требуется меньше усилий, чем при использовании других систем. Не требуется конструировать схему или регистрировать определяемые пользователями функции, чтобы можно было начать обрабатывать данные. Однако после получения начальных результатов авторы расширяли набор тестовых задач, что потребовало добавления новых столбцов в наборах данных. Для обработки этих новых данных пришлось модифицировать существующий MR-код и заново тестировать каждую MR-программу, чтобы убедиться, что все они работают при новых предположениях о схеме данных. Кроме того, некоторые методы API Hadoop были исключены в новых версиях системы, на которые пришлось перейти авторам, что опять же потребовало переписи частей программ. В отличие от этого, после построения исходных приложений на основе SQL, авторам вообще не пришлось модифицировать их код, не считая нескольких изменений в схеме тестовых данных.

Авторы полагают, что, хотя разработчикам может оказаться проще начать работать с MR, поддержка MR-программ со временем приносит разработчикам приложений существенное беспокойство. Как уже говорилось в подразделе 3.1, трудно использовать один и тот же MR-код в разных условиях или с разными наборами данных, поскольку для данных, используемых в модели MR, отсутствует явное представление схемы.



Содержание раздела