В настоящее время я читаю статьи о Hadoop и популярном алгоритме MapReduce. Тем не менее, я не мог видеть ценность MapReduce и буду рад, если кто-то может дать некоторое представление об этом. В частности:Цель Hadoop MapReduce
Сообщается, что MapReduce получает файл и создает пары ключевых значений. Что такое ключ? Просто слово, комбинация слов или что-то еще? Если ключ - это слова в файле, то какова цель написания кода для MapReduce? MapReduce должен делать то же самое без реализации конкретного алгоритма.
Если все преобразовано в пары ключевых значений, то что делает Hadoop, просто создается словарь, как в JAVA и C#, wright? Возможно, Hadoop может создать словарь более эффективным способом. Помимо эффективности, что Hadoop обеспечивает, что обычный объект Dictionary не может?
Что я могу заработать, преобразовывая файл в пары значений ключа? Я знаю, что могу найти подсчеты и частоты слов, но для чего? Какова может быть цель подсчета количества слов?
Говорят, что Hadoop можно использовать для неструктурированных данных. Если все преобразуется в пару ключевых значений, то это настолько нормально, что Hadoop может работать с неструктурированными данными! Я могу написать программу на C# для генерации пар значений ключей вместо использования Hadoop. Какова реальная ценность Hadoop, которую я не могу использовать, используя другие инструменты программирования?
Вопросы могут показаться взаимосвязанными друг с другом, но я считаю, что я дал представление о моем вопросе. Буду рад, если вы сможете дать ответы на вышеуказанные вопросы.
С уважением,
Edit:
Привет ребята,
Большое спасибо за ваши ответы. То, что я понял из ваших сочинениях и играть с Hadoop немного, я хотел бы изложить свои выводы в основной способ очень высокого уровня:
- процесса Hadoop данные через пар ключ-значение. Все преобразуется в пары ключ-значение.
- Основные интересы должны быть уделены определениям ключа и стоимости, которые могут изменяться в соответствии с потребностями бизнеса.
- Hadoop обеспечивает только эффективную (например, распределенную, масштабируемую систему и огромный объем обработки данных) реализацию словаря, не более того.
Любые комментарии к этим результатам приветствуются.
В качестве заключительной заметки я хотел бы добавить, что для простой реализации с уменьшением размера карты я считаю, что должен быть пользовательский интерфейс, который позволяет пользователю выбирать/определять ключи и соответствующие значения. Этот пользовательский интерфейс также может быть расширен для дальнейшего статистического анализа.
С уважением,