Является ли «Принятие модели MapReduce» универсальным ответом на масштабируемость?

Я пытался понять концепцию MapReduce и применить ее к моей текущей ситуации. Какая у меня ситуация? Что ж, у меня здесь есть инструмент ETL, в котором преобразование данных происходит вне источников данных источника и назначения (баз данных). Следовательно, исходный источник данных используется исключительно для извлечения и назначения для загрузки.

Итак, этот акт преобразования сегодня, скажем, занимает около X часов для миллиона записей. Я хотел бы обратиться к сценарию, в котором у меня будет миллиард записей, но я бы хотел, чтобы работа выполнялась за те же X часов. Так, вот необходимость масштабирования моего продукта (добавление большего количества обычных машин) в зависимости от масштаба данных. Как видите, меня беспокоит только возможность распространения функций преобразования моего продукта на разные машины, используя мощность ЦП со всех этих машин.

Я начал искать варианты и наткнулся на Apache Hadoop, а затем, в конце концов, на концепцию MapReduce. Мне удалось быстро настроить Hadoop, не столкнувшись с проблемами в кластерном режиме, и я был счастлив запустить демонстрацию wordcount. Вскоре я понял, что для реализации моей собственной модели MapReduce мне придется переопределить функциональность преобразования моего продукта в функции MAP и REDUCE.

Вот тогда и начались проблемы. Я прочитал копию Hadoop: Definitive Guide, и я понял, что многие из распространенных вариантов использования Hadoop связаны со следующими ситуациями:

  • Неструктурированные данные, и кто-то хотел бы выполнить агрегирование / сортировку / или что-то в этом роде.
  • Неструктурированный текст и есть необходимость выполнения майнинга
  • и т. д.!

Вот мой сценарий, в котором я извлекаю данные из базы данных и загружаю их в базу данных (в которой есть структурированные данные), и моя единственная цель - задействовать больше процессоров в надежным образом, и там путем распространения моей трансформации. А переопределение моей трансформации для соответствия модели Map and Reduce делает это само по себе огромной проблемой. Итак, вот мои вопросы:

  1. Вы использовали Hadoop в ETL?

  2. Неструктурированный текст и необходимо выполнить анализ
  3. и т. Д.
  4. Вот мой сценарий, в котором я извлекаю из базы данных и загружаю в базу данных (которая имеет структурированные данные), и моя единственная цель - получить в большем количестве процессоров в игру, надежным образом, и там путем распространения моих преобразований. А переопределение моей трансформации для соответствия модели Map and Reduce делает это само по себе огромной проблемой. Итак, вот мои вопросы:

    1. Вы использовали Hadoop в ETL?

    2. Неструктурированный текст и необходимо выполнить анализ
    3. и т. Д.
    4. Вот мой сценарий, в котором я извлекаю из базы данных и загружаю в базу данных (которая имеет структурированные данные), и моя единственная цель - получить в большем количестве процессоров в игру, надежным образом, и там путем распространения моих преобразований. А переопределение моей трансформации для соответствия модели Map and Reduce делает это само по себе огромной проблемой. Итак, вот мои вопросы:

      1. Вы использовали Hadoop в ETL? сценарии? Если да, то можно уточнить о том, как вы справились с MapReducing твое преобразование? Вы использовали Hadoop исключительно для использования дополнительных Мощность процессора?

      2. Является ли концепция MapReduce универсальный ответ на распределенный вычисления? Есть ли другие в равной степени хорошие варианты?

      3. Насколько я понимаю, что MapReduce применяется к большим набор данных для сортировка / аналитика / группировка / подсчет / агрегация / и т. д., правильно ли я понимаю?
9
задан Jay 2 November 2010 в 10:43
поделиться