Hive е широко използван инструмент за анализ на големи данни в бизнеса и е фантастично място за начало, ако сте нов в големите данни. Този урок по Apache Hive преминава през основите на Apache Hive, защо е необходим кошер, неговите характеристики и всичко останало, което трябва да знаете.
Нека първо разберем рамката на Hadoop, върху която е изграден Apache Hive.
Apache Hadoop
Apache Hadoop е безплатен и с отворен код платформа за съхранение и обработка на големи масиви от данни, вариращи по размер от гигабайта до петабайта. Hadoop позволява групиране на множество компютри за паралелно анализиране на огромни масиви от данни, вместо да изисква един голям компютър за съхраняване и анализиране на данните.
MapReduce и разпределената файлова система Hadoop са два от компонентите:
- MapReduce – MapReduce е техника за паралелно програмиране за работа с огромни обеми от организирани, полуструктурирани и неструктурирани данни за хардуерни клъстери на стоки.
- HDFS – HDFS (Hadoop Distributed File System) е компонент на рамката на Hadoop, който съхранява и обработва данни. Това е устойчива на грешки файлова система, която работи на стандартен хардуер
Различни подпроекти (инструменти) в екосистемата на Hadoop, включително Sqoop, Pig и Hive, се използват за подпомагане на модулите на Hadoop.
- Кошер – Hive е рамка за писане на скриптове в SQL стил, които извършват MapReduce изчисления.
- Прасе – Pig е процедурен език за програмиране, който може да се използва за създаване на скрипт за процеси на MapReduce.
- Sqoop – Sqoop е инструмент за импортиране и експортиране на данни между HDFS и RDBMS.
Какво е Apache Hive?
Apache Hive е с отворен код склад за данни програма за четене, писане и управление на огромни набори от данни, съхранявани директно в разпределената файлова система Apache Hadoop (HDFS) или други системи за съхранение на данни като Apache HBase.
SQL разработчиците могат да използват Hive за създаване на изрази Hive Query Language (HQL) за заявки и анализ на данни, които са сравними с обикновените SQL изрази. Той е създаден, за да улесни програмирането на MapReduce, като елиминира необходимостта от изучаване и писане на дълъг Java код. Вместо това можете да пишете вашите заявки в HQL и Hive ще изгради картата и ще намали функциите вместо вас.
Подобният на SQL интерфейс на Apache Hive се превърна в златен стандарт за извършване на ad hoc търсения, обобщаване и анализиране на Hadoop данни. Когато е включен в облак изчислителни мрежи, това решение е особено рентабилно и мащабируемо, поради което много фирми, включително Netflix и Amazon, продължават да развиват и подобряват Apache Hive.
История
По време на времето си във Facebook, Joydeep Sen Sarma и Ashish Suchoo създадоха Apache Hive. И двамата осъзнаха, че за да извлекат максимума от Hadoop, ще трябва да създадат някои доста сложни задачи на Java Map-Reduce. Те осъзнаха, че няма да могат да образоват своите бързо разрастващи се инженерни и аналитични екипи за уменията, от които се нуждаят, за да използват Hadoop в цялата компания. Инженерите и анализаторите често използват SQL като потребителски интерфейс.
Докато SQL може да отговори на по-голямата част от нуждите от анализ, разработчиците също възнамеряваха да включат програмируемостта на Hadoop. Apache Hive възниква от тези две цели: базиран на SQL декларативен език, който също така позволява на разработчиците да въвеждат свои собствени скриптове и програми, когато SQL не е достатъчен.
Той също така е разработен за съхраняване на централизирани метаданни (базирани на Hadoop) за всички набори от данни в компанията, за да улесни изграждането на организации, управлявани от данни.
Как работи Apache Hive?
Накратко, Apache Hive преобразува входна програма, написана на HiveQL (SQL-подобен) език в една или повече задачи на Java MapReduce, Tez или Spark. (Всички тези машини за изпълнение са съвместими с Hadoop YARN.) След това Apache Hive подрежда данните в таблици за разпределената файлова система на Hadoop HDFS) и изпълнява задачите в клъстер, за да получи отговор.
Дата
Таблиците Apache Hive са подредени по същия начин, както са организирани таблиците в релационна база данни, като единиците данни варират по размер от по-големи до по-малки. Базите данни са съставени от таблици, които са разделени на раздели, които допълнително са разделени на кофи. HiveQL (Hive Query Language) се използва за достъп до данните, които могат да бъдат променяни или добавени. Данните от таблицата се сериализират във всяка база данни и всяка таблица има своя собствена HDFS директория.
архитектура
Сега ще поговорим за най-важния аспект на Hive Architecture. Компонентите на Apache Hive са както следва:
Metastore — Той следи информация за всяка таблица, като например нейната структура и местоположение. Метаданните на дяла също са включени в Hive. Това позволява на водача да следи напредъка на различни набори от данни, разпределени в клъстера. Данните се съхраняват в конвенционален RDBMS формат. Метаданните на Hive са изключително важни за водача, за да поддържа проследяване на данните. Архивният сървър редовно дублира данни, така че да могат да бъдат възстановени в случай на загуба на данни.
драйвер – Изявленията на HiveQL се получават от драйвер, който функционира като контролер. Чрез установяване на сесии, водачът инициира изпълнението на изявлението. Той следи живота и напредъка на изпълнителната власт. По време на изпълнението на оператор HiveQL, драйверът запазва необходимите метаданни. Той също така служи като точка за събиране на данни или резултати от заявки след процеса на намаляване.
съставител – Изпълнява компилацията на HiveQL заявка. Заявката вече се преобразува в план за изпълнение. Задачите са изброени в плана. Той също така включва стъпките, които MapReduce трябва да предприеме, за да получи резултата, преведен от заявката. Заявката се преобразува в абстрактно синтактично дърво от компилатора на Hive (AST). Преобразува AST в насочена ациклична графика след проверка за съвместимост и грешки по време на компилиране (DAG).
Optimizer – Оптимизира DAG чрез извършване на различни промени в плана за изпълнение. Той съчетава трансформации за подобрена ефективност, като например превръщане на тръбопровод от съединения в едно съединение. За да подобри скоростта, оптимизаторът може да раздели дейности, като например прилагане на трансформация към данни, преди да извърши операция за намаляване.
изпълнител – Изпълнителят изпълнява задачите, когато компилацията и оптимизацията приключат. Задачите се изготвят от Изпълнителя.
CLI, потребителски интерфейс и Thrift Server – Интерфейсът на командния ред (CLI) е потребителски интерфейс, който позволява на външен потребител да комуникира с Hive. Икономичният сървър на Hive, подобен на протоколите JDBC или ODBC, позволява на външни клиенти да комуникират с Hive чрез мрежа.
Охрана
Apache Hive е интегриран със сигурността на Hadoop, която използва Kerberos за взаимно удостоверяване на клиент-сървър. HDFS диктува разрешения за новогенерирани файлове в Apache Hive, което ви позволява да одобрявате от потребителя, групата и други.
Ключови характеристики
- Hive поддържа външни таблици, които ви позволяват да обработвате данни, без да ги съхранявате в HDFS.
- Той също така позволява сегментиране на данни на ниво таблица, за да се увеличи скоростта.
- Apache Hive отлично отговаря на нуждите от интерфейс на ниско ниво на Hadoop.
- Hive улеснява обобщаването на данните, заявките и анализа.
- HiveQL не изисква никакви умения за програмиране; достатъчно е просто разбиране на SQL заявките.
- Можем също да използваме Hive за провеждане на ad-hoc заявки за анализ на данни.
- Той е мащабируем, познат и адаптивен.
- HiveQL не изисква никакви умения за програмиране; достатъчно е просто разбиране на SQL заявките.
Ползи
Apache Hive позволява отчети в края на деня, ежедневни оценки на транзакциите, ad-hoc търсения и анализ на данни. Изчерпателната информация, предоставена от Apache Hive, дава значителни конкурентни предимства и ви улеснява да отговорите на изискванията на пазара.
Ето някои от предимствата на леснодостъпната такава информация:
- Лесен за употреба – Със своя език, подобен на SQL, запитването на данни е лесно за разбиране.
- Ускорено вмъкване на данни — Тъй като Apache Hive чете схемата, без да проверява типа на таблицата или дефиницията на схема, данните не трябва да се четат, анализират и сериализират на диск във вътрешния формат на базата данни. За разлика от тях, в конвенционалната база данни данните трябва да бъдат валидирани всеки път, когато се добавят.
- Превъзходна мащабируемост, гъвкавост и рентабилност – Тъй като данните се съхраняват в HDFS, Apache Hive може да съхранява 100 петабайта данни, което го прави много по-мащабируема опция от типичната база данни. Apache Hive, като облачна услуга Hadoop, позволява на клиентите бързо да въртят нагоре и надолу виртуални сървъри, за да отговорят на променящите се работни натоварвания.
- Обширен работен капацитет – Големите набори от данни могат да обработват до 100,000 XNUMX заявки на час.
Ограничения
- Като цяло заявките на Apache Hive имат много голяма латентност.
- Поддръжката на подзаявки е ограничена.
- Заявките в реално време и промените на ниво ред не са налични в Apache Hive.
- Няма поддръжка за материализирани изгледи.
- В кошера действията за актуализиране и изтриване не се поддържат.
- Не е предназначен за OLTP (онлайн преходен процес).
Първи стъпки с Apache Hive
Apache Hive е силен партньор на Hadoop, който опростява и рационализира вашите работни процеси. За да извлечете максимума от Apache Hive, безпроблемната интеграция е от съществено значение. Първата стъпка е да отидете на уебсайт.
1. Инсталационен Hive от стабилна версия
Започнете, като изтеглите най-новата стабилна версия на Hive от един от огледалите за изтегляне на Apache (вж Издания на кошер). След това архивът трябва да бъде разопакован. Това ще създаде подпапка, наречена hive-xyz (където xyz е номерът на изданието):
Задайте променливата на средата HIVE_HOME да сочи към инсталационната директория:
Накрая добавете $HIVE_HOME/bin към вашия PATH
:
2. Бягащ кошер
Hive използва Hadoop, така че:
- трябва да имате Hadoop по пътя си ИЛИ
3. Работа с DLL
Създаване на таблица на кошера
генерира таблица с име pokes с две колони, първата от които е цяло число, а втората е низ.
Преглеждане на таблици
Изброяване на всички таблици
Промяна и премахване на таблици
Имената на таблици могат да се променят и колоните могат да се добавят или заменят:
Струва си да се отбележи, че REPLACE COLUMNS заменя всички съществуващи колони, като същевременно променя само структурата на таблицата, но не и данните. В таблицата трябва да се използва собствен SerDe. REPLACE COLUMNS може също да се използва за премахване на колони от схемата на таблица:
Отпадащи таблици
Има много допълнителни операции и функции в Apache Hive, за които можете да научите, като посетите официалния уебсайт.
Заключение
Дефиницията на Hive е програмен интерфейс за данни за запитване и анализ на огромни набори от данни, които са изградени върху Apache Hadoop. Професионалистите го избират пред други програми, инструменти и софтуер, тъй като е предназначен главно за Hive обширни данни и е лесен за използване.
Надяваме се този урок да ви помогне да стартирате с Apache Hive и да направите работните си процеси по-ефективни. Уведомете ни в коментарите.
Оставете коментар