Що таке Hadoop? вступ, Archiтектура, Екосистема, Компоненти
Що таке Hadoop?
Apache Hadoop — це платформа програмного забезпечення з відкритим вихідним кодом, яка використовується для розробки програм обробки даних, які виконуються в розподіленому обчислювальному середовищі.
Програми, створені за допомогою HADOOP, працюють на великих наборах даних, розподілених між кластерами стандартних комп’ютерів. Звичайні комп'ютери дешеві і широко доступні. Вони в основному корисні для досягнення більшої обчислювальної потужності за низької вартості.
Подібно до даних, що зберігаються в локальній файловій системі персонального комп’ютера, у Hadoop дані зберігаються в розподіленій файловій системі, яка називається Розподілена файлова система Hadoop. Модель обробки базується на «Локальність даних» концепція, згідно з якою обчислювальна логіка надсилається на вузли кластера (сервер), що містять дані. Ця обчислювальна логіка є нічим іншим, як скомпільованою версією програми, написаною мовою високого рівня, такою як Java. Така програма обробляє дані, що зберігаються в Hadoop HDFS.
Чи знаєте ви? Комп’ютерний кластер складається з набору кількох процесорних блоків (диск зберігання даних + процесор), які з’єднані один з одним і діють як єдина система.
Екосистема та компоненти Hadoop
На діаграмі нижче показано різні компоненти екосистеми 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 і дозволяє взаємодіяти з блоками
MasterNode:
Головний вузол дозволяє проводити паралельну обробку даних за допомогою Hadoop MapReduce.
Підлеглий вузол:
Підлеглі вузли — це додаткові машини в кластері Hadoop, які дозволяють зберігати дані для проведення складних обчислень. Крім того, усі підлеглі вузли постачаються з Task Tracker і DataNode. Це дозволяє синхронізувати процеси з NameNode і Job Tracker відповідно.
У Hadoop головну або підлеглу систему можна налаштувати в хмарі або локально
Особливості «Hadoop»
• Підходить для аналізу великих даних
Оскільки великі дані мають тенденцію бути розподіленими та неструктурованими за своєю природою, кластери HADOOP найкраще підходять для аналізу великих даних. Оскільки саме логіка обробки (а не фактичні дані) надходить до обчислювальних вузлів, споживається менша пропускна здатність мережі. Це поняття називається як концепція локальності даних що допомагає підвищити ефективність програм на основі Hadoop.
• Масштабованість
Кластери HADOOP можна легко масштабувати до будь-якої міри, додаючи додаткові вузли кластера, що забезпечує зростання великих даних. Крім того, масштабування не вимагає модифікації логіки програми.
• Відмовостійкість
Екосистема HADOOP має можливість реплікувати вхідні дані на інші вузли кластера. Таким чином, у разі збою вузла кластера обробка даних все одно може продовжуватися, використовуючи дані, що зберігаються на іншому вузлі кластера.
Топологія мережі в Hadoop
Топологія (розташування) мережі впливає на продуктивність кластера Hadoop, коли розмір кластера Hadoop зростає. Крім продуктивності, потрібно також подбати про високу доступність і обробку відмов. Щоб досягти цього Hadoop, формування кластера використовує топологію мережі.
Як правило, пропускна здатність мережі є важливим фактором, який слід враховувати під час формування будь-якої мережі. Однак, оскільки вимірювання пропускної здатності може бути складним, у Hadoop мережа представлена у вигляді дерева, а відстань між вузлами цього дерева (кількість переходів) вважається важливим фактором у формуванні кластера Hadoop. Тут відстань між двома вузлами дорівнює сумі їх відстані до найближчого спільного предка.
Кластер Hadoop складається з центру обробки даних, стійки та вузла, який фактично виконує завдання. Тут центр обробки даних складається зі стійок, а стійка — з вузлів. Пропускна здатність мережі, доступна процесам, залежить від розташування процесів. Тобто доступна пропускна здатність стає меншою, коли ми відходимо від
- Процеси на одному вузлі
- Різні вузли на одній стійці
- Вузли на різних стійках одного центру обробки даних
- Вузли в різних дата-центрах