Какво е кошер? Архитектура & Режими

Съдържание:

Anonim

В този урок ще научите -

  • Какво е кошер?
  • Архитектура на кошера
  • Различни режими на кошер
  • Какво е Hive Server2 (HS2)?

Какво е кошер?

Hive е инструмент за складиране на ETL и данни, разработен върху Hadoop Distributed File System (HDFS). Кошерът улеснява работата при извършване на операции като

  • Капсулиране на данни
  • Специални запитвания
  • Анализ на огромни масиви от данни

Важни характеристики на кошера

  • В Hive първо се създават таблици и бази данни и след това данните се зареждат в тези таблици.
  • Hive като хранилище за данни, предназначено за управление и заявки само на структурирани данни, които се съхраняват в таблици.
  • Докато се занимава със структурирани данни, Map Reduce няма функции за оптимизация и използваемост като UDF, но Hive framework има. Оптимизацията на заявката се отнася до ефективен начин за изпълнение на заявка по отношение на производителността.
  • Вдъхновеният от SQL език на Hive отделя потребителя от сложността на програмата Map Reduce. Той използва повторно познати концепции от света на релационните бази данни, като таблици, редове, колони и схеми и т.н. за улесняване на обучението.
  • Програмирането на Hadoop работи върху плоски файлове. И така, Hive може да използва структури на директории за „разделяне“ на данни, за да подобри производителността на определени заявки.
  • Нов и важен компонент на Hive, т.е. Metastore, използван за съхранение на информация за схемата. Този Metastore обикновено се намира в релационна база данни. Можем да взаимодействаме с Hive, използвайки методи като
    • Уеб GUI
    • Интерфейс на Java Database Connectivity (JDBC)
  • Повечето взаимодействия обикновено се осъществяват през интерфейса на командния ред (CLI). Hive предоставя CLI за писане на Hive заявки, използвайки Hive Query Language (HQL)
  • По принцип синтаксисът на HQL е подобен на синтаксиса на SQL, с който повечето анализатори на данни са запознати. Примерната заявка по-долу показва всички записи, присъстващи в споменатото име на таблица.
    • Примерна заявка : Изберете * от
  • Hive поддържа четири файлови формата, които са TEXTFILE, SEQUENCEFILE, ORC и RCFILE (Record Columnar File).
  • За съхранение на метаданни за един потребител, Hive използва база данни на дерби, а за многопотребителски метаданни или споделен случай на метаданни Hive използва MYSQL.

За настройка на MySQL като база данни и за съхраняване на информация за метаданни проверете урок "Инсталиране и конфигуриране на HIVE и MYSQL"

Някои от ключовите моменти за Кошера:

  • Основната разлика между HQL и SQL е, че Hive заявката се изпълнява в инфраструктурата на Hadoop, а не в традиционната база данни.
  • Изпълнението на заявката за кошер ще бъде като поредица от автоматично генерирани задания за намаляване на картата.
  • Hive поддържа концепции за разделяне и групи за лесно извличане на данни, когато клиентът изпълни заявката.
  • Hive поддържа специфични за потребителя UDF (Потребителски функции) за почистване на данни, филтриране и др. Според изискванията на програмистите може да се дефинират Hive UDF.

Hive Vs Релационни бази данни: -

Използвайки Hive, можем да изпълним някаква особена функционалност, която не е постигната в релационните бази данни. За огромно количество данни, които са в пета-байтове, е важно да ги заявите и да получите резултати за секунди. И Hive прави това доста ефективно, обработва заявките бързо и дава резултати за секунда.

Нека видим сега какво прави Hive толкова бърз.

Някои ключови разлики между базите данни с кошер и релацията са следните;

Релационните бази данни са от " Схема за ЧЕТЕНЕ и Схема за запис ". Първо създаване на таблица, след което вмъкване на данни в конкретната таблица. В таблици на релационни бази данни могат да се изпълняват функции като вмъквания, актуализации и модификации.

Hive е „ Схема само за ЧЕТЕНЕ “. Така че функции като актуализация, модификации и т.н. не работят с това. Тъй като заявката Hive в типичен клъстер работи на множество възли на данни. Така че не е възможно да се актуализират и модифицират данни в множество възли. (Версии на кошера под 0.13)

Също така, Hive поддържа модел „ ПРОЧЕТЕТЕ МНОГО ПИШЕТЕ веднъж “. Което означава, че след вмъкване на таблица можем да актуализираме таблицата в най-новите версии на Hive.

ЗАБЕЛЕЖКА : Новата версия на Hive идва с актуализирани функции. Версиите на Hive (Hive 0.14) предлагат опции за актуализиране и изтриване като нови функции

Архитектура на кошера

Горната екранна снимка обяснява подробно архитектурата на Apache Hive

Кошерът се състои главно от 3 основни части

  1. Клиенти на кошери
  2. Услуги за кошери
  3. Съхранение и изчисляване на кошери

Клиенти на кошери:

Hive предоставя различни драйвери за комуникация с различен тип приложения. За приложения, базирани на Thrift, той ще осигури Thrift клиент за комуникация.

За приложения, свързани с Java, той предоставя JDBC драйвери. Различни от всеки тип приложения, предоставени ODBC драйвери. Тези клиенти и драйвери от своя страна отново комуникират със сървъра на Hive в услугите на Hive.

Услуги за кошери:

Клиентските взаимодействия с Hive могат да се извършват чрез Hive Services. Ако клиентът иска да извърши някакви операции, свързани с заявка в Hive, той трябва да комуникира чрез Hive Services.

CLI е интерфейсът на командния ред действа като услуга Hive за операции DDL (език за дефиниране на данни). Всички драйвери комуникират със сървъра на Hive и с основния драйвер в услугите на Hive, както е показано на горната архитектурна схема.

Драйверът, присъстващ в услугите на Hive, представлява основният драйвер и той комуникира всички видове JDBC, ODBC и други специфични за клиента приложения. Шофьорът ще обработва тези заявки от различни приложения към мета хранилище и полеви системи за по-нататъшна обработка.

Съхранение и изчисляване на кошери:

Услугите на Hive като Meta store, File system и Job Client на свой ред комуникират със Hive storage и изпълняват следните действия

  • Информацията за метаданни на таблици, създадени в Hive, се съхранява в Hive "Мета база данни за съхранение".
  • Резултатите от заявките и данните, заредени в таблиците, ще се съхраняват в клъстера Hadoop на HDFS.

Поток за изпълнение на работното място:

От горната екранна снимка можем да разберем потока на изпълнение на задачата в Hive с Hadoop

Потокът от данни в Hive се държи по следния модел;

  1. Изпълнение на заявка от потребителския интерфейс (потребителски интерфейс)
  2. Драйверът взаимодейства с Compiler за получаване на плана. (Тук планът се отнася до изпълнение на заявка) и свързаното с него събиране на информация за метаданни
  3. Компилаторът създава плана за изпълнение на задача. Компилатор, комуникиращ с Meta store за получаване на заявка за метаданни
  4. Meta store изпраща информация за метаданни обратно на компилатора
  5. Компилатор, комуникиращ с Driver с предложения план за изпълнение на заявката
  6. Шофьор Изпращане на планове за изпълнение към двигателя за изпълнение
  7. Execution Engine (EE) действа като мост между Hive и Hadoop за обработка на заявката. За DFS операции.
  • EE трябва първо да се свърже с Node Node и след това с Data nodes, за да получи стойностите, съхранявани в таблици.
  • EE ще извлече желаните записи от Data Nodes. Действителните данни на таблиците се намират само във възел за данни. Докато от Name Node той извлича само информацията за метаданни за заявката.
  • Той събира действителни данни от възли на данни, свързани със споменатата заявка
  • Execution Engine (EE) комуникира двупосочно с Meta store, наличен в Hive, за да извършва операции DDL (Data Definition Language). Тук се извършват DDL операции като CREATE, DROP и ALTERING таблици и бази данни. Meta store ще съхранява информация само за име на база данни, имена на таблици и имена на колони. Той ще извлече данни, свързани със споменатата заявка.
  • Execution Engine (EE) от своя страна комуникира с демони на Hadoop като възел за име, възли с данни и тракер за работа, за да изпълни заявката върху файловата система на Hadoop
  1. Резултати от драйвера
  2. Изпращане на резултатите към механизма за изпълнение. След като резултатите бъдат извлечени от възлите за данни към EE, той ще изпрати резултатите обратно към драйвера и към потребителския интерфейс (преден край)

Hive Непрекъснато е в контакт с файловата система Hadoop и нейните демони чрез Execution engine. Пунктирната стрелка в диаграмата на потока на задачите показва комуникацията на двигателя за изпълнение с демони на Hadoop.

Различни режими на кошер

Hive може да работи в два режима в зависимост от размера на възлите за данни в Hadoop.

Тези режими са,

  • Местен режим
  • Режим за намаляване на картата

Кога да използвате локален режим:

  • Ако Hadoop е инсталиран в псевдо режим с един възел за данни, ние използваме Hive в този режим
  • Ако размерът на данните е по-малък в срок, ограничен до една локална машина, можем да използваме този режим
  • Обработката ще бъде много бърза за по-малки набори от данни, присъстващи в локалната машина

Кога да използвате режима за намаляване на картата:

  • Ако Hadoop има множество възли за данни и данните се разпределят между различни възли, ние използваме Hive в този режим
  • Той ще изпълнява голям брой набори от данни и заявка, която ще се изпълнява паралелно
  • Чрез този режим може да се постигне обработка на големи масиви от данни с по-добра производителност

В Hive можем да зададем това свойство да споменава кой режим Hive може да работи? По подразбиране работи в режим Намаляване на картата и за локален режим можете да имате следната настройка.

Кошера за работа в локален режим

ЗАДАВАНЕ mapred.job.tracker = локално;

От версията на Hive 0.7 той поддържа режим за автоматично стартиране на задачите за намаляване на задачите в локален режим.

Какво е Hive Server2 (HS2)?

HiveServer2 (HS2) е сървърен интерфейс, който изпълнява следните функции:

  • Позволява на отдалечени клиенти да изпълняват заявки срещу Hive
  • Вземете резултатите от споменатите заявки

От последната версия има някои разширени функции, базирани на Thrift RPC като;

  • Мулти-клиентска паралелност
  • Удостоверяване

Резюме:

Hive е инструмент за ETL и съхранение на данни върху екосистемата на Hadoop и се използва за обработка на структурирани и полуструктурирани данни.

  • Hive е база данни, присъстваща в екосистемата на Hadoop, извършва DDL и DML операции и осигурява гъвкав език за заявки като HQL за по-добро заявяване и обработка на данни.
  • Той предоставя толкова много функции в сравнение с RDMS, което има определени ограничения.

За специфична за потребителя логика, която да отговаря на изискванията на клиента.

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