MapReduce — это важная концепция программирования, которую вы должны освоить, чтобы стать профессиональным инженером данных. Он предоставляет решения для распределенных систем управления файлами больших данных. Следовательно, понимание теоретических основ MapReduce облегчит вам изучение самой техники.
Но что такое MapReduce и как он работает в распределенных файловых системах? Вы узнаете в этом посте.
Что такое MapReduce?
MapReduce — это модель обработки данных, применяемая к программам или приложениям, обрабатывающим логику больших данных в параллельных кластерах серверов или узлов. Он распределяет логику обработки по нескольким узлам данных и объединяет результаты в клиент-сервер.
MapReduce гарантирует, что обработка будет быстрой, эффективно использующей память и надежной, независимо от размера данных.
Файловая система Hadoop (HDFS), файловая система Google (GFS), Apache Kafka, GlusterFS и другие являются примерами распределенных файловых систем для больших данных, использующих алгоритм MapReduce.
Что такое распределенная файловая система?
Распределенная файловая система (DFS) — это метод хранения в вычислительной технике, который включает в себя разделение больших файлов данных на более мелкие фрагменты и их распределение по нескольким серверам в системе. Это позволяет клиентам из различных источников записывать и считывать данные, совместно использовать и запускать программируемую логику данных прямо из любого места.
Распределенная файловая система обычно состоит из основного сервера (также называемого NameNode в Hadoop), параллельные кластеры и несколько узлов или серверов, содержащих реплицированные фрагменты данных, все в одном центр. Однако каждый кластер в распределенной файловой системе содержит от сотен до тысяч таких узлов.
Первичный сервер автоматически обнаруживает изменения в кластерах. Таким образом, он может назначать роли соответственно каждому узлу.
Когда первичный сервер получает файл данных, он отправляет его в кластеры внутри DFS. Эти кластеры разбивают и распределяют данные по каждому узлу внутри них. Затем каждый узел реплицирует данные в так называемые блоки данных, чтобы сформировать цепочку. На этом этапе каждый узел становится сервером фрагментов.
Связанный:Что такое центры обработки данных и почему они важны?
Помимо управления доступом к данным, первичный сервер хранит аннотацию метаданных для каждого файла. Таким образом, он знает, какой узел обрабатывает какой файл в каждом кластере.
Как MapReduce работает в распределенных файловых системах?
Как упоминалось ранее, большие данные доступны на нескольких серверах фрагментов в DFS. Одним из способов реализации программируемой логики над этими файлами данных является объединение их в один. Затем вы можете вытащить их на один сервер, который теперь обрабатывает логику.
Хотя это обычный способ запроса данных, проблема заключается в том, что данные снова становятся единым целым внутри одного сервера. Таким образом, одному серверу все равно придется управлять логикой сразу нескольких петабайт данных. К сожалению, это была проблема, которую система изначально намеревалась решить. Так что это не лучшая практика, в конце концов.
Связанный:Как запрашивать несколько таблиц базы данных одновременно с помощью соединений SQL
Кроме того, такое объединение в один сервер создает несколько рисков для производительности. Они могут варьироваться от сбоя сервера, низкой эффективности вычислений, высокой задержки, высокого потребления памяти и уязвимостей до многого другого.
Но еще один способ запустить программируемую логику — оставить данные фрагментами внутри каждого распределенного сервера. А затем внедрить логическую функцию в каждый сервер. Это означает, что каждый сервер фрагментов в кластере теперь обрабатывает свои вычисления. Использование этого подхода означает, что нет необходимости агрегировать или загружать данные на один сервер.
Что существует концепция MapReduce в распределенной файловой системе данных. Это гарантирует, что одному серверу не нужно извлекать данные из источника. Вместо этого он распределяет функцию обработки (MapReduce) на несколько узлов фрагментов в отдельных кластеров, поэтому каждый узел в каждом кластере обрабатывает логику индивидуально, не перегружая ни одного узла. сервер.
Следовательно, несколько серверов одновременно обрабатывают логику битов данных. Такое распределение труда между серверами приводит, помимо прочего, к оптимальной производительности и более высокой безопасности.
Как обрабатывается результат MapReduce в DFS?
Вот как работает вся обработка MapReduce в DFS:
- Первичный сервер получает запрос больших данных (функция MapReduce) от клиента.
- Затем он отправляет это в каждый кластер, чтобы распространить его по каждому узлу внутри него.
- Каждый узел обрабатывает функцию MapReduce и суммирует ее результат.
- Другой сервер сопоставляет результаты с каждого узла и отправляет их обратно на первичный сервер.
- Затем первичный сервер отправляет результат клиенту в качестве ответа.
Таким образом, единственная задача первичного сервера — отправить клиенту готовый к вычислению результат, прослушать изменения и управлять доступом к данным. Он не выполняет никаких вычислений. Вот почему большинство приложений облачных вычислений работают впечатляюще быстро, несмотря на объем обрабатываемых ими данных.
Что такое Map и Reduce в MapReduce?
MapReduce использует две программные логики для обработки больших данных в распределенной системе управления файлами (DFS). Это карта и функция уменьшения.
То карта Функция выполняет работу по обработке на каждом из узлов данных в каждом кластере распределенной файловой системы. То уменьшать Затем функция агрегирует результаты, возвращаемые каждым сервером фрагментов, и передает их другому серверу в DFS для агрегирования результатов. Принимающий сервер отправляет это вычисление на первичный сервер, который отправляет возвращенное значение на клиентский сервер.
Что происходит, когда сервер фрагментов выходит из строя?
Иногда серверы в распределенной файловой системе (DFS) могут простаивать. Вы можете подумать, что это сломает всю систему, но это не так.
В вычислительной технике есть система, которая предотвращает такой надвигающийся сбой. Это называется отказоустойчивостью.
Связанный:Что такое облачные вычисления? Как работают облачные технологии?
Следовательно, даже когда сервер отключается во время обработки данных, отказоустойчивость гарантирует, что первичный сервер немедленно обнаружит это. А поскольку на узлах существует реплика фрагментов данных, первичный сервер мгновенно передает задание на обработку другому серверу. Таким образом, время простоя сервера в DFS не влияет на обработку данных.
MapReduce упрощает обработку больших данных
MapReduce — это важная модель, упрощающая вычисления в распределенных файловых системах. Поскольку это позволяет нескольким узлам одновременно выполнять вычисления, это быстрый метод, используемый различными технологическими гигантами для решения многих проблем, связанных с анализом больших данных.
Google, Amazon, IBM и другие являются примерами компаний, использующих эту концепцию. Google, например, применяет концепцию MapReduce для получения результатов запроса во время поиска Google.
Большие данные поддерживают многие отрасли и влияют на всю нашу жизнь. Но что более опасно или полезно?
Читать далее
- Программирование
- Программирование
- Большое количество данных
- Анализ данных
Idou увлечен всеми умными технологиями и производительностью. В свободное время он играет с программированием и переключается на шахматную доску, когда ему скучно, но он также любит время от времени отрываться от рутины. Его страсть показывать людям, как работают современные технологии, побуждает его писать больше.
Подписывайтесь на нашу новостную рассылку
Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!
Нажмите здесь, чтобы подписаться