0 added
0 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#статьи</a></p>
1
<p><a>#статьи</a></p>
2
<ul><li>26 сен 2023</li>
2
<ul><li>26 сен 2023</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><p>Распутываем узлы больших данных и знакомимся с кластерами в Hadoop.</p>
4
</ul><p>Распутываем узлы больших данных и знакомимся с кластерами в Hadoop.</p>
5
<p>Иллюстрация: Оля Ежак для Skillbox Media</p>
5
<p>Иллюстрация: Оля Ежак для Skillbox Media</p>
6
<p>Пишет о сетях, инструментах для разработчиков и языках программирования. Любит готовить, играть в инди‑игры и программировать на Python.</p>
6
<p>Пишет о сетях, инструментах для разработчиков и языках программирования. Любит готовить, играть в инди‑игры и программировать на Python.</p>
7
<p>Big data - это не только сами данные, но и инфраструктура для их хранения и обработки. Создать её можно с помощью разных инструментов. Один из них - Hadoop от компании Apache. Она позволяет параллельно обрабатывать данные на кластере компьютеров, ускоряя их анализ.</p>
7
<p>Big data - это не только сами данные, но и инфраструктура для их хранения и обработки. Создать её можно с помощью разных инструментов. Один из них - Hadoop от компании Apache. Она позволяет параллельно обрабатывать данные на кластере компьютеров, ускоряя их анализ.</p>
8
<p>HDFS - это файловая система Hadoop. Она похожа на файловую систему вашего компьютера, но данные хранятся кусочками на десятках и сотнях серверов, а не на одном устройстве. И это не все особенности. Например, HDFS следит за сохранностью информации и умеет восстанавливать её в случае потери.</p>
8
<p>HDFS - это файловая система Hadoop. Она похожа на файловую систему вашего компьютера, но данные хранятся кусочками на десятках и сотнях серверов, а не на одном устройстве. И это не все особенности. Например, HDFS следит за сохранностью информации и умеет восстанавливать её в случае потери.</p>
9
<p>Сегодня вы узнаете:</p>
9
<p>Сегодня вы узнаете:</p>
10
<ul><li><a>Что такое HDFS</a></li>
10
<ul><li><a>Что такое HDFS</a></li>
11
<li><a>Какая архитектура используется в HDFS</a></li>
11
<li><a>Какая архитектура используется в HDFS</a></li>
12
<li><a>Почему распределённая файловая система стала популярной и какие недостатки у неё есть</a></li>
12
<li><a>Почему распределённая файловая система стала популярной и какие недостатки у неё есть</a></li>
13
</ul><p><strong>HDFS (Hadoop Distributed File System)</strong> - это файловая система, предназначенная для работы с большими данными в экосистеме Hadoop на распределённых кластерах. Её можно сравнить с файловой системой на вашем компьютере - в ней также есть папки, подпапки и файлы. Только всё это распределено между сотнями и тысячами устройств. Давайте вернёмся к основному определению и разберём каждый термин, чтобы лучше понять, как HDFS связана с большими данными.</p>
13
</ul><p><strong>HDFS (Hadoop Distributed File System)</strong> - это файловая система, предназначенная для работы с большими данными в экосистеме Hadoop на распределённых кластерах. Её можно сравнить с файловой системой на вашем компьютере - в ней также есть папки, подпапки и файлы. Только всё это распределено между сотнями и тысячами устройств. Давайте вернёмся к основному определению и разберём каждый термин, чтобы лучше понять, как HDFS связана с большими данными.</p>
14
<p>Большие данные - это такие данные, которые отличаются разнообразием и быстро накапливаются, в результате чего не могут быть обработаны на одном компьютере. Специалисты относят к термину не только саму информацию, но и методы работы с ней - от хранения до анализа. HDFS как раз один из подобных методов, обеспечивающих обработку и хранение данных.</p>
14
<p>Большие данные - это такие данные, которые отличаются разнообразием и быстро накапливаются, в результате чего не могут быть обработаны на одном компьютере. Специалисты относят к термину не только саму информацию, но и методы работы с ней - от хранения до анализа. HDFS как раз один из подобных методов, обеспечивающих обработку и хранение данных.</p>
15
<p>Hadoop - это платформа с открытым исходным кодом, написанная на Java и позволяющая распределять данные для анализа по кластеру компьютеров.</p>
15
<p>Hadoop - это платформа с открытым исходным кодом, написанная на Java и позволяющая распределять данные для анализа по кластеру компьютеров.</p>
16
<p>Кластер - группа компьютеров, которые представляют собой аппаратный ресурс, выполняющий работу как единое целое. То есть задача одновременно выполняется на всех из них, что ускоряет её решение.</p>
16
<p>Кластер - группа компьютеров, которые представляют собой аппаратный ресурс, выполняющий работу как единое целое. То есть задача одновременно выполняется на всех из них, что ускоряет её решение.</p>
17
<p>HDFS разделяет данные на множество блоков и хранит их на серверах в кластере. Блок - это кусочек файла стандартного размера. Во второй версии HDFS, которая сейчас считается основной, это 128 МБ. Соответственно, исходный файл разделяется на блоки по 128 МБ, которых может быть десять, а несколько тысяч.</p>
17
<p>HDFS разделяет данные на множество блоков и хранит их на серверах в кластере. Блок - это кусочек файла стандартного размера. Во второй версии HDFS, которая сейчас считается основной, это 128 МБ. Соответственно, исходный файл разделяется на блоки по 128 МБ, которых может быть десять, а несколько тысяч.</p>
18
<p>Каждый блок с информацией реплицируется на несколько узлов для обеспечения отказоустойчивости. Если один из серверов перестаёт работать, например, из-за сбоя в оборудовании, данные не пропадают, а восстанавливаются с целых узлов. Когда вышедший из строя узел вернётся в работу, данные автоматически синхронизируются.</p>
18
<p>Каждый блок с информацией реплицируется на несколько узлов для обеспечения отказоустойчивости. Если один из серверов перестаёт работать, например, из-за сбоя в оборудовании, данные не пропадают, а восстанавливаются с целых узлов. Когда вышедший из строя узел вернётся в работу, данные автоматически синхронизируются.</p>
19
<p>Такой подход позволяет HDFS обеспечить высокую скорость передачи данных и надёжность, что делает её "золотым стандартом" файловой системы для работы с большими данными в Hadoop.</p>
19
<p>Такой подход позволяет HDFS обеспечить высокую скорость передачи данных и надёжность, что делает её "золотым стандартом" файловой системы для работы с большими данными в Hadoop.</p>
20
<p>Каждый вычислительный кластер под управлением Hadoop Distributed File System включает четыре компонента: клиент, главный узел, вторичный главный узел и узлы данных.</p>
20
<p>Каждый вычислительный кластер под управлением Hadoop Distributed File System включает четыре компонента: клиент, главный узел, вторичный главный узел и узлы данных.</p>
21
Взаимосвязь компонентов HDFS<em>Изображение: Skillbox Media</em><p>Клиент - это приложение, обеспечивающее взаимодействие пользователя через API с главным узлом, то есть с HDFS в целом. С помощью него пользователь работает с файлами: создаёт новые, удаляет существующие, редактирует, просматривает и перемещает их.</p>
21
Взаимосвязь компонентов HDFS<em>Изображение: Skillbox Media</em><p>Клиент - это приложение, обеспечивающее взаимодействие пользователя через API с главным узлом, то есть с HDFS в целом. С помощью него пользователь работает с файлами: создаёт новые, удаляет существующие, редактирует, просматривает и перемещает их.</p>
22
<p>Это сервер, наличие которого обязательно для работы HDFS. Главный узел управляет пространством имён файловой системы, хранит "карту" распределения файлов по блокам и их метаданные. Например, имена файлов и каталогов.</p>
22
<p>Это сервер, наличие которого обязательно для работы HDFS. Главный узел управляет пространством имён файловой системы, хранит "карту" распределения файлов по блокам и их метаданные. Например, имена файлов и каталогов.</p>
23
<p>Кроме хранения метаданных, NameNode управляет данными - разделяет их на блоки стандартного размера и распределяет по узлам данных в кластере. Если какой-либо блок данных или узел становятся недоступными, главный узел переносит блоки данных с работающих узлов и реплицирует их, сохраняя информацию.</p>
23
<p>Кроме хранения метаданных, NameNode управляет данными - разделяет их на блоки стандартного размера и распределяет по узлам данных в кластере. Если какой-либо блок данных или узел становятся недоступными, главный узел переносит блоки данных с работающих узлов и реплицирует их, сохраняя информацию.</p>
24
<p>Когда клиент запрашивает доступ к данным, NameNode обрабатывает этот запрос. Он предоставляет информацию о расположении блоков данных, однако сам не взаимодействует с ними напрямую. Это делают узлы данных, о которых мы расскажем позже.</p>
24
<p>Когда клиент запрашивает доступ к данным, NameNode обрабатывает этот запрос. Он предоставляет информацию о расположении блоков данных, однако сам не взаимодействует с ними напрямую. Это делают узлы данных, о которых мы расскажем позже.</p>
25
<p>В главном узле хранятся два вида файлов - FSImage и EditLogs.</p>
25
<p>В главном узле хранятся два вида файлов - FSImage и EditLogs.</p>
26
<p><strong>FSImage</strong>содержит сведения о файловой системе - каталоги и файлы с учётом их вложенности. Его также называют файловым образом, поскольку он отражает структуру хранения данных.</p>
26
<p><strong>FSImage</strong>содержит сведения о файловой системе - каталоги и файлы с учётом их вложенности. Его также называют файловым образом, поскольку он отражает структуру хранения данных.</p>
27
<p><strong>EditLogs</strong>хранит информацию об изменениях в файловой системе и используется для обновления FSImage при перезапуске главного узла.</p>
27
<p><strong>EditLogs</strong>хранит информацию об изменениях в файловой системе и используется для обновления FSImage при перезапуске главного узла.</p>
28
<p>Вторичный главный узел поддерживает актуальной собственную копию FSImage, периодически получая файлы EditLogs из NameNode. Это ускоряет работу системы при перезапуске. Если бы вторичный главный узел отсутствовал, то в EditLogs накапливалось бы большое количество изменений, так как их переход в FSImage главного узла происходит при перезапуске HDFS. А HDFS может работать без перезапуска несколько дней или недель.</p>
28
<p>Вторичный главный узел поддерживает актуальной собственную копию FSImage, периодически получая файлы EditLogs из NameNode. Это ускоряет работу системы при перезапуске. Если бы вторичный главный узел отсутствовал, то в EditLogs накапливалось бы большое количество изменений, так как их переход в FSImage главного узла происходит при перезапуске HDFS. А HDFS может работать без перезапуска несколько дней или недель.</p>
29
<p>Поэтому разработчики HDFS предложили использовать вторичный главный узел, который обновляет собственный файл FSImage во время работы главного узла. То есть при перезапуске системы у неё сразу же будет актуальная версия файлового образа.</p>
29
<p>Поэтому разработчики HDFS предложили использовать вторичный главный узел, который обновляет собственный файл FSImage во время работы главного узла. То есть при перезапуске системы у неё сразу же будет актуальная версия файлового образа.</p>
30
<p>Важно! Вторичный главный узел не является резервной копией главного узла, то есть не может быть использован для его восстановления в случае критических ошибок.</p>
30
<p>Важно! Вторичный главный узел не является резервной копией главного узла, то есть не может быть использован для его восстановления в случае критических ошибок.</p>
31
<p>Это серверы, которые непосредственно работают с блоками данных. DataNode выполняет команды главного узла, обеспечивает репликацию данных и отправляет в NameNode периодические сообщения (heartbeats) о состоянии блоков данных.</p>
31
<p>Это серверы, которые непосредственно работают с блоками данных. DataNode выполняет команды главного узла, обеспечивает репликацию данных и отправляет в NameNode периодические сообщения (heartbeats) о состоянии блоков данных.</p>
32
<p>Узлов данных, в отличие от главного узла и вторичного главного узла, обычно много - именно они распределены по кластерам.</p>
32
<p>Узлов данных, в отличие от главного узла и вторичного главного узла, обычно много - именно они распределены по кластерам.</p>
33
<p>HDFS стала популярна благодаря своим свойствам, позволяющим удобно хранить и обрабатывать большие данные. Рассмотрим главные среди них.</p>
33
<p>HDFS стала популярна благодаря своим свойствам, позволяющим удобно хранить и обрабатывать большие данные. Рассмотрим главные среди них.</p>
34
<p><strong>Распределённое хранение.</strong>HDFS разбивает файлы на небольшие блоки и хранит их на разных узлах в кластере серверов. Это равномерно распределяет нагрузку на кластер и позволяет ускорить работу с данными за счёт одновременной обработки сотен и тысяч файловых блоков.</p>
34
<p><strong>Распределённое хранение.</strong>HDFS разбивает файлы на небольшие блоки и хранит их на разных узлах в кластере серверов. Это равномерно распределяет нагрузку на кластер и позволяет ускорить работу с данными за счёт одновременной обработки сотен и тысяч файловых блоков.</p>
35
<p><strong>Репликация данных.</strong>Каждый блок данных в HDFS дублируется на несколько узлов. Если один узел выходит из строя, информация может быть восстановлена из других.</p>
35
<p><strong>Репликация данных.</strong>Каждый блок данных в HDFS дублируется на несколько узлов. Если один узел выходит из строя, информация может быть восстановлена из других.</p>
36
<p><strong>Работа в формате потока данных.</strong>Обработка данных может идти в режиме реального времени в процессе их получения, что ускоряет работу. Серверу не нужно ждать, пока поступление данных закончится.</p>
36
<p><strong>Работа в формате потока данных.</strong>Обработка данных может идти в режиме реального времени в процессе их получения, что ускоряет работу. Серверу не нужно ждать, пока поступление данных закончится.</p>
37
<p><strong>Простота обслуживания и устойчивость.</strong>Благодаря репликации и системе сообщений узлов данных HDFS автоматически обнаруживает сбои и восстанавливает данные из реплицированных узлов.</p>
37
<p><strong>Простота обслуживания и устойчивость.</strong>Благодаря репликации и системе сообщений узлов данных HDFS автоматически обнаруживает сбои и восстанавливает данные из реплицированных узлов.</p>
38
<p><strong>Масштабируемость.</strong>HDFS легко масштабируется по горизонтали. Если объём данных или нагрузка увеличиваются, то можно просто добавить больше серверов в вычислительный кластер. Система будет автоматически использовать их для хранения и обработки данных.</p>
38
<p><strong>Масштабируемость.</strong>HDFS легко масштабируется по горизонтали. Если объём данных или нагрузка увеличиваются, то можно просто добавить больше серверов в вычислительный кластер. Система будет автоматически использовать их для хранения и обработки данных.</p>
39
<p><strong>Поддержка различных типов данных.</strong>HDFS поддерживает хранение разнообразных данных - структурированных (таблицы), полуструктурированных (JSON, XML) и неструктурированных (видео и изображения).</p>
39
<p><strong>Поддержка различных типов данных.</strong>HDFS поддерживает хранение разнообразных данных - структурированных (таблицы), полуструктурированных (JSON, XML) и неструктурированных (видео и изображения).</p>
40
<p><strong>Интеграция с экосистемой Hadoop.</strong>HDFS плотно интегрирована с другими компонентами экосистемы Hadoop - Apache Spark, Apache Hive, Apache Pig и другими. Вместе они обеспечивают полный цикл обработки данных - хранение, распределение, загрузку, анализ, визуализацию и прочие способы представления данных.</p>
40
<p><strong>Интеграция с экосистемой Hadoop.</strong>HDFS плотно интегрирована с другими компонентами экосистемы Hadoop - Apache Spark, Apache Hive, Apache Pig и другими. Вместе они обеспечивают полный цикл обработки данных - хранение, распределение, загрузку, анализ, визуализацию и прочие способы представления данных.</p>
41
<p>Но у HDFS есть недостатки, которые ограничивают её широкое применение:</p>
41
<p>Но у HDFS есть недостатки, которые ограничивают её широкое применение:</p>
42
<ul><li>Низкая эффективность работы с файлами меньше размера одного стандартного блока - 128 МБ. Работа с ними приведёт к замедлению работы из-за многократного повышения нагрузки на NameNode, хранящего пространство имён в HDFS.</li>
42
<ul><li>Низкая эффективность работы с файлами меньше размера одного стандартного блока - 128 МБ. Работа с ними приведёт к замедлению работы из-за многократного повышения нагрузки на NameNode, хранящего пространство имён в HDFS.</li>
43
<li>Работа системы полностью зависит от главного узла. Если по какой-либо причине он перестанет работать, то вся HDFS выйдет из строя. Восстановить его из вторичного главного узла невозможно.</li>
43
<li>Работа системы полностью зависит от главного узла. Если по какой-либо причине он перестанет работать, то вся HDFS выйдет из строя. Восстановить его из вторичного главного узла невозможно.</li>
44
<li>Низкая безопасность данных, так как при получении доступа к главному узлу можно получить доступ ко всей хранящейся в файловой системе информации.</li>
44
<li>Низкая безопасность данных, так как при получении доступа к главному узлу можно получить доступ ко всей хранящейся в файловой системе информации.</li>
45
</ul><a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
45
</ul><a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>