Розуміння в глибині
Hadoop
Hadoop- проект із відкритим кодом Apacheфонду. Це рамка, написана Javaвперше, розроблена Дугом Різком у 2005 році. Він був створений для підтримки розповсюдження Nutchтекстової пошукової системи. Hadoopвикористовує технології Google Map Reduceта файлову систему Google як основу.
Особливості Hadoop
- Оптимізовано для обробки великої кількості структурованих, напівструктурованих та неструктурованих даних із використанням товарного обладнання.
- У ній архітектури немає нічого.
- Він реплікує свої дані на декілька комп'ютерів, так що якщо один знизиться, вони все ще можуть бути оброблені з іншої машини, яка зберігає його репліку.
Hadoopпризначений для високої пропускної здатності, а не низької затримки. Це пакетна операція, що обробляє великі кількості даних; тому час реакції не є негайним.
- Він доповнює Інтернет-обробку транзакцій та Інтернет-аналітичну обробку. Однак це не є заміною для
RDBMS.
- Це не добре, коли робота не може бути паралельною або коли в даних є залежності.
- Це не добре для обробки невеликих файлів. Найкраще він працює з величезними файлами даних та наборами даних.
Версії Hadoop
Доступні дві версії Hadoop:
- Hadoop 1.0
- Hadoop 2.0
Hadoop 1.0
Він має дві основні частини:
1. Рамка зберігання даних
Це файлова система загального призначення під назвою Hadoop Distributed File System (HDFS ).
HDFS не є схемою
Він просто зберігає файли даних, і ці файли даних можуть бути майже в будь-якому форматі.
Ідея полягає в тому, щоб зберігати файли якомога ближче до їх початкової форми.
Це, в свою чергу, надає бізнес-підрозділам та організації необхідну гнучкість та спритність, не надто переживаючи те, що вона може впровадити.
2. Рамка обробки даних
Це проста функціональна модель програмування, спочатку популяризована Google як MapReduce.
Він по суті використовує дві функції: MAPі REDUCEдля обробки даних.
"Mappers" приймають набір пар ключових значень і генерують проміжні дані (це ще один список пар ключ-значення).
Потім "Редуктори" діють на цьому вході для отримання вихідних даних.
Дві функції, здавалося б, працюють ізольовано одна від одної, завдяки чому обробку можна розподілити високо паралельно, відмовно і масштабується.
Обмеження Hadoop 1.0
Першим обмеженням була вимога MapReduceекспертного досвіду програмування.
Він підтримував лише пакетну обробку, яка хоч і підходить для таких завдань, як аналіз журналів, масштабні проекти видобутку даних, але в значній мірі непридатні для інших видів проектів.
Одним з головних обмежень було те, що Hadoop 1.0було щільно обчислено, а MapReduceце означало, що створені постачальники управління даними не мали двох думок:
Або перепишіть їх функціональність, MapReduceщоб він міг бути виконаний в Hadoopабо
Витягнути дані HDFSабо обробити їх поза межами Hadoop.
Жоден із варіантів не був життєздатним, оскільки це призвело до неефективності процесу, спричиненої переміщенням даних у Hadoopкластер та поза ними .
Hadoop 2.0
В Hadoop 2.0,HDFS продовжує бути основою для зберігання даних.
Тим НЕ менше, новий і індивідуальний структура управління ресурсами називається Y і ін Вказати R esource N egotiater ( ПРЯЖІ ) був доданий.
YARN підтримує будь-яку програму, здатну розділити себе на паралельні завдання.
YARN координує розподіл підзадач поданої програми, тим самим додатково підвищуючи гнучкість, масштабованість та ефективність програм.
Це працює, якщо замість Job Tracker працює мастер додатків , який працює з додатками на ресурсах, керованих новим диспетчером вузлів .
ApplicationMaster здатний запускати будь-яку програму і не тільки MapReduce .
Це означає, що він підтримує не лише пакетну обробку, але й обробку в режимі реального часу. MapReduceбільше не є єдиним варіантом обробки даних.
Переваги Hadoop
Він зберігає дані рідною мовою від. Під час введення даних або зберігання даних жодна структура не накладається. HDFSсхема менше. Лише пізніше, коли дані потрібно обробляти, структура накладається на необроблені дані.
Це масштабується. Hadoopможе зберігати та поширювати дуже великі набори даних на сотні недорогих серверів, які працюють паралельно.
Він стійкий до відмови. Hadoopє відмовою. Він старанно практикує реплікацію даних, тобто кожен раз, коли дані надсилаються на будь-який вузол, ті самі дані також реплікуються в інші вузли кластеру, тим самим гарантуючи, що у разі виходу з ладу вузла завжди буде доступна інша копія даних, доступних для використання.
Він гнучкий. Однією з ключових переваг компанії Hadoopє те, що вона може працювати з будь-якими видами даних: структурованими, неструктурованими або напівструктурованими. Крім того, обробка надзвичайно швидка Hadoopзавдяки парадигмі "переміщення коду до даних".
Екосистема Hadoop
Нижче перелічені компоненти Hadoopекосистеми:
HDFS : Hadoopрозподілена файлова система. Він просто зберігає файли даних максимально наближені до початкової форми.
HBase : Це база даних Hadoop і добре порівнює з an RDBMS. Він підтримує структуроване зберігання даних для великих таблиць.
Вулик : Це дозволяє проводити аналіз великих наборів даних за допомогою мови, дуже подібної до стандартної ANSI SQL, що означає, що кожен, хто знає, SQLповинен мати доступ до даних на Hadoopкластері.
Свиня : це легко зрозуміти мову потоку даних. Це допомагає при аналізі великих наборів даних, що цілком впорядковано Hadoop. Pigсценарії автоматично перетворюються на MapReduceзавдання Pigперекладачем.
ZooKeeper : Це служба координації розподілених додатків.
Oozie : Це schedularсистема робочих процесів для управління Hadoopроботами Apache .
Mahout : Це масштабована бібліотека машинного навчання та обміну даними.
Чуква : Це система збору даних для управління великою розподіленою системою.
Sqoop : використовується для передачі об'ємних даних між Hadoopструктурованими сховищами даних, такими як реляційні бази даних.
Амбарі : Це веб-інструмент для забезпечення, керування та моніторингу Hadoopкластерів.
Вулик
Hive є інструментом інфраструктури сховища даних для обробки структурованих даних в Hadoop . Він розташований на вершині, Hadoopщоб узагальнити великі дані, а запити та аналіз спрощуються.
Вулик ні
Реляційна база даних
Дизайн для обробки веб-транзакцій (OLTP ).
Мова для запитів у режимі реального часу та оновлень на рівні рядків.
Особливості вулика
Він зберігає схему в базі даних та обробляє дані в HDFS .
Він призначений для OLAP.
Він надає SQLмову типу для запиту під назвою HiveQLабо HQL.
Це звичне, швидке, масштабоване та розширюване.
Архітектура вуликів
Наступні компоненти містяться в архітектурі вуликів:
Інтерфейс користувача : Hiveце data warehouseінфраструктура, яка може створювати взаємодію між користувачем та користувачем HDFS. Користувацькі інтерфейси, які Hiveпідтримують, - це інтерфейс інтерфейсу Hive, командна лінія Hive та Hive HD Insight (у Windows Server).
MetaStore : Hiveвибирає відповідну database serversдля зберігання схеми або Metadataтаблиць, баз даних, стовпців у таблиці, їх типів даних та HDFSвідображення.
HiveQL Process Engine : HiveQLподібний до SQLзапитів на інформацію про схему в Metastore. Це одна із замін традиційного підходу до MapReduceпрограми. Замість того , щоб писати MapReduceв Java, ми можемо написати запит дляMapReduce і обробити його.
Двигун винятку : сполучна частина HiveQLтехнологічного двигуна MapReduceє двигуном Hiveвиконання. Двигун виконання обробляє запит і генерує результати такі ж, як і MapReduce results. Він використовує аромат MapReduce.
HDFS або HBase : Hadoopрозподілена файлова система або HBaseє методами зберігання даних для зберігання даних у файловій системі.