Hive - гэта шырока выкарыстоўваны ў бізнэсе інструмент Big Data Analytics, і гэта фантастычнае месца для пачатку, калі вы пачатковец у Big Data. У гэтым уроку Apache Hive разглядаюцца асновы Apache Hive, навошта патрэбны вулей, яго асаблівасці і ўсё астатняе, што вы павінны ведаць.
Давайце спачатку разбярэмся ў структуры Hadoop, на якой пабудаваны Apache Hive.
Apache Hadoop
Apache Hadoop з'яўляецца бясплатным і з адкрытым зыходным кодам платформа для захоўвання і апрацоўкі вялікіх набораў даных памерам ад гігабайт да петабайт. Hadoop дазваляе кластэрызаваць мноства камп'ютараў для паралельнага аналізу велізарных набораў даных, а не патрабаваць ад аднаго вялікага кампутара для захоўвання і аналізу даных.
MapReduce і размеркаваная файлавая сістэма Hadoop - два кампаненты:
- MapReduce – MapReduce - гэта тэхніка паралельнага праграмавання для апрацоўкі велізарных аб'ёмаў арганізаваных, паўструктураваных і неструктураваных дадзеных на кластарах таварнага абсталявання.
- HDFS – HDFS (размеркаваная файлавая сістэма Hadoop) - гэта кампанент структуры Hadoop, які захоўвае і апрацоўвае даныя. Гэта ўстойлівая да збояў файлавая сістэма, якая працуе на стандартным абсталяванні
Розныя падпраекты (інструменты) у экасістэме Hadoop, у тым ліку Sqoop, Pig і Hive, выкарыстоўваюцца для дапамогі модулям Hadoop.
- Вулей – Hive - гэта структура для напісання сцэнарыяў у стылі SQL, якія выконваюць вылічэнні MapReduce.
- свіння – Pig - гэта працэдурная мова праграмавання, якую можна выкарыстоўваць для стварэння сцэнарыя для працэсаў MapReduce.
- Савок – Sqoop - гэта інструмент для імпарту і экспарту даных паміж HDFS і RDBMS.
Што такое Вулей апача?
Apache Hive з'яўляецца адкрытым зыходным кодам інфармацыйнае сховішча праграма для чытання, запісу і кіравання велізарнымі наборамі даных, якія захоўваюцца непасрэдна ў размеркаванай файлавай сістэме Apache Hadoop (HDFS) або іншых сістэмах захоўвання даных, такіх як Apache HBase.
Распрацоўшчыкі SQL могуць выкарыстоўваць Hive для стварэння аператараў Hive Query Language (HQL) для запыту і аналізу даных, якія супастаўныя са звычайнымі аператарамі SQL. Ён быў створаны, каб палегчыць праграмаванне MapReduce, пазбаўляючы ад неабходнасці вывучаць і пісаць доўгі код Java. Замест гэтага вы можаце напісаць свае запыты ў HQL, і Hive пабудуе карту і скароціць для вас функцыі.
SQL-падобны інтэрфейс Apache Hive стаў залатым стандартам для выканання спецыяльных пошукаў, абагульнення і аналізу даных Hadoop. Пры ўключэнні ў воблака вылічальныя сеткі, гэта рашэнне з'яўляецца асабліва эканамічна эфектыўным і маштабуецца, таму многія фірмы, у тым ліку Netflix і Amazon, працягваюць распрацоўваць і паляпшаць Apache Hive.
гісторыя
Падчас працы ў Facebook Джойдып Сен Сарма і Ашыш Тусу сумесна стварылі 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 наступныя:
Метасховішча — Ён захоўвае інфармацыю пра кожную табліцу, напрыклад, яе структуру і размяшчэнне. Метададзеныя падзелу таксама ўключаны ў Hive. Гэта дазваляе кіроўцу адсочваць прагрэс розных набораў даных, размеркаваных па кластары. Дадзеныя захоўваюцца ў звычайным фармаце RDBMS. Метададзеныя Hive надзвычай важныя для кіроўцы, які дазваляе адсочваць даныя. Сервер рэзервовага капіявання рэгулярна дублюе даныя, каб іх можна было аднавіць у выпадку страты даных.
Кіроўца – Аператары HiveQL прымаюцца драйверам, які функцыянуе як кантролер. Усталёўваючы сеансы, драйвер ініцыюе выкананне аператара. Ён адсочвае працягласць жыцця кіраўніка і прагрэс. Падчас выканання аператара HiveQL драйвер захоўвае неабходныя метаданыя. Ён таксама служыць пунктам збору даных або вынікаў запыту пасля працэсу памяншэння.
Compiler – Ён выконвае кампіляцыю запытаў HiveQL. Цяпер запыт ператвораны ў план выканання. Задачы прапісаны ў плане. Ён таксама ўключае крокі, якія MapReduce павінен выканаць, каб атрымаць вынік, перакладзены запытам. Запыт пераўтворыцца ў абстрактнае сінтаксічнае дрэва кампілятарам Hive (AST). Пераўтварае AST у накіраваны ацыклічны графік пасля праверкі сумяшчальнасці і памылак падчас кампіляцыі (DAG).
Аптымізатар – Ён аптымізуе DAG, уносячы розныя змены ў план выканання. Ён аб'ядноўвае пераўтварэнні для павышэння эфектыўнасці, такія як пераўтварэнне канвеера злучэнняў у адно злучэнне. Каб павялічыць хуткасць, аптымізатар можа падзяліць дзеянні, такія як прымяненне пераўтварэння да дадзеных перад выкананнем аперацыі скарачэння.
Executor – Выканаўца запускае заданні пасля завяршэння кампіляцыі і аптымізацыі. Заданні канвеерыруюцца Выканаўцам.
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 для выканання спецыяльных запытаў для аналізу даных.
- Ён маштабуецца, знаёмы і адаптуецца.
- HiveQL не патрабуе навыкаў праграмавання; дастаткова простага разумення SQL-запытаў.
льготы
Apache Hive дазваляе ствараць справаздачы на канец дня, штодзённыя ацэнкі транзакцый, спецыяльныя пошукі і аналіз дадзеных. Вычарпальная інфармацыя, прадстаўленая 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). Затым архіў неабходна распакаваць. Гэта створыць падпапку hive-xyz (дзе xyz — нумар выпуску):
Усталюйце зменную асяроддзя HIVE_HOME, каб паказваць на каталог усталявання:
Нарэшце, дадайце $HIVE_HOME/bin да вашага PATH
:
2. Запушчаны вулей
Hive выкарыстоўвае Hadoop, таму:
- вы павінны мець Hadoop на вашым шляху АБО
3. Праца DLL
Стварэнне Hive Table
стварае табліцу з назвай pokes з двума слупкамі, першы з якіх з'яўляецца цэлым лікам, а другі з якіх з'яўляецца радком.
Прагляд табліц
Пералік усіх табліц
Змена і выдаленне табліц
Імёны табліц можна змяняць, а слупкі можна дадаваць або замяняць:
Варта адзначыць, што REPLACE COLUMNS замяняе ўсе існуючыя слупкі, змяняючы пры гэтым толькі структуру табліцы, а не даныя. У табліцы павінен выкарыстоўвацца родны SerDe. REPLACE COLUMNS таксама можна выкарыстоўваць для выдалення слупкоў са схемы табліцы:
Выпадаючыя табліцы
У Apache Hive ёсць шмат дадатковых аперацый і функцый, пра якія вы можаце даведацца, наведаўшы афіцыйны сайт.
заключэнне
Hive definition - гэта праграмны інтэрфейс дадзеных для запытаў і аналізу велізарных набораў даных, створаных на аснове Apache Hadoop. Прафесіяналы выбіраюць яго перад іншымі праграмамі, інструментамі і праграмным забеспячэннем, паколькі ён у асноўным прызначаны для шырокіх даных Hive і просты ў выкарыстанні.
Спадзяюся, гэты падручнік дапаможа вам пачаць працу з Apache Hive і зрабіць вашы працоўныя працэсы больш эфектыўнымі. Дайце нам ведаць у каментарах.
Пакінуць каментар