HTML Diff
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>