Предимства, недостатъци и затруднения в производителността на HBase

⚡ Умно обобщение

HBase е разпределена, колонно-ориентирана NoSQL база данни, изградена върху Hadoop HDFSи предоставя достъп в реално време за произволно четене и запис на милиарди редове, като същевременно прави ясни компромиси по отношение на заявките, индексирането и разходите за хардуер.

  • 🗄️ Foundation: HBase е NoSQL, колонно-ориентирано хранилище върху HDFS за разредени, много големи таблици.
  • Предимства: Мащабира се хоризонтално, поддържа произволни четения и записи в реално време и агрегира милиарди редове.
  • ⚠️ Недостатъци: Липсват му SQL, съединения и вторични индекси и остава интензивен на процесора и паметта.
  • 🚧 Тесни места: Един активен HMaster и бавното превключване при срив създават разпознаваеми пречки в производителността.
  • 🆚 В сравнение с RDBMS: HBase търгува с транзакции и богати заявки за мащабиране, за разлика от релационна база данни.
  • 🤖 Ъгъл на изкуствен интелект: Конвейерите за машинно обучение четат HBase таблици за функции в реално време и откриване на аномалии.

Предимства, недостатъци и пречки в производителността на HBase

Какво е HBase?

HBase е разпределена, колонно-ориентирана NoSQL база данни с отворен код, която работи върху Hadoop Distributed File System (HDFS). Моделирана по... Google Bigtable съхранява данни в таблици, съставени от семейства редове и колони, и е проектиран за разредени набори от данни, които могат да нараснат до милиарди редове и милиони колони.

За разлика от релационната база данни, HBase не използва фиксирана схема, нито предлага оптимизатор на заявки. Вместо това, всяка стойност се адресира чрез ключ на ред, семейство колони, квалификатор на колони и времева маркировка, което прави произволните четения и записи в реално време бързи дори в голям мащаб.

HBase клъстерът разчита на няколко основни компонента. HMaster координира клъстера и разпределя региони, регионалните сървъри съхраняват и обслужват действителните данни, а Apache... ZooKeeper tracks показва кои сървъри са активни и помага при превключване на сървъри при срив. Тъй като се намира в екосистемата на Hadoop, HBase работи с инструменти като MapReduce, Кошери Pig за пакетен анализ. За по-задълбочен поглед върху вътрешните механизми вижте HBase архитектура.

Предимства на HBase

Ето основните предимства от използването на HBase:

  • Съхранява много големи набори от данни върху HDFS и може да агрегира и анализира милиарди редове, съхранявани в HBase таблици.
  • Базата данни може да се споделя между много клиенти в разпределена среда.
  • Четенето и обработката на данни отнемат по-малко време в сравнение с традиционните релационни модели.
  • Поддържа бързи операции за произволно четене и запис.
  • HBase се използва широко за онлайн аналитични операции.
  • В банкови приложения, като например актуализации на баланса в реално време за банкомати, HBase обработва надеждно големи обеми четения и записи.

Недостатъци на HBase

Ето важните ограничения на HBase:

  • HBase не е пълен заместител на традиционните релационни модели; някои релационни функции не се поддържат.
  • HBase не може да изпълнява функции като SQLНе поддържа SQL структура, така че няма оптимизатор на заявки.
  • HBase изисква голямо натоварване на процесора и паметта с голям последователен достъп до входни или изходни данни, докато MapReduce задачите са предимно I/O, обвързани с фиксирана памет. Интегрирането на HBase със задачи MapReduce може да доведе до непредсказуеми латентности.
  • Интегрирането на HBase със задачи Pig и Hive понякога може да причини проблеми с паметта в клъстера.
  • В среда на споделен клъстер, настройката изисква по-малко слотове за задачи на възел, които да се разпределят за изискванията на HBase CPU.

Тесни места в производителността в HBase

HBase осигурява мащабируемост, но няколко архитектурни решения създават пречки в производителността, които екипите трябва да планират:

В голяма производствена среда, HBase клъстер може да работи на хиляди възли, но само HMaster действа като master за всички подчинени регионални сървъри. Ако HMaster се повреди, възстановяването може да отнеме много време, въпреки че клиентите все още могат да достигнат до регионален сървър. Възможно е да се използва standby master, но само един HMaster е активен в даден момент и повишаването на втория HMaster след повреда не е мигновено. В резултат на това HMaster е признат проблем с производителността.

HBase не поддържа директно операции за кръстосано свързване или свързване между таблици. Съединенията могат да бъдат реализирани с MapReduce, но това добавя значително време за проектиране и разработка, а някои таблични съединения са практически непрактични в HBase.

Мигрирането на данни от външна RDBMS в HBase обикновено изисква нов дизайн на схемата и този процес на миграция може да отнеме много време. Заявките също са трудни: много екипи добавят SQL слой, като Apache Phoenix, върху HBase, за да могат четене и запис на данни с познати запитвания.

HBase поддържа само един индекс — ключът на реда действа като първичен ключ — така че търсенията във всяко друго поле са бавни. Екипите заобикалят това, като пишат код за MapReduce или като интегрират Apache. Solr и Apache Phoenix за вторично индексиране.

  • Контролите за сигурност за достъп до данни от множество потребители са се подобрили само бавно.
  • HBase не поддържа напълно частични ключове.
  • За всяка таблица е разрешен само един ред на сортиране по подразбиране.
  • Съхраняването на големи двоични файлове в HBase е трудно.
  • Съхранението в HBase ограничава заявките и сортирането в реално време.
  • Търсенията по ключове и диапазони в съдържанието на таблицата могат да ограничат заявките, които трябва да се изпълняват в реално време.
  • Индексирането по подразбиране липсва; програмистите трябва да напишат допълнителен код или скриптове, за да добавят индексиране.
  • Хардуерните изисквания и разпределението на блоковете памет правят HBase скъп за изпълнение.
  • Разпределеният клъстер се нуждае от много сървъри - отделни възли за NameNode, DataNodes, ZooKeeper и Region сървърите.
  • За добра производителност са необходими машини с голям обем памет.
  • Общите разходи и поддръжка са по-високи от по-простите алтернативи.

HBase срещу RDBMS

Статията многократно сравнява HBase с традиционните релационни бази данни. Таблицата по-долу обобщава основните разлики, за да можете да решите кой модел е подходящ за дадено работно натоварване:

Особеност HBase RDBMS
Модел на данните Колонно-ориентирано, гъвкаво по отношение на схемата NoSQL хранилище Таблици, ориентирани към редове, с фиксирана схема
Език за заявки Без вграден SQL; API или допълнителни слоеве като Apache Phoenix Пълен SQL с оптимизатор на заявки
Scaling Хоризонтално, през стокови възли (петабайти) Предимно вертикално; по-трудно за мащабиране
Сделки Атомарност само на ниво ред; няма многоредов ACID Пълни ACID транзакции
Съединения и индекси Няма нативни съединения; индекс с единичен ключ от ред Нативни съединения и множество вторични индекси
Най-добро пасване Разредени, много големи, високоскоростни данни за запис в реално време Структурирани данни, изискващи сложни заявки

Накратко, HBase предпочита мащабируемостта и достъпа в реално време, докато RDBMS предпочита богатите заявки и силната консистентност. Изберете HBase, когато обемът на данните и пропускателната способност за запис надхвърлят това, което една релационна база данни може удобно да обработи.

Въпроси и Отговори

Да. HBase е разпределена, колонно-ориентирана NoSQL база данни, изградена върху Hadoop HDFS и по модел Google Bigtable. Съхранява разредени данни в семейства колони вместо във фиксирани релационни таблици и предпочита мащабируемостта и достъпа в реално време пред SQL съединения и транзакции.

HBase е NoSQL хранилище за данни в реално време с произволен достъп за четене и запис, докато Hive е слой от хранилище за данни, който изпълнява пакетни SQL-подобни заявки върху Hadoop. HBase обслужва търсения в реално време; Hive е подходящ за големи аналитични сканирания. Много конвейери използват и двете заедно.

HBase е подходящ за големи обеми натоварвания в реално време: актуализации на банкови и банкоматни транзакции, история на съобщения и чатове, IoT и сензорни данни, механизми за препоръки, откриване на измами и съхранение на времеви серии или clickstream. Той е подходящ за всеки случай, изискващ бързо произволно четене и записване върху милиарди разредени редове.

HBase няма вграден SQL, но Apache Phoenix добавя SQL слой върху него, превеждайки заявките в HBase сканирания и получени данни. Apache Solr може да добави пълнотекстово търсене. Тези слоеве улесняват заявките към HBase, без да се заменя неговият механизъм за съхранение.

И двете са NoSQL хранилища с широки колони, но HBase работи на Hadoop HDFS с един активен HMaster и силна консистенция, докато Cassandra е без майстор с настройваема, евентуална консистентност. HBase предпочита консистентността при четене и интеграцията с Hadoop; Cassandra благоприятства достъпността за запис и по-простите настройки за множество центрове за данни.

HDFS е разпределената файлова система, която съхранява големи файлове като непроменяеми блокове за пакетен достъп. HBase работи върху HDFS и добавя слой на базата данни с произволен достъп за четене и запис в реално време до отделни редове и клетки. Те се допълват взаимно.

Конвейерите за машинно обучение четат HBase таблиците като хранилище за функции с ниска латентност, извличайки функции в реално време за модели и записвайки прогнози обратно. Spark Задачите на MLlib и TensorFlow могат да се обучават върху данни от HBase, докато откриването на аномалии с изкуствен интелект сканира съхранените показатели, за да маркира бързо необичайни модели.

Да. Копилот на GitHub може да създава команди за HBase shell, Java клиентски код за put, get и scan, както и Apache Phoenix SQL от кратък коментар. Това ускорява шаблонния код, но прегледайте генерирания код за правилни имена на таблици, семейства колони и дизайн на редове, преди да го стартирате.

Обобщете тази публикация с: