Ang Hive ay isang malawakang ginagamit na tool ng Big Data Analytics sa negosyo, at ito ay isang magandang lugar upang magsimula kung bago ka sa Big Data. Ang aralin sa Apache Hive na ito ay dumaan sa mga pangunahing kaalaman ng Apache Hive, kung bakit kailangan ang isang pugad, mga tampok nito, at lahat ng iba pang dapat mong malaman.
Unawain muna natin ang Hadoop framework kung saan binuo ang Apache Hive.
Apache Hadoop
Ang Apache Hadoop ay isang libre at open-source platform para sa pag-iimbak at pagproseso ng malalaking dataset na may sukat mula gigabytes hanggang petabytes. Ang Hadoop ay nagbibigay-daan sa pag-cluster ng maraming computer upang pag-aralan ang napakalaking dataset nang magkatulad, sa halip na mangailangan ng isang malaking computer upang mag-imbak at magsuri ng data.
Ang MapReduce at Hadoop Distributed File System ay dalawa sa mga bahagi:
- MapReduce – Ang MapReduce ay isang parallel programming technique para sa paghawak ng malalaking volume ng organisado, semi-structured, at unstructured na data sa mga cluster ng commodity hardware.
- HDFS – Ang HDFS (Hadoop Distributed File System) ay isang Hadoop framework component na nag-iimbak at nagpoproseso ng data. Ito ay isang fault-tolerant na file system na tumatakbo sa karaniwang hardware
Iba't ibang mga sub-proyekto (mga tool) sa Hadoop ecosystem, kabilang ang Sqoop, Pig, at Hive, ay ginagamit upang tumulong sa mga module ng Hadoop.
- Pugad – Ang Hive ay isang balangkas para sa pagsulat ng mga script na istilo ng SQL na nagsasagawa ng mga pagkalkula ng MapReduce.
- Baboy – Ang Pig ay isang procedural programming language na maaaring gamitin para gumawa ng script para sa mga proseso ng MapReduce.
- Sqoop – Ang Sqoop ay isang tool para sa pag-import at pag-export ng data sa pagitan ng HDFS at RDBMS.
Ano ang Apache Hive?
Ang Apache Hive ay isang open-source data bodega programa para sa pagbabasa, pagsusulat, at pamamahala ng malalaking set ng data na nakaimbak nang direkta sa Apache Hadoop Distributed File System (HDFS) o iba pang data storage system tulad ng Apache HBase.
Maaaring gamitin ng mga developer ng SQL ang Hive upang lumikha ng mga pahayag ng Hive Query Language (HQL) para sa query at pagsusuri ng data na maihahambing sa mga regular na SQL statement. Ito ay nilikha upang gawing mas madali ang MapReduce programming sa pamamagitan ng pag-aalis ng pangangailangang matuto at magsulat ng mahabang Java code. Sa halip, maaari mong isulat ang iyong mga query sa HQL, at gagawin ng Hive ang mapa at bawasan ang mga function para sa iyo.
Ang mala-SQL na interface ng Apache Hive ay naging Gold Standard para sa pagsasagawa ng mga ad-hoc na paghahanap, pagbubuod, at pagsusuri ng data ng Hadoop. Kapag kasama sa cloud mga network ng computing, ang solusyong ito ay lalong matipid at nasusukat, kaya naman maraming kumpanya, kabilang ang Netflix at Amazon, ang patuloy na nagpapaunlad at nagpapahusay sa Apache Hive.
kasaysayan
Sa kanilang oras sa Facebook, magkasamang nilikha nina Joydeep Sen Sarma at Ashish Thusoo ang Apache Hive. Pareho nilang nakilala na para masulit ang Hadoop, kailangan nilang gumawa ng medyo kumplikadong Java Map-Reduce na gawain. Nakilala nila na hindi nila magagawang turuan ang kanilang mabilis na lumalawak na mga engineering at analytic na koponan sa mga kasanayang kakailanganin nila para magamit ang Hadoop sa buong kumpanya. Ang mga inhinyero at analyst ay madalas na gumagamit ng SQL bilang isang user interface.
Bagama't kayang matugunan ng SQL ang karamihan ng mga pangangailangan sa analytics, nilayon din ng mga developer na isama ang programmability ng Hadoop. Ang Apache Hive ay bumangon mula sa dalawang layuning ito: isang SQL-based na declarative na wika na nagbibigay-daan din sa mga developer na magdala ng sarili nilang mga script at program kapag hindi sapat ang SQL.
Binuo din ito upang magkaroon ng sentralisadong metadata (batay sa Hadoop) tungkol sa lahat ng mga dataset sa kumpanya upang gawing mas madali ang pagtatayo ng mga organisasyong batay sa data.
Paano gumagana ang Apache Hive?
Sa madaling sabi, ang Apache Hive ay nagko-convert ng input program na nakasulat sa HiveQL (SQL-like) na wika sa isa o higit pang mga gawain sa Java MapReduce, Tez, o Spark. (Lahat ng mga execution engine na ito ay tugma sa Hadoop YARN.) Pagkatapos nito, inaayos ng Apache Hive ang data sa mga talahanayan para sa Hadoop Distributed File System HDFS) at ginagawa ang mga gawain sa isang cluster upang makakuha ng sagot.
data
Ang mga talahanayan ng Apache Hive ay inayos sa parehong paraan tulad ng pag-aayos ng mga talahanayan sa isang relational database, na may mga unit ng data na may sukat mula sa mas malaki hanggang sa mas maliit. Ang mga database ay binubuo ng mga talahanayan na nahahati sa mga dibisyon, na higit pang nahahati sa mga balde. Ang HiveQL (Hive Query Language) ay ginagamit upang ma-access ang data, na maaaring baguhin o idugtong. Ang data ng talahanayan ay naka-serialize sa loob ng bawat database, at ang bawat talahanayan ay may sariling direktoryo ng HDFS.
Arkitektura
Ngayon ay pag-uusapan natin ang tungkol sa pinakamahalagang aspeto ng Hive Architecture. Ang mga bahagi ng Apache Hive ay ang mga sumusunod:
Metastore — Sinusubaybayan nito ang impormasyon tungkol sa bawat talahanayan, tulad ng istraktura at lokasyon nito. Ang partition metadata ay kasama rin sa Hive. Nagbibigay-daan ito sa driver na subaybayan ang pag-usad ng iba't ibang set ng data na kumalat sa buong cluster. Ang data ay naka-imbak sa isang kumbensyonal na format ng RDBMS. Napakahalaga ng hive metadata para mapanatili ng driver ang pagsubaybay sa data. Ang backup na server ay regular na nagdo-duplicate ng data upang ito ay mabawi kung sakaling mawala ang data.
Drayber – Ang mga pahayag ng HiveQL ay natatanggap ng isang driver, na gumagana bilang isang controller. Sa pamamagitan ng pagtatatag ng mga session, sinisimulan ng driver ang pagpapatupad ng pahayag. Sinusubaybayan nito ang haba ng buhay at pag-unlad ng executive. Sa panahon ng pagpapatupad ng HiveQL statement, sine-save ng driver ang kinakailangang metadata. Ito rin ay nagsisilbing punto sa pagkolekta ng resulta ng data o query kasunod ng proseso ng Bawasan.
tagatala – Isinasagawa nito ang compilation ng query sa HiveQL. Ang query ay na-convert na ngayon sa isang plano sa pagpapatupad. Ang mga gawain ay nakalista sa plano. Kasama rin dito ang mga hakbang na dapat gawin ng MapReduce upang makuha ang resulta bilang isinalin ng query. Ang query ay na-convert sa isang Abstract Syntax Tree ng Hive's compiler (AST). Kino-convert ang AST sa Directed Acyclic Graph pagkatapos suriin para sa compatibility at compile-time faults (DAG).
Optimizer – Ino-optimize nito ang DAG sa pamamagitan ng pagsasagawa ng iba't ibang pagbabago sa execution plan. Pinagsasama nito ang mga pagbabagong-anyo para sa pinahusay na kahusayan, tulad ng paggawa ng pipeline ng mga pagsali sa iisang pagsali. Upang mapabilis ang bilis, maaaring hatiin ng optimizer ang mga aktibidad, tulad ng paglalapat ng pagbabago sa data bago magsagawa ng operasyon ng pagbabawas.
Tagapagpatupad – Pinapatakbo ng executor ang mga gawain kapag natapos na ang compilation at optimization. Ang mga trabaho ay pipelined ng Executor.
CLI, UI, at Thrift Server – Ang command-line interface (CLI) ay isang user interface na nagbibigay-daan sa isang external na user na makipag-ugnayan sa Hive. Ang server ng pagtitipid ng Hive, katulad ng mga protocol ng JDBC o ODBC, ay nagbibigay-daan sa mga panlabas na kliyente na makipag-ugnayan sa Hive sa pamamagitan ng isang network.
Katiwasayan
Ang Apache Hive ay isinama sa Hadoop security, na gumagamit ng Kerberos para sa client-server mutual authentication. Ang HDFS ay nagdidikta ng mga pahintulot para sa mga bagong nabuong file sa Apache Hive, na nagbibigay-daan sa iyong aprubahan ng user, grupo, at iba pa.
Pangunahing tampok
- Sinusuportahan ng Hive ang mga panlabas na talahanayan, na nagbibigay-daan sa iyong iproseso ang data nang hindi ito iniimbak sa HDFS.
- Binibigyang-daan din nito ang pagse-segment ng data sa antas ng talahanayan upang mapataas ang bilis.
- Ang Apache Hive ay mahusay na nakakatugon sa mababang antas ng interface ng Hadoop na kailangan.
- Pinapadali ng Hive ang pagbubuod ng data, pag-query, at pagsusuri.
- Ang HiveQL ay hindi nangangailangan ng anumang mga kasanayan sa programming; sapat na ang simpleng pag-unawa sa mga query sa SQL.
- Magagamit din namin ang Hive upang magsagawa ng mga ad-hoc na query para sa pagsusuri ng data.
- Ito ay nasusukat, pamilyar, at madaling ibagay.
- Ang HiveQL ay hindi nangangailangan ng anumang mga kasanayan sa programming; sapat na ang simpleng pag-unawa sa mga query sa SQL.
Mga Benepisyo
Binibigyang-daan ng Apache Hive ang mga end-of-day na ulat, pang-araw-araw na pagsusuri sa transaksyon, ad-hoc na paghahanap, at pagsusuri ng data. Ang mga komprehensibong insight na ibinigay ng Apache Hive ay nagbibigay ng makabuluhang competitive na mga bentahe at ginagawang mas madali para sa iyo na tumugon sa mga pangangailangan sa merkado.
Narito ang ilan sa mga pakinabang ng pagkakaroon ng ganoong impormasyon na madaling makuha:
- Dali ng paggamit – Sa mala-SQL na wika nito, ang pag-query ng data ay madaling maunawaan.
- Pinabilis na pagpasok ng data — Dahil binabasa ng Apache Hive ang schema nang hindi bini-verify ang uri ng talahanayan o kahulugan ng schema, hindi kailangang basahin, i-parse, at i-serialize ang data sa disc sa panloob na format ng database. Sa kabaligtaran, sa isang maginoo na database, ang data ay dapat na mapatunayan sa bawat oras na ito ay idinagdag.
- Superior scalability, flexibility, at cost-effectiveness – Dahil ang data ay naka-imbak sa HDFS, ang Apache Hive ay maaaring humawak ng 100s ng mga petabytes ng data, na ginagawa itong isang mas nasusukat na opsyon kaysa sa karaniwang database. Ang Apache Hive, bilang isang cloud-based na serbisyo ng Hadoop, ay nagbibigay-daan sa mga customer na mabilis na paikutin ang mga virtual server upang matugunan ang mga nagbabagong workload.
- Malawak na kapasidad sa pagtatrabaho – Maaaring humawak ng hanggang 100,000 query kada oras ang malalaking dataset.
Mga hangganan
- Sa pangkalahatan, ang mga query sa Apache Hive ay may napakataas na latency.
- Limitado ang suporta sa subquery.
- Ang mga real-time na query at row-level na pagbabago ay hindi available sa Apache Hive.
- Walang suporta para sa mga materyal na pananaw.
- Sa pugad, ang pag-update at pagtanggal ng mga aksyon ay hindi suportado.
- Hindi inilaan para sa OLTP (online transitional process).
Pagsisimula sa Apache Hive
Ang Apache Hive ay isang malakas na kasosyo sa Hadoop na pinapasimple at pinapasimple ang iyong mga daloy ng trabaho. Upang masulit ang Apache Hive, mahalaga ang tuluy-tuloy na pagsasama. Ang unang hakbang ay pumunta sa website.
1. Installation Hive mula sa Stable Release
Magsimula sa pamamagitan ng pag-download ng pinakahuling stable na release ng Hive mula sa isa sa mga Apache download mirror (tingnan ang Mga Paglabas ng Hive). Ang tarball ay dapat na i-unpack. Gagawa ito ng subfolder na tinatawag na hive-xyz (kung saan ang xyz ay ang release number):
Itakda ang environment variable HIVE_HOME upang tumuro sa direktoryo ng pag-install:
Panghuli, idagdag ang $HIVE_HOME/bin sa iyong PATH
:
2. Running Hive
Gumagamit ang Hive ng Hadoop, kaya:
- dapat mayroon kang Hadoop sa iyong landas O
3. Operasyon ng DLL
Paglikha ng Hive Table
bubuo ng table na pinangalanang pokes na may dalawang column, ang una ay isang integer at ang pangalawa ay isang string.
Nagba-browse sa mga Talahanayan
Listahan ng Lahat ng Talahanayan
Pagbabago at Pagbaba ng mga Table
Maaaring baguhin ang mga pangalan ng talahanayan at maaaring idagdag o palitan ang mga column:
Kapansin-pansin na pinapalitan ng REPLACE COLUMNS ang lahat ng umiiral na column habang binabago lang ang structure ng table at hindi ang data. Dapat gumamit ng katutubong SerDe sa talahanayan. Ang REPLACE COLUMNS ay maaari ding gamitin upang alisin ang mga column mula sa schema ng isang table:
Pagbaba ng mga Table
Maraming karagdagang operasyon at feature sa Apache Hive na maaari mong malaman sa pamamagitan ng pagbisita sa opisyal na website.
Konklusyon
Ang kahulugan ng Hive ay isang interface ng data program para sa pag-query at pagsusuri para sa malalaking dataset na binuo sa ibabaw ng Apache Hadoop. Pinipili ito ng mga propesyonal kaysa sa iba pang mga program, tool, at software dahil pangunahing idinisenyo ito para sa malawak na data ng Hive at simpleng gamitin.
Sana ay matulungan ka ng tutorial na ito na magsimula sa Apache Hive at gawing mas mahusay ang iyong mga workflow. Ipaalam sa amin sa mga komento.
Mag-iwan ng Sagot