Какво е Hadoop?
Apache Hadoop е софтуерна рамка с отворен код, използвана за разработване на приложения за обработка на данни, които се изпълняват в разпределена изчислителна среда.
Приложенията, изградени с помощта на HADOOP, се изпълняват на големи масиви от данни, разпределени в клъстери на стокови компютри. Стоковите компютри са евтини и широко достъпни. Те са полезни главно за постигане на по-голяма изчислителна мощност при ниска цена.
Подобно на данните, намиращи се в локална файлова система на персонален компютър, в Hadoop данните се намират в разпределена файлова система, която се нарича Hadoop Distributed File system . Моделът за обработка се основава на концепцията „Локалност на данните“, при която изчислителната логика се изпраща към клъстерни възли (сървър), съдържащи данни. Тази изчислителна логика не е нищо друго, а компилирана версия на програма, написана на език от високо ниво като Java. Такава програма обработва данни, съхранявани в Hadoop HDFS.
Знаеш ли? Компютърният клъстер се състои от набор от множество процесори (диск за съхранение + процесор), които са свързани помежду си и действат като единна система.
В този урок ще научите,
- Hadoop EcoSystem и компоненти
- Архитектура на Hadoop
- Характеристики на "Hadoop"
- Мрежова топология в Hadoop
Hadoop EcoSystem и компоненти
По-долу диаграмата показва различни компоненти в екосистемата на Hadoop-
Apache Hadoop се състои от два подпроекта -
- Hadoop MapReduce: MapReduce е изчислителен модел и софтуерна рамка за писане на приложения, които се изпълняват на Hadoop. Тези програми MapReduce са способни да обработват огромни данни паралелно на големи клъстери изчислителни възли.
- HDFS ( Hadoop Distributed File System ): HDFS се грижи за частта за съхранение на приложенията на Hadoop. Приложенията MapReduce консумират данни от HDFS. HDFS създава множество реплики на блокове с данни и ги разпространява в изчислителни възли в клъстер. Това разпределение позволява надеждни и изключително бързи изчисления.
Въпреки че Hadoop е най-известен с MapReduce и неговата разпределена файлова система - HDFS, терминът се използва и за семейство свързани проекти, които попадат под шапката на разпределените изчисления и мащабната обработка на данни. Други проекти, свързани с Hadoop в Apache, са Hive, HBase, Mahout, Sqoop, Flume и ZooKeeper.
Архитектура на Hadoop
Hadoop има архитектура Master-Slave за съхранение на данни и разпределена обработка на данни, използвайки методите MapReduce и HDFS.
NameNode:
NameNode представя всички файлове и директории, които се използват в пространството от имена
DataNode:
DataNode ви помага да управлявате състоянието на HDFS възел и ви позволява да взаимодействате с блоковете
MasterNode:
Главният възел ви позволява да провеждате паралелна обработка на данни с помощта на Hadoop MapReduce.
Подчинен възел:
Подчинените възли са допълнителните машини в клъстера Hadoop, което ви позволява да съхранявате данни за извършване на сложни изчисления. Освен това, всички подчинени възел се доставя с Task Tracker и DataNode. Това ви позволява да синхронизирате процесите съответно с NameNode и Job Tracker.
В Hadoop главната или подчинената система могат да бъдат настроени в облака или локално
Характеристики на "Hadoop"
• Подходящ за анализ на големи данни
Тъй като големите данни са склонни да бъдат разпределени и неструктурирани в природата, клъстерите HADOOP са най-подходящи за анализ на големи данни. Тъй като обработващата логика (а не действителните данни) тече към изчислителните възли, се консумира по-малко честотна лента на мрежата. Тази концепция се нарича концепция за местоположение на данни, която помага да се увеличи ефективността на приложенията, базирани на Hadoop.
• Мащабируемост
HADOOP клъстерите могат лесно да се мащабират до всяка степен чрез добавяне на допълнителни клъстерни възли и по този начин позволява растежа на големите данни. Също така, мащабирането не изисква промени в логиката на приложението.
• Поносимост към повреди
Екосистемата на HADOOP има възможност да репликира входните данни към други клъстерни възли. По този начин, в случай на отказ на клъстерен възел, обработката на данни все още може да продължи, като се използват данни, съхранени в друг клъстерен възел.
Мрежова топология в Hadoop
Топологията (подреждането) на мрежата влияе върху производителността на клъстера Hadoop, когато размерът на клъстера Hadoop нараства. В допълнение към производителността, човек трябва да се грижи и за високата наличност и справяне с отказите. За да се постигне този Hadoop, формирането на клъстери използва мрежова топология.
Обикновено честотната лента на мрежата е важен фактор, който трябва да се има предвид при формирането на всяка мрежа. Тъй като обаче измерването на честотната лента може да бъде трудно, в Hadoop мрежата е представена като дърво и разстоянието между възлите на това дърво (брой скокове) се счита за важен фактор при формирането на клъстера Hadoop. Тук разстоянието между два възела е равно на сума от тяхното разстояние до най-близкия им общ предшественик.
Клъстерът Hadoop се състои от център за данни, стелаж и възел, който всъщност изпълнява задания. Тук центърът за данни се състои от стелажи, а багажникът се състои от възли. Мрежовата честотна лента, достъпна за процесите, варира в зависимост от местоположението на процесите. Тоест, наличната честотна лента става по-малка, когато се отдалечаваме от-
- Процеси на същия възел
- Различни възли на един и същ багажник
- Възли на различни стелажи на един и същ център за данни
- Възли в различни центрове за данни