Hive е широко користена алатка за анализа на големи податоци во бизнисот и е фантастично место за почеток доколку сте нови во Big Data. Оваа лекција за Apache Hive ги опфаќа основите на Apache Hive, зошто е потребна кошница, неговите карактеристики и сè друго што треба да знаете.
Ајде прво да ја разбереме рамката Hadoop врз која е изграден Apache Hive.
Апачи Хадооп
Apache Hadoop е бесплатен и со отворен код платформа за складирање и обработка на големи збирки на податоци со големина од гигабајти до петабајти. Hadoop овозможува групирање на бројни компјутери за да се анализираат огромни збирки на податоци паралелно, наместо да се бара еден голем компјутер за складирање и анализа на податоците.
MapReduce и Hadoop дистрибуираниот датотечен систем се две од компонентите:
- Намалете ја мапата – MapReduce е паралелна програмска техника за ракување со огромни количини на организирани, полуструктурирани и неструктурирани податоци на кластери на хардвер на стоки.
- HDFS – HDFS (Hadoop Distributed File System) е Hadoop рамковна компонента која складира и обработува податоци. Тоа е датотечен систем толерантен за грешки што работи на стандарден хардвер
Различни под-проекти (алатки) во екосистемот Hadoop, вклучувајќи ги Sqoop, Pig и Hive, се користат за помош на Hadoop модулите.
- Кошница – Hive е рамка за пишување скрипти во стил на SQL кои вршат пресметки на MapReduce.
- Свиња – Pig е процедурален програмски јазик кој може да се користи за создавање скрипта за процесите на MapReduce.
- Скуп – Sqoop е алатка за увоз и извоз на податоци помеѓу HDFS и RDBMS.
Што е Апачи кошница?
Apache Hive е софтвер со отворен код складиште на податоци програма за читање, пишување и управување со огромни збирки податоци складирани директно во Apache Hadoop Distributed File System (HDFS) или други системи за складирање податоци како Apache HBase.
Програмерите на SQL може да го користат Hive за да креираат изјави на Hive Query Language (HQL) за барање и анализа на податоци кои се споредливи со редовните SQL изјави. Создаден е за да го олесни програмирањето на MapReduce со елиминирање на потребата од учење и пишување долг Java код. Наместо тоа, можете да ги напишете вашите прашања во HQL, а Hive ќе ја изгради мапата и ќе ги намали функциите за вас.
Интерфејсот сличен на SQL на Apache Hive стана златен стандард за вршење ад-хок пребарувања, сумирање и анализа на податоците од Hadoop. Кога е вклучен во облакот компјутерски мрежи, ова решение е особено исплатливо и скалабилно, поради што многу фирми, вклучувајќи ги Netflix и Amazon, продолжуваат да го развиваат и подобруваат Apache Hive.
историја
За време на нивниот престој во Фејсбук, Џојдип Сен Сарма и Ашиш Тусоу заедно го создадоа 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 Distributed File System HDFS) и ги извршува задачите на кластер за да добие одговор.
податоци
Табелите на Apache Hive се подредени на ист начин како што се организирани табелите во релациска база на податоци, со податочни единици кои се движат по големина од поголеми до помали. Базите на податоци се составени од табели кои се поделени на поделби, кои понатаму се поделени во кофи. HiveQL (Hive Query Language) се користи за пристап до податоците, кои може да се изменат или додадат. Податоците од табелите се серијализирани во секоја база на податоци и секоја табела има свој директориум HDFS.
Архитектура
Сега ќе зборуваме за најважниот аспект на Hive Architecture. Компонентите на Apache Hive се како што следува:
Метастор — Ги следи информациите за секоја табела, како што се нејзината структура и локација. Метаподатоците за партицијата се исто така вклучени во Hive. Ова му овозможува на возачот да го следи напредокот на различни збирки на податоци распространети низ кластерот. Податоците се чуваат во конвенционален RDBMS формат. Метаподатоците на Hive се исклучително важни за возачот да ги следи податоците. Резервниот сервер редовно ги дуплира податоците за да може да се повратат во случај на губење податоци.
Возачот – Изјавите на HiveQL ги прима драјвер, кој функционира како контролер. Со воспоставување на сесии, возачот го иницира извршувањето на изјавата. Го следи животниот век и напредокот на извршната власт. За време на извршувањето на изјавата HiveQL, возачот ги зачувува бараните метаподатоци. Исто така, служи како точка за собирање податоци или резултати од пребарување по процесот на Намалување.
Компилер – Ја извршува компилацијата за пребарување HiveQL. Барањето сега е претворено во план за извршување. Задачите се наведени во планот. Ги вклучува и чекорите што MapReduce мора да ги преземе за да го добие резултатот како што е преведен со барањето. Барањето се претвора во дрво за апстрактна синтакса од страна на компајлерот на Hive (AST). Го конвертира AST во насочен ацикличен график по проверка за компатибилност и грешки во времето на компајлирање (DAG).
Оптимизатор – Ја оптимизира ДАГ со извршување на различни промени на планот за извршување. Комбинира трансформации за подобрена ефикасност, како што е претворање на цевковод од спојници во еден спој. За да се подобри брзината, оптимизаторот може да ги подели активностите, како што е примена на трансформација на податоците пред да изврши операција за намалување.
Извршител – Извршителот ги извршува задачите кога ќе завршат компилацијата и оптимизацијата. Работните места се нафтени од страна на Извршителот.
CLI, UI и Thrift Server – Интерфејсот на командната линија (CLI) е кориснички интерфејс што му овозможува на надворешен корисник да комуницира со Hive. штедливиот сервер на Hive, сличен на протоколите JDBC или ODBC, им овозможува на надворешните клиенти да комуницираат со Hive преку мрежа.
Безбедност
Apache Hive е интегриран со Hadoop безбедност, кој користи Kerberos за меѓусебна автентикација клиент-сервер. HDFS диктира дозволи за новогенерирани датотеки во Apache Hive, овозможувајќи ви да одобрувате од корисникот, групата и други.
Клучни карактеристики
- Hive поддржува надворешни табели, кои ви дозволуваат да обработувате податоци без да ги складирате во HDFS.
- Исто така, овозможува сегментација на податоците на ниво на табелата за да се зголеми брзината.
- Apache Hive одлично ја задоволува потребата за интерфејс на ниско ниво на Hadoop.
- Hive го олеснува сумирањето на податоците, барањето и анализата.
- HiveQL не бара никакви програмски вештини; доволно е едноставно разбирање на SQL барањата.
- Можеме да користиме и Hive за спроведување ад-хок прашања за анализа на податоци.
- Тоа е скалабилно, познато и приспособливо.
- HiveQL не бара никакви програмски вештини; доволно е едноставно разбирање на SQL барањата.
Предности
Apache Hive овозможува извештаи за крајот на денот, дневни проценки на трансакциите, ад-хок пребарувања и анализа на податоци. Сеопфатните увиди обезбедени од Apache Hive даваат значителни конкурентски предности и ви го олеснуваат одговорот на барањата на пазарот.
Еве некои од придобивките од лесно достапните такви информации:
- Леснотија на користење – Со својот јазик сличен на SQL, податоците за барање се едноставни за разбирање.
- Забрзано вметнување податоци - Бидејќи Apache Hive ја чита шемата без да го потврди типот на табелата или дефиницијата на шемата, податоците не мора да се читаат, анализираат и сериизираат на дискот во внатрешниот формат на базата на податоци. Спротивно на тоа, во конвенционалната база на податоци, податоците мора да се валидираат секогаш кога се додаваат.
- Супериорна приспособливост, флексибилност и исплатливост - Бидејќи податоците се складирани во HDFS, Apache Hive може да собере 100 петабајти податоци, што го прави многу поскалабилна опција од типична база на податоци. Apache Hive, како услуга Hadoop базирана на облак, им овозможува на клиентите брзо да ги вртат нагоре и надолу виртуелните сервери за да одговорат на променливите работни оптоварувања.
- Голем работен капацитет – Големите збирки на податоци може да одговорат до 100,000 прашања на час.
Ограничувања
- Општо земено, прашањата за Apache Hive имаат многу висока латентност.
- Поддршката за подпрашање е ограничена.
- Барањата во реално време и промените на ниво на ред не се достапни во Apache Hive.
- Нема поддршка за материјализираните ставови.
- Во кошницата, дејствата за ажурирање и бришење не се поддржани.
- Не е наменет за OLTP (онлајн преоден процес).
Започнуваме со Apache Hive
Apache Hive е силен Hadoop партнер кој ги поедноставува и рационализира вашите работни текови. За да го извлечете максимумот од Apache Hive, од суштинско значење е беспрекорната интеграција. Првиот чекор е да се оди на .
1. Кошница за инсталација од стабилно ослободување
Започнете со преземање на најновото стабилно издание на 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 и да ги направите вашите работни процеси поефикасни. Дозволете ни да знаеме во коментарите.
Оставете Одговор