2013-07-31 5 views
-1

Мы получаем огромное количество XML-данных через API. Чтобы обработать этот большой набор данных, мы планировали сделать это в Hadoop.Данные XML через API для Land in Hadoop

Вам нужна ваша помощь в понимании того, как эффективно переносить данные в Hadoop. Какие инструменты доступны? Есть ли возможность донести эти данные в режиме реального времени?

Просьба указать ваши данные.

Благодарим за помощь.

+0

Ох .. похоже, что вы уже знаете о Flume :) – Tariq

+0

Я искал примеры для переноса XML-данных в hadoop с использованием Flume. (Предположим, некоторые API) – Maverick

+0

Боюсь, я не знаю ни одного такого примера. Посмотрите, поможет ли это: http://stackoverflow.com/questions/14275153/write-a-custom-httpsource-handler-for-flume-ng – Tariq

ответ

0

Поскольку вы получаете огромные количество данных, соответствующий способ, IMHO, было бы использовать некоторый инструмент агрегирования, такой как Flume. Flume - это распределенный, надежный и доступный сервис для эффективного сбора, агрегации и перемещения больших объемов данных в ваш кластер Hadoop из разных источников.

Вы можете легко создавать собственные источники на основе ваших потребностей для сбора данных. Вы можете заплатить за это link, чтобы начать. Он представляет собой специальный источник Flume, предназначенный для подключения к API потокового трафика Twitter и приема твитов в формате JSON в формате HDFS. Вы можете попробовать что-то подобное для ваших xml-данных.

Вы также можете взглянуть на Apache Chukwa, который делает то же самое.

НТН

0

Flume, Scribe & Chukwa инструменты, которые можно выполнить вышеупомянутую задачу. Однако Flume является наиболее популярным инструментом всех трех. У Flume есть надежные методы надежности и отказоустойчивости. Кроме того, Flume имеет коммерческую поддержку, доступную от Cloudera, в то время как у двух других нет.

+0

Это внешний API, который находится за пределами брандмауэра нашей компании. Итак, для того, чтобы ежедневно извлекать XML-файл из API с помощью Flume, какие вещи нужно делать? Должен ли агент Flume быть установлен на внешнем сайте поставщика API? Какова будет конфигурация? – Maverick

0

Если ваша цель заключается в том, чтобы данные попадали в HDFS, вы можете продолжать писать ответы XML на диск в соответствии с некоторыми соглашениями, такими как data-2013-08-05-01.xml, и писать ежедневно (или ежечасно cron) для импорта данных XML в HDFS. Запуск Flume будет излишним, если вам не нужны потоковые возможности. С вашего вопроса, не сразу понятно, зачем вам нужен Hadoop? Вам нужно запустить задания MR?

0

Вы хотите поместить данные в Avro или ваш выбор буфера протокола для обработки. После того, как у вас есть буфер для соответствия формату текста, система hadoop намного лучше помогает в обработке структурированных данных.

Первоначально Hadoop был признан наиболее полезным для записи одной строки журнальных файлов и структурирования/обработки данных с их. XML уже структурирован и требует большей вычислительной мощности, чтобы превратить его в дружественный формат hadoop.

Более простым решением было бы разбиение данных и процесса xml с использованием Wukong (Ruby streaming) или альтернативы python. Поскольку ваша сеть, связанная сторонним api, потоковое решение может быть более гибким и столь же быстрым в конечном итоге для ваших нужд.