2010-03-19 2 views
6

Я прочитал некоторую документацию об hadoop и увидел впечатляющие результаты. Я получаю большую картинку, но мне трудно понять, будет ли она соответствовать нашей настройке. Вопрос разве программирование связанное, но я стремлюсь, чтобы получить мнение людей, которые в настоящее время работают с Hadoop, и как она будет соответствовать нашей установке:hadoop beginners question

  • Мы используем Oracle для внутреннего интерфейса
  • Java (Struts2/сервлеты/Ibatis) для frontend
  • Ночью мы получаем данные, которые необходимо суммировать. это выполняется как периодический процесс (занимает 5 часов)

Мы ищем способ сократить эти 5 часов до более короткого времени.

Куда бы влюбиться в эту картину? Можем ли мы по-прежнему использовать Oracle даже после hadoop?

+0

Какой объем данных [GB или TB] и какое суммирование? –

+0

sqoop - хороший инструмент, если вам нужны данные из оракула для импорта в хаос – wlk

ответ

4

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

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

Если вы хотите получить конкретный совет о том, как настроить ваш пакетный запрос, это будет новый вопрос.

2

Hadoop предназначен для распараллеливания работы на нескольких машинах. Для того, чтобы определить, будет ли он быть хорошим кандидатом для установки, задайте себе следующие вопросы:

  • У меня есть много машин, на которых я могу запустить Hadoop, или я готов тратить деньги на что-то вроде EC2?

  • Является ли моя работа параллелизуемой? (Если ваш 5-часовой пакетный процесс состоит из 30 10-минутных задач, которые должны выполняться последовательно, Hadoop вам не поможет).

  • Нужны ли мои данные для произвольного доступа? (Это на самом деле очень важно - Hadoop отлично подходит для последовательного доступа и ужасного случайного доступа. В последнем случае вы не увидите достаточного ускорения, чтобы оправдать дополнительную работу/стоимость).

Насколько он «подходит» - вы даете Hadoop кучу данных, и это дает вам обратный выход. Один из способов думать об этом - это как гигантский процесс Unix - данные поступают, данные выводятся. Что вы делаете с этим - это ваш бизнес. (Это, конечно, слишком упрощенное представление, но вы получаете эту идею.) Итак, да, вы все равно сможете записывать данные в свою базу данных Oracle.

+0

Второй шаг - неудача в моем случае. хотя они не являются 10-минутными задачами, но каждая задача зависит от завершения предыдущей задачи. есть ли какие-либо другие решения или мы просто должны сосредоточиться на оптимизации наших запросов. – Omnipresent

+0

Ну, если отдельные задачи длительные, вы можете распараллелить их. Скажем, у вас есть пять задач, которые занимают один час каждый. Если бы у вас была группа из пяти машин, теоретически можно было бы ускорить задачу до 12 минут (60/5). Вы также можете использовать один и тот же кластер для выполнения каждой из задач, поэтому это сократит общее время до одного часа, а не 5. Если задачи будут короткими, вы не увидите этого преимущества, поскольку накладные расходы на настройку задания будут перевешиваться ускорение. Итак, чтобы подвести итог, это будет работать, если вы можете разбить свою работу на отдельные части, которые оба – danben

0

Hadoop распределенная файловая система поддерживает высокопараллельную пакетную обработку данных с использованием MapReduce.

Так что ваш текущий процесс занимает 5 часов, чтобы суммировать данные. С летучей мыши общие задачи суммирования являются одним из «типов» работы MapReduce. Однако вам необходимо понять, что ваши требования к обработке будут переведены в задание MapReduce. Под этим я имею в виду, можете ли вы получить сводки, которые вам нужны, используя пары ключ/значение, которые MapReduce ограничивает использование вами?

Для использования Hadoop требуется скопление машин. У вас есть аппаратное обеспечение для поддержки кластера? Обычно это сводится к тому, сколько данных вы храните на HDFS, а также о том, как быстро вы хотите обрабатывать данные. Как правило, при запуске MapReduce на Hadoop больше машин у вас есть либо больше данных, которые вы можете сохранить, либо быстрее выполняете задание. Подумать о количестве данных, которые вы обрабатываете каждую ночь, поможет здесь много?

Вы все еще можете использовать Oracle. Вы можете использовать Hadoop/MapReduce, чтобы выполнить хруст данных, а затем использовать специальный код для вставки сводных данных в DB оракула.