Какво е Hadoop? ArchiСтруктура, екосистема и компоненти

⚡ Умно обобщение

Apache Hadoop е рамка с отворен код, която съхранява огромни набори от данни в клъстери от масови машини и премества логиката на обработка към данните, така че анализът се мащабира чрез добавяне на евтини възли, вместо по-големи сървъри.

  • 🔘 Основни модули: HDFS съхранява блоковете, MapReduce ги обработва, а YARN планира клъстерните ресурси от Hadoop 2.x нататък.
  • ☑️ Местоположение на данните: Компилираната логика за обработка се прехвърля към възела, съдържащ блока, като по този начин се изразходва много по-малко мрежова честотна лента.
  • Екосистема: Hive, HBase, Mahout, Sqoop, Flume и ZooKeeper разширяват ядрото със SQL, NoSQL, прием и координация.
  • 🧪 Разположение на главния и подчинения сървър: NameNode tracметаданните на пространството от имена ks, докато DataNodes съхраняват блоковете и докладват за тяхното състояние.
  • 🛠️ Толеранс: Всеки блок се репликира между възлите, така че една-единствена повредена машина никога не спира работеща задача.
  • ⚠️ Топология на мрежата: Hadoop моделира клъстера като дърво от центрове за данни, стелажи и възли, за да поддържа трафика локален.

Какво представлява архитектурата, екосистемата и компонентите на Hadoop

Какво е Hadoop?

Apache Hadoop е софтуерна рамка с отворен код, използвана за разработване на приложения за обработка на данни, които се изпълняват в разпределена изчислителна среда.

Приложенията, изградени с помощта на Hadoop, се изпълняват върху големи масиви от данни, разпределени в клъстери от масови компютри. Масовите компютри са евтини и широко достъпни. Те са полезни главно за постигане на по-голяма изчислителна мощност на ниска цена.

Подобно на данните, намиращи се в локална файлова система на персонален компютър, в Hadoop данните се намират в разпределена файлова система, която се нарича Разпределена файлова система HadoopМоделът на обработка е базиран на „Местност на данните“ концепция, при която изчислителната логика се изпраща към клъстерните възли (сървъри), съдържащи данните. Тази изчислителна логика е просто компилирана версия на програма, написана на език от високо ниво, като например JavaТакава програма обработва данни, съхранени в Hadoop HDFS.

Знаеш ли? Компютърният клъстер се състои от набор от множество процесорни устройства (диск за съхранение + процесор), които са свързани помежду си и действат като единна система.

Версия 3.5.0, публикувана на 2 април 2026 г., е текущата стабилна версия; линията 3.4 все още получава актуализации за поддръжка.

Hadoop екосистема и компоненти

Диаграмата по-долу показва различните компоненти в екосистемата Hadoop, групирани по задачата, която всеки от тях изпълнява – съхранение, обработка и инструменти за заявки, приемане и координация около тях.

Диаграма на екосистемата на Hadoop, показваща HDFS, MapReduce и околните Apache проекти

Apache Hadoop се състои от два подпроекта –

  1. Hadoop MapReduce: MapReduce е изчислителен модел и софтуерна рамка за писане на приложения, които се изпълняват на Hadoop. Тези програми MapReduce са в състояние да обработват огромни данни паралелно на големи клъстери от изчислителни възли.
  2. HDFS (Разпределена файлова система Hadoop): HDFS се грижи за частта за съхранение на приложенията на Hadoop. Приложенията MapReduce консумират данни от HDFS. HDFS създава множество реплики на блокове данни и ги разпределя в изчислителни възли в клъстер. Това разпределение позволява надеждни и изключително бързи изчисления.

Текущите издания доставят два допълнителни основни модула. Hadoop прежда, добавен в Hadoop 2.x, планира работата на клъстера и Хадуп Комън държи споделеното Java библиотеки, от които зависи всеки модул. YARN е това, което позволява на двигатели като Spark, Tez и Flink работят успоредно с MapReduce.

Въпреки че Hadoop е най-известен с MapReduce и неговата разпределена файлова система HDFS, терминът се използва и за семейство свързани проекти, които попадат под шапката на разпределените изчисления и мащабната обработка на данни. Други проекти, свързани с Hadoop в Apache, включват Кошер, HBase, Mahout, Sqoop, Flumeи Зоопарк.

Hadoop Archiтекстура

Hadoop има master-slave архитектура за съхранение на данни и разпределена обработка на данни, използвайки MapReduce и HDFS методи. Диаграмата по-долу поставя тези роли една до друга, като слоят за съхранение е от едната страна, а слоят за обработка е от другата.

Диаграма на архитектурата на Hadoop на високо ниво, показваща NameNode, DataNodes, master node и slave node

Hadoop на високо ниво Archiтекстура

NameNode

NameNode съхранява метаданните за всеки файл и директория, използвани в пространството от имена, включително кои блокове съставляват всеки файл и къде се намират тези блокове.

Възел на данни

DataNode управлява състоянието на HDFS възел и ви позволява да взаимодействате с блоковете, които съхранява, като докладва обратно на NameNode с периодични отчети за блокове и пулсации.

Главен възел

Главният възел ви позволява да провеждате паралелна обработка на данни с помощта на Hadoop MapReduce.

Подчинен възел

Подчинените възли са допълнителните машини в клъстера Hadoop, които ви позволяват да съхранявате данни и да изпълнявате сложни изчисления. Освен това, всеки подчинен възел изпълнява задача (Task).Tracker и DataNode. Това ви позволява да синхронизирате процесите с NameNode и JobTracкер съответно.

В Hadoop, главни или подчинени системи могат да бъдат настроени в облака или локално.

Една бележка за именуване: РаботаTracКер намлява TaskTracКер принадлежат към първото поколение среда за изпълнение MapReduce (MRv1). От Hadoop 2.x нататък, YARN разделя задълженията си между клъстерна среда Мениджър на ресурси, и NodeManager на работник и един ApplicationMaster за всяка задача. NameNode и DataNode остават непроменени.

Характеристики на Hadoop

Подходящ за анализ на големи данни

As Голямо количество от данни Тъй като по природа са разпределени и неструктурирани, Hadoop клъстерите са най-подходящи за анализ на големи данни. Тъй като логиката за обработка (не самите данни) се предава към изчислителните възли, се изразходва по-малко мрежова честотна лента. Това се нарича концепция за локализация на даннитеи това помага за повишаване на ефективността на приложенията, базирани на Hadoop.

скалируемост

Клъстерите Hadoop могат лесно да бъдат мащабирани до всякаква степен чрез добавяне на допълнителни клъстерни възли и по този начин да се позволи растежът на големите данни. Също така, мащабирането не изисква модификации в логиката на приложението.

Толерантност на грешки

Екосистемата Hadoop има възможност за репликиране на входните данни към други клъстерни възли. По този начин, в случай на повреда на клъстерен възел, обработката на данни може да продължи, като се използват данни, съхранени на друг клъстерен възел. HDFS съхранява три копия на всеки блок по подразбиране, стойност, зададена от dfs.replication свойството, а NameNode репликира повторно всеки блок, чийто брой падне под този брой.

Мрежова топология в Hadoop

Топологията (подредбата) на мрежата влияе върху производителността на Hadoop клъстера с нарастването на размера на клъстера. В допълнение към производителността, трябва да се обърне внимание и на високата достъпност и обработката на повреди. За да се постигне това, формирането на Hadoop клъстери използва мрежова топология.

Дървото по-долу показва как е моделирана тази подредба, от центъра за данни до възлите във всеки стелаж.

Дърво на топологията на мрежата Hadoop с център за данни, стелажи и възли, използвани за измерване на разстоянието между възлите

Обикновено мрежовата пропускателна способност е важен фактор, който трябва да се вземе предвид при формирането на всяка мрежа. Тъй като измерването на пропускателната способност може да бъде трудно, в Hadoop мрежата се представя като дърво, а разстоянието между възлите на това дърво (броят на преходите) се счита за важен фактор при формирането на Hadoop клъстер. Тук разстоянието между два възела е равно на сумата от разстоянията им до най-близкия им общ предшественик.

Клъстерът Hadoop се състои от център за данни, стелаж и възел, който реално изпълнява задачи. Тук центърът за данни се състои от стелажи, а стелажът се състои от възли. Мрежовата честотна лента, достъпна за процесите, варира в зависимост от местоположението на процесите. Тоест, наличната честотна лента намалява с отдалечаването от...

  • Процеси на един и същи възел
  • Различни възли на една и съща стойка
  • Възли на различни стелажи на един и същ център за данни
  • Възли в различни центрове за данни

Осведомеността за стелажи използва същото дърво: HDFS поставя реплики на повече от един стелаж, така че загубата на стелажния комутатор не отнема всяко копие на данните със себе си.

Въпроси и Отговори

Версия 3.5.0, публикувана на 2 април 2026 г., е първата стабилна версия на линията 3.5 и обичайният избор за нови клъстери. Линията 3.4 все още се поддържа, ако имате нужда от по-дълго установен клон.

Да. Hadoop поддържа самостоятелен режим, който работи като едно цяло. Java процес без демони и псевдоразпределен режим, където всеки демон работи отделно на един хост. И двата са предназначени за обучение и тестване, а не за производство.

Модели, обучени върху историята на задачите, прогнозират времената за изпълнение, препоръчват размери на контейнери и сигнализират за изкривяване на данните, преди задачата да завърши. Подобни модели сканират регистрационните файлове на NameNode и DataNode, за да открият повредени дискове и горещи стелажи по-рано, отколкото правят праговите предупреждения.

Ускорява шаблонните задачи: скелети на mapper и reducer, конфигурация на драйвери за задачи и блокове със свойства на XML. Винаги проверявайте генерирания код спрямо версията на API, която изпълнявате, защото Copilot смесва старите пакети mapred и по-новите mapreduce.

Три по подразбиране, контролирани от dfs.replication. Една реплика остава на записващия възел, втора отива в друг стелаж, а трета се присъединява към втория стелаж. NameNode възстановява всеки блок, който попада под целта.

Все още е обичайно съхранението на пакети данни в петабайтов мащаб да се извършва на собствен хардуер. Повечето нови обработки са написани за Spark или Flink, които работят на YARN, така че HDFS често оцелява като слой за съхранение след оттеглянето на MapReduce.

YARN е мениджърът на ресурси, въведен в Hadoop 2.x. Той отделя планирането на клъстери от програмния модел MapReduce, който премахна Job.Tracпречка за Кер и нека двигатели като Spark, Tez и Flink споделят един клъстер.

Java е нативен. Hadoop Streaming позволява на всеки изпълним файл, който чете стандартен вход, да работи като мапър или редуктор, така че Python, Руби, Перл и C++ всички са използваеми, а Hive добавя SQL-подобен слой върху същите данни.

Обобщете тази публикация с: