Работата с тонове данни изисква някаква специална подредба. Обичайните изчислителни техники са недостатъчни, за да се справят с поток от данни; още повече, когато идват от множество източници. В големите данни величината, за която говорим, е огромна – измерена в зетабайти, ексабайти или милиони петабайта или милиарди терабайти. Рамката, наречена Hadoop се използва популярно за справяне с някои от проблемите с управлението на големи данни. Тази статия се опитва да даде въвеждаща идея за Hadoop в светлината на големите данни.
Еволюция
Нищо не се случва с голям взрив. Възникването и еволюцията на Hadoop е постепенна и според нуждите на часа при работа с големи данни. За да кажа накратко, той дължи своя произход на проекта Apache Nutch на Дъг Кътинг през 2003 г., особено в началото на кодовата част от него. Генезисът е разработен от Google File System (GFS), документ, публикуван през октомври 2003 г., който повлия на друг документ, наречен MapReduce:опростена обработка на данни в големи клъстери. Кодът за HDFS в Hadoop е изваден от проекта Apache Nutch през 2006 г. и е силно повлиян от алгоритмите GFS и MapReduce. И фактът, че името „Hadoop“ идва от плюшената играчка слон на сина на Кътинг, ясно резонира идеята, че в стаята има слон, с който Hadoop очевидно иска да се обърне или да се справи с него.
Накратко
Днес Hadoop се разрасна от монолитното си начало до софтуерна библиотека, рамка за разработване на приложения, които изискват разпределена обработка на огромни количества данни, разположени в клъстери от компютри, използвайки прости модели за програмиране. Може да се разшири от един сървър до хиляди машини. Идеята е да се разпределят изчисленията и съхранението между множество компютри, за да се използва обработката на големи набори от данни. Библиотеката има способността да открива неизправности на нивото на приложния слой, така че програмистът да може да се справи с тях и да предоставя услуга на върха на клъстер от компютри, вместо да проникне надолу по неизправността до едно или повече по-ниски нива, където става по-трудно да се управлявайте или преодолявайте.
Следователно Hadoop е комбинация от инструменти и библиотеки с отворен код, поддържани от Apache за създаване на приложения за разпределени изчисления, които са много надеждни и мащабируеми.
Как работи
Има три начина, по които Hadoop основно се справя с големите данни:
- Първият проблем е съхранението. Данните се съхраняват в множество изчислителни машини в разпределена среда, където могат да се обработват паралелно, за да се намалят времето и ресурсите. Данните се съхраняват в среда, наречена Разпределена файлова система на Hadoop (HDFS) , който се използва за съхраняване на данни в множество формати в клъстери от машини. За тази цел той разделя данните на блокове и ги съхранява в различни възли за данни. Той използва техника, наречена хоризонтално мащабиране за добавяне на допълнителни възли за данни към съществуващи HDFS клъстери според изискването. Това максимизира използването на съществуващ ресурс, вместо да добавя такъв, когато възникне необходимост от увеличаване на мащаба.
- Вторият проблем е да се съобразят с разнообразието от данни. HDFS е оборудван да съхранява всички видове данни, независимо дали са структурирани, полуструктурирани или неструктурирани. Няма валидиране на схемата преди дъмпинг. Данните, веднъж записани, могат да се четат няколко пъти без проблем.
- Третият проблем е обработката и начина за достъп до съхранените данни. В тази връзка на помощ идва алгоритъмът MapReduce, при който обработката се разпределя между подчинени възли, за да работи паралелно и резултатът се изпраща обратно на главния възел. Главният възел обединява резултатите, преди да предостави крайния резултат. Тази част се обработва от YARN, който е предназначен за паралелна обработка на данни, съхранявани в HDFS.
Има много сложни части, но това е, което Hadoop прави накратко. Идеята за модули ще даде допълнителна представа.
Модули
Проектът Apache Hadoop се състои от шест модула. Първите четири са както следва:
- Hadoop Common :Това се състои от помощни програми, които обикновено се използват от Hadoop и поддържа други модули на Hadoop. Известен е още като Hadoop Core и е съществена част от екосистемата, заедно с HDFS, YARN и MapReduce. Именно в тази част Hadoop предполага, че хардуерът е склонен към повреда и са осигурени всички необходими средства, за да може програмистът автоматично да се справи с повреда в софтуера.
- Разпределена файлова система на Hadoop (HDFS) :Разпределена файлова система, която може да побере различни файлове в разпределена среда. Той разделя файловете на блокове и ги съхранява между възли в разпределена архитектура. Той осигурява хоризонтално мащабиране вместо вертикално мащабиране, за допълнително групиране. Той е силно устойчив на грешки и е с ниска цена по отношение на възможностите за внедряване на хардуер.
- ПРЕЖДА Hadoop :Това е процесорът на рамката Hadoop. С два основни компонента, наречени NodeManager и ResourceManager , YARN изпълнява всички дейности по обработка, като разпределяне на ресурси, планиране на задачи и управление на клъстери.
- Hadoop MapReduce :Това е рамка за извършване на всички паралелни изчисления. MapReduce е модел за паралелно програмиране за обработка на данни в разпределена среда. Той се използва идеално за писане на разпределени приложения, които могат ефективно да обработват големи количества данни в клъстери от стандартен хардуер. Той разделя процеса на две фази, наречени Карта и Намаляване , където е задачата на Mapper class е да вземе входа, да го токенизира, да го картографира и да го сортира. След това изходът става вход за Редуктора клас, който търси съвпадащи двойки и ги намалява. Във всяка фаза има двойки ключ-стойност за вход и изход, като типът на двойката се определя от програмиста.
Наскоро бяха добавени два нови подпроекта:
- Hadoop Ozone :Това е мащабируемо, излишно и разпределено хранилище на обекти за Hadoop. Освен мащабиране до милиарди обекти с различни размери, Ozone може да функционира ефективно в контейнерни среди като Kubernetes и YARN. Той е изграден върху високодостъпен, репликиран слой за съхранение на блокове, наречен Hadoop Distributed Data Store (HDDS) . [Откъс. Кликнете, за да намерите повече.]
- Подводница Hadoop :Двигател за машинно обучение за Hadoop. Това е проект, който позволява на инфраинженер/учен по данни да изпълнява приложения за дълбоко обучение (Tensorflow, Pytorch и така нататък) на платформа за управление на ресурси (като YARN). [Откъс. Кликнете, за да намерите повече.]
Заключение
Hadoop оказа значително влияние върху търсенията, в процеса на регистриране, в съхранението на данни и анализите на големи данни на много големи организации, като Amazon, Facebook, Yahoo и т.н. Това е решение на едно място за съхраняване на огромно количество данни от всякакъв вид, придружено от мащабируема изчислителна мощност за използване на практически неограничени едновременни задачи. С няколко думи, популярността на Hadoop се дължи до голяма степен на неговата устойчива на грешки, мащабируема, рентабилна и бърза способност.