Какво е Hadoop? Въведение, Archiструктура, екосистема, компоненти
Какво е Hadoop?
Apache Hadoop е софтуерна рамка с отворен код, използвана за разработване на приложения за обработка на данни, които се изпълняват в разпределена изчислителна среда.
Приложенията, създадени с помощта на HADOOP, се изпълняват върху големи набори от данни, разпределени в клъстери от обикновени компютри. Стандартните компютри са евтини и широко достъпни. Те са полезни главно за постигане на по-голяма изчислителна мощност на ниска цена.
Подобно на данните, намиращи се в локална файлова система на персонална компютърна система, в Hadoop данните се намират в разпределена файлова система, която се нарича Разпределена файлова система Hadoop. Моделът за обработка се основава на „Местност на данните“ концепция, при която изчислителната логика се изпраща до клъстерни възли (сървър), съдържащи данни. Тази изчислителна логика не е нищо, а компилирана версия на програма, написана на език от високо ниво като Java. Такава програма обработва данни, съхранявани в Hadoop HDFS.
Знаеш ли? Компютърният клъстер се състои от набор от множество процесорни единици (диск за съхранение + процесор), които са свързани помежду си и действат като единна система.
Hadoop EcoSystem и компоненти
Диаграмата по-долу показва различни компоненти в екосистемата Hadoop-
Apache Hadoop се състои от два подпроекта –
- Hadoop MapReduce: MapReduce е изчислителен модел и софтуерна рамка за писане на приложения, които се изпълняват на Hadoop. Тези програми MapReduce са в състояние да обработват огромни данни паралелно на големи клъстери от изчислителни възли.
- HDFS (Разпределена файлова система Hadoop): HDFS се грижи за частта за съхранение на приложенията на Hadoop. Приложенията MapReduce консумират данни от HDFS. HDFS създава множество реплики на блокове данни и ги разпределя в изчислителни възли в клъстер. Това разпределение позволява надеждни и изключително бързи изчисления.
Въпреки че Hadoop е най-известен с MapReduce и неговата разпределена файлова система - HDFS, терминът се използва и за семейство от свързани проекти, които попадат под чадъра на разпределени изчисления и широкомащабна обработка на данни. Други проекти, свързани с Hadoop на Apache включват са Hive, HBase, Mahout, Sqoop, Flume и ZooKeeper.
Hadoop Archiтекстура

Hadoop има Master-Slave Archiструктура за съхранение на данни и използване на разпределена обработка на данни MapReduce и HDFS методи.
NameNode:
NameNode представлява всеки файл и директория, които се използват в пространството от имена
DataNode:
DataNode ви помага да управлявате състоянието на HDFS възел и ви позволява да взаимодействате с блоковете
Главен възел:
Главният възел ви позволява да провеждате паралелна обработка на данни с помощта на Hadoop MapReduce.
Подчинен възел:
Подчинените възли са допълнителните машини в клъстера Hadoop, които ви позволяват да съхранявате данни за извършване на сложни изчисления. Освен това всички подчинени възли идват с Task Tracker и DataNode. Това ви позволява да синхронизирате процесите съответно с NameNode и Job Tracker.
В Hadoop главната или подчинената система може да бъде настроена в облака или локално
Характеристики на „Hadoop“
• Подходящ за анализ на големи данни
Тъй като големите данни са склонни да бъдат разпределени и неструктурирани по природа, HADOOP клъстерите са най-подходящи за анализ на големи данни. Тъй като логиката на обработка (а не действителните данни) тече към изчислителните възли, се консумира по-малко мрежова честотна лента. Тази концепция се нарича като концепция за локализация на данните което помага да се увеличи ефективността на базираните на Hadoop приложения.
• Мащабируемост
HADOOP клъстерите могат лесно да бъдат мащабирани до всякаква степен чрез добавяне на допълнителни клъстерни възли и по този начин позволяват растеж на Big Data. Освен това мащабирането не изисква модификации на логиката на приложението.
• Толерантност към грешки
Екосистемата HADOOP има разпоредба за репликиране на входните данни към други клъстерни възли. По този начин, в случай на повреда на клъстерен възел, обработката на данни може да продължи, като се използват данни, съхранени в друг клъстерен възел.
Мрежова топология в Hadoop
Топология (подреждане) на мрежата, влияе върху производителността на Hadoop клъстера, когато размерът на Hadoop клъстера нараства. В допълнение към производителността трябва да се грижи и за високата достъпност и справянето с повреди. За да се постигне този Hadoop, формирането на клъстери използва мрежова топология.
Обикновено честотната лента на мрежата е важен фактор, който трябва да се има предвид при формирането на всяка мрежа. Въпреки това, тъй като измерването на честотната лента може да бъде трудно, в Hadoop мрежата е представена като дърво и разстоянието между възлите на това дърво (брой хопове) се счита за важен фактор при формирането на Hadoop клъстер. Тук разстоянието между два възела е равно на сумата от тяхното разстояние до техния най-близък общ прародител.
Hadoop клъстерът се състои от център за данни, стелаж и възел, който всъщност изпълнява задачи. Тук центърът за данни се състои от стелажи, а стелажът се състои от възли. Мрежовата честотна лента, налична за процесите, варира в зависимост от местоположението на процесите. Тоест наличната честотна лента става по-малка, когато се отдалечим от-
- Процеси на един и същи възел
- Различни възли на една и съща стойка
- Възли на различни стелажи на един и същ център за данни
- Възли в различни центрове за данни