Розуміння в глибині
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
є методами зберігання даних для зберігання даних у файловій системі.