Я пытался понять концепцию MapReduce и применить ее к моей текущей ситуации. Какая у меня ситуация? Что ж, у меня здесь есть инструмент ETL, в котором преобразование данных происходит вне источников данных источника и назначения (баз данных). Следовательно, исходный источник данных используется исключительно для извлечения и назначения для загрузки.
Итак, этот акт преобразования сегодня, скажем, занимает около X часов для миллиона записей. Я хотел бы обратиться к сценарию, в котором у меня будет миллиард записей, но я бы хотел, чтобы работа выполнялась за те же X часов. Так, вот необходимость масштабирования моего продукта (добавление большего количества обычных машин) в зависимости от масштаба данных. Как видите, меня беспокоит только возможность распространения функций преобразования моего продукта на разные машины, используя мощность ЦП со всех этих машин.
Я начал искать варианты и наткнулся на Apache Hadoop, а затем, в конце концов, на концепцию MapReduce. Мне удалось быстро настроить Hadoop, не столкнувшись с проблемами в кластерном режиме, и я был счастлив запустить демонстрацию wordcount. Вскоре я понял, что для реализации моей собственной модели MapReduce мне придется переопределить функциональность преобразования моего продукта в функции MAP и REDUCE.
Вот тогда и начались проблемы. Я прочитал копию Hadoop: Definitive Guide, и я понял, что многие из распространенных вариантов использования Hadoop связаны со следующими ситуациями:
Вот мой сценарий, в котором я извлекаю данные из базы данных и загружаю их в базу данных (в которой есть структурированные данные), и моя единственная цель - задействовать больше процессоров в надежным образом, и там путем распространения моей трансформации. А переопределение моей трансформации для соответствия модели Map and Reduce делает это само по себе огромной проблемой. Итак, вот мои вопросы:
Вы использовали Hadoop в ETL?
Вот мой сценарий, в котором я извлекаю из базы данных и загружаю в базу данных (которая имеет структурированные данные), и моя единственная цель - получить в большем количестве процессоров в игру, надежным образом, и там путем распространения моих преобразований. А переопределение моей трансформации для соответствия модели Map and Reduce делает это само по себе огромной проблемой. Итак, вот мои вопросы:
Вы использовали Hadoop в ETL?
Вот мой сценарий, в котором я извлекаю из базы данных и загружаю в базу данных (которая имеет структурированные данные), и моя единственная цель - получить в большем количестве процессоров в игру, надежным образом, и там путем распространения моих преобразований. А переопределение моей трансформации для соответствия модели Map and Reduce делает это само по себе огромной проблемой. Итак, вот мои вопросы:
Вы использовали Hadoop в ETL? сценарии? Если да, то можно уточнить о том, как вы справились с MapReducing твое преобразование? Вы использовали Hadoop исключительно для использования дополнительных Мощность процессора?
Является ли концепция MapReduce универсальный ответ на распределенный вычисления? Есть ли другие в равной степени хорошие варианты?