2013-03-10 4 views
0

Я работаю с платформой агрегации данных под названием XBus. Мне нужно сначала представить его. XBus объединяет много разных типов источников данных, таких как RDBMS, XML-файл, JSON-файл, webservice и некоторые другие. Пользователь может определить поток данных, который содержит много операций, таких как объединение, упорядочение, фильтрация, объединение, группировка. И тогда этот поток будет транслирован в скрипт XQuery. SAXON (механизм обработки XML) обработает сценарий XQuery на одном компьютере (сервере).Является ли MapReduce подходящим для агрегации данных?

Но если количество данных велико, это будет стоить долгий срок для завершения. Итак, я рассматриваю структуру MapReduce, которая может обрабатывать большой объем данных в распределенной среде. Но я не уверен, подходит ли MapReduce.

Возникает вопрос, который может показать мои сомнения.

Поскольку это платформа агрегации данных, исходные данные хранятся во многих разных системах. Нужно ли до обработки данных с помощью MapReduce собирать связанные данные из этих систем и помещать их в Mapreduce (HDFS)? Если это так, это займет много времени, верно?

+0

Этот вопрос считается очень широким, и ваш прецедент описывается слишком неопределенно и, вероятно, не может быть без слишком раздутого вопроса. Я бы предложил просто спрашивая о ваших конкретных проблемах, как в вашем последнем абзаце. – millimoose

ответ

0

Да, вам придется загружать данные в HDFS, а затем обрабатывать их. Является ли MapReduce применимым, зависит от разных факторов:

  • Время, необходимое для загрузки данных в HDFS, значительно меньше времени, необходимого для обработки всех данных в кластере и получения конечного результата.
  • Возможно ли хранить данные из разных источников в HDFS и только HDFS, так что нет необходимости загружать (все) новые данные в HDFS, прежде чем запускать все задания.
  • Вы обрабатываете разные входные данные, используя те же преобразования? Здесь вы можете воспользоваться повторным запуском одного и того же задания, но с разными входными данными.
  • Все ли данные ввода изменяются для каждой работы? Или, возможно, можно запустить задание, скажем, для разных входных XML-файлов и преобразовать их с использованием одной и той же задачи MR одновременно.

Когда вы решите использовать МР, вы можете найти Cascading полезным. Это API данных для определения сложных потоков данных. В проекте предусмотрены абстракции, такие как вилки, объединения, токенизация, группировка и т. Д.

Смежные вопросы