Різниця між HDFS та HBase
HDFS (розподілена файлова система Hadoop) HDFS дозволяє зберігати величезну кількість даних у розподіленому та надмірному порядку, який працює на товарному обладнання. HBase (база даних Hadoop) - це база даних NoSQL, яка працює над вашим кластером Hadoop
Давайте розглянемо компоненти та архітектуру HDFS та HBase відповідно:
Компоненти HDFS
- NameNode
- DataNode
NameNode: NameNode може розглядатися як майстер системи. Він підтримує дерево файлової системи та метадані для всіх файлів і каталогів, присутніх у системі. Два файли "Зображення простору імен" та "Журнал редагування" використовуються для зберігання інформації метаданих. Namenode володіє знаннями всіх вузлів даних, що містять блоки даних для даного файлу, однак він не зберігає місця блоку постійно. Ця інформація реконструюється кожного разу з вузлів даних при запуску системи.
DataNode: DataNodes - це раби, які перебувають на кожній машині в кластері та забезпечують фактичне зберігання. Він відповідає за обслуговування, читання та запит запитів для клієнтів.
HDFS Архітектура: -
Компоненти HBase: -
- Hbase master
- Сервер регіону
- Область
- Зоопарк
HMaster : Це головний сервер в архітектурі HBase. Це агент моніторингу для моніторингу всіх серверів регіону, а також HMaster є обов'язком бути інтерфейсом для всіх змін метаданих. Він працює на NameNode.
Сервери регіонів: Коли сервер регіонів отримує запит і читає запити від клієнта, він призначає запит конкретному регіону, де знаходиться фактична сім'я стовпців. Однак клієнт може безпосередньо контактувати з серверами регіону, не потрібно обов'язкового дозволу HMaster для клієнта щодо спілкування з регіональними серверами. Клієнт вимагає допомоги HMaster, коли потрібні операції, пов'язані з метаданими та зміною схеми.
Регіони: Регіони є основними будівельними елементами кластеру HBase, який складається з розподілу таблиць і складається з сімей колонок. Він містить кілька магазинів, по одному для кожної родини стовпців. Він складається в основному з двох компонентів, які є Memstore і Hfile.
ZooKeeper : На Hbase, Zookeeper - це централізований сервер моніторингу, який підтримує інформацію про конфігурацію та забезпечує розподілену синхронізацію. Розподілена синхронізація - це доступ до розподілених додатків, що працюють через кластер, з відповідальністю надавати послуги координації між вузлами. Якщо клієнт хоче спілкуватися з регіонами, клієнт сервера повинен спершу звернутися до ZooKeeper.
Архітектура HBase: - HBase є частиною екосистеми Hadoop.
Поглиблена модель: -
Порівняння «голова до голови» між HDFS та HBase (Інфографіка)
Нижче наводиться топ-14 порівнянь між HDFS та HBase
Ключові відмінності між HDFS і HBase
Нижче різниця між HDFS та HBase полягає в наступному
- HDFS - це розподілена файлова система, яка добре підходить для зберігання великих файлів. Але HBase, з іншого боку, побудований на основі HDFS і забезпечує швидкий пошук записів (та оновлення) для великих таблиць.
- HDFS базується на файловій системі GFS. Але HBase поширюється - використовує HDFS для зберігання, колонка - орієнтована, багатовимірна (версії) та система зберігання даних
- HDFS використовує HIVE як один із своїх компонентів для мови запиту, яка є HIVE Query Language (HQL), але Hbase НЕ є базою даних SQL, що означає: - Ніяких приєднань, не працює система запитів, немає типів даних, немає (чорт) SQL, Немає схеми і ніякої DBA не потрібно.
- Оскільки HDFS є розподіленим блоком зберігання, отже, не має конкретної мови, окрім команд, що використовуються, наприклад, аромат UNIX, наприклад: - Hadoop dfs -mkdir / foodir
- hadoop dfs -cat /foodir/myfile.txt
- hadoop dfs -rm /foodir/myfile.txt
Але з іншого боку, у Hbase є власний інтерфейс у вигляді Hbase Shell, наприклад:
- hbase (main): 003: 0> створити 'test', 'cf'
0 ряд (и) за 1.2200 секунд
- hbase (main): 004: 0> поставити 'test', 'row1', 'cf: a', 'value1'
0 ряд (и) за 0, 0560 секунд
- hbase (main): 005: 0> поставити 'test', 'row2', 'cf: b', 'value2'
0 ряд (и) за 0, 0370 секунд
- hbase (main): 006: 0> поставити 'test', 'row3', 'cf: c', 'value3'
0 ряд (и) за 0, 0450 секунд
- hbase (основна): 007: 0> сканувати 'тест'
РІДНА КОЛІНКА + КЛІТИНА
рядок1 стовпець = cf: a, позначка часу = 1288380727188, значення = значення1
рядок2 стовпчик = cf: b, позначка часу = 1288380738440, значення = значення2
рядок3 стовпчик = cf: c, позначка часу = 1288380747365, значення = значення3
3 ряд (и) за 0, 0590 секунд
Таблиця порівняння HDFS проти HBase
Основа для порівняння | HDFS | HBase |
Навіщо нам вони потрібні | Потрібно обробити величезні набори даних на великих кластерах комп’ютерів | HBase - це розподілений стовпчик, орієнтований на сховище даних, побудований поверх HDFS |
Вузли виходять з ладу щодня | а) Провал очікується, а не винятковий б) Кількість вузлів у кластері не є постійною | HBase - це проект з відкритим кодом Apache, мета якого - забезпечити сховище для розподілених обчислень Hadoop |
Запис шаблону | Додавати лише | Випадкове записування, об'ємне нарощення |
Прочитайте шаблон | Повне сканування таблиці, сканування таблиці розділів | Довільне зчитування, сканування невеликого діапазону або сканування таблиці |
W / R Шаблон | HDFS ідеально підходить для записів одноразового запису та багато разів читання | HBase ідеально підходить для випадкового запису та зчитування даних, що зберігаються у HDFS. |
Продуктивність вулика (SQL) | Відносно дуже добре | У 4-5 разів повільніше |
Структуроване зберігання | Зробіть це самостійно або TSV або файл послідовності | Модель рідких сімейних стовпців |
Максимальний розмір даних | Зазвичай можуть зберігати близько 30 PB | Приблизно близько 1 ПБ |
Динамічні зміни | HDFS має жорстку архітектуру, яка не дозволяє змінювати. Це не полегшує динамічне зберігання. | HBase дозволяє динамічно змінюватись і може використовуватися для автономних програм. |
Розподіл даних | Дані зберігаються розподіленим чином по вузлах кластера. Дані поділяються на блоки і потім зберігаються над вузлами, присутніми в кластері HDFS. | Таблиці розподіляються на кластері через регіони, а регіони автоматично розбиваються та повторно розподіляються по мірі зростання ваших даних |
Зберігання даних | Усі дані зберігаються у вигляді невеликих файлів, а всі файли мають типовий розмір 64 Мб (що в новій версії - 128 Мб) | Усі дані зберігаються у вигляді таблиць, рядків та стовпців |
Моделювання даних | У HDFS ми використовуємо техніку зменшення карт, яка ділить файли на пари Ключ - Значення | HBase базується на моделі Bigtable Google, яка також використовує пари Key-Value |
Операції | Він має високу затримку операцій | Він має низькі затримки операцій |
Доступність | Доступ до нього здійснюється в основному через MR (зменшення карт) | Доступ до нього можна отримати за допомогою команд оболонки, клієнтського API на Java, REST, Avro або Thrift |
Висновок - HDFS проти HBase
Загалом, і HDFS, і HBase мають чудові технології. Вони і HDFS, і HBase були створені для зберігання великих даних та полегшення доступу до них та їх обчислення. Вони і HDFS, і HBase йдуть пліч-о-пліч, оскільки один HDFS зберігає дані, інший HBase ставить схему даних про те, як зберігати та отримувати їх згодом для використання клієнтом.
Hbase - одна з розподілених баз даних, орієнтованих на стовпці NoSql, доступна в апаш-фундації. HBase забезпечує більшу ефективність для отримання меншої кількості записів, а не Hadoop або Hive. Шукати задане вхідне значення дуже просто, оскільки він підтримує індексацію, транзакції та оновлення.
Ми можемо виконувати онлайн-аналітику в режимі реального часу, використовуючи Hbase, інтегровану з екосистемою Hadoop. Він має автоматичне та настроюване шарнінг для наборів даних або таблиць і забезпечує спокійні API для виконання завдань MapReduce.
Рекомендована стаття
Це було керівництвом щодо HDFS проти HBase, їх значення, порівняння «голова до голови», ключових відмінностей, таблиці порівняння та висновку. Ця стаття має всі корисні відмінності між HDFS та HBase. Ви також можете переглянути наступні статті, щоб дізнатися більше -
- HBase vs Cassandra - хто краще (інфографіка)
- Дізнайтеся про 7 найкращих відмінностей між Hadoop проти HBase
- Топ-12 порівнянь Apache Hive - Apache HBase (Інфографіка)