вопрос о новичках hadoop

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

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

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

Где hadoop вписался бы в это изображение? Мы можем все еще продолжить использовать Oracle даже после hadoop?

6
задан Omnipresent 19 March 2010 в 23:00
поделиться

3 ответа

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

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

Если вам нужен конкретный совет по настройке пакетного запроса, то это уже другой вопрос.

4
ответ дан 17 December 2019 в 02:26
поделиться

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

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

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

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

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

2
ответ дан 17 December 2019 в 02:26
поделиться

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

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

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

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

0
ответ дан 17 December 2019 в 02:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: