Inhaltsverzeechnes[Verstoppen][Show]
Hive ass e wäit benotzte Big Data Analytics Tool am Geschäft, an et ass eng fantastesch Plaz fir unzefänken wann Dir nei Big Data sidd. Dës Apache Hive Lektioun geet duerch d'Grondlage vum Apache Hive, firwat en Hive néideg ass, seng Funktiounen, an alles wat Dir wësse sollt.
Loosst eis als éischt den Hadoop Kader verstoen op deem Apache Hive gebaut ass.
Apache Hadoop
Apache Hadoop ass e gratis an Open-Source Plattform fir grouss Datesätz ze späicheren an ze veraarbecht, rangéiert a Gréisst vu Gigabytes bis Petabytes. Hadoop erlaabt vill Computeren ze clusteren fir enorm Datesätze parallel ze analyséieren, anstatt en eenzege grousse Computer ze erfuerderen fir d'Donnéeën ze späicheren an ze analyséieren.
MapReduce an Hadoop Distributed File System sinn zwee vun de Komponenten:
- MapReduce - MapReduce ass eng parallel Programméierungstechnik fir enorm Volumen vun organiséierten, semi-strukturéierten an onstrukturéierten Daten op Commodity Hardware Cluster ze handhaben.
- HDFS - HDFS (Hadoop Distributed File System) ass en Hadoop Kaderkomponent deen Daten späichert a veraarbecht. Et ass e Feeler-tolerant Dateiesystem deen op Standard Hardware leeft
Verschidde Ënnerprojeten (Tools) am Hadoop Ökosystem, dorënner Sqoop, Pig, an Hive, gi benotzt fir Hadoop Moduler ze hëllefen.
- Hive - Hive ass e Kader fir SQL-Stil Scripten ze schreiwen déi MapReduce Berechnungen ausféieren.
- Schwäin - Pig ass eng prozedural Programméierungssprooch déi benotzt ka ginn fir e Skript fir MapReduce Prozesser ze kreéieren.
- Scoop - Sqoop ass en Tool fir Daten tëscht HDFS an RDBMS z'importéieren an ze exportéieren.
Wat ass Apache Hive?
Apache Hive ass eng Open Source daten Lager Programm fir rieseg Datesets ze liesen, ze schreiwen an ze managen, déi direkt am Apache Hadoop Distributed File System (HDFS) oder aner Datespeichersystemer wéi Apache HBase gespäichert sinn.
SQL Entwéckler kënnen Hive benotzen fir Hive Query Language (HQL) Aussoe fir Datefroen an Analyse ze kreéieren déi mat normale SQL Aussoen vergläichbar sinn. Et gouf erstallt fir MapReduce Programméiere méi einfach ze maachen andeems d'Bedierfnes eliminéiert gëtt fir laang Java Code ze léieren a schreiwen. Amplaz kënnt Dir Är Ufroen an HQL schreiwen, an Hive wäert d'Kaart bauen an d'Funktioune fir Iech reduzéieren.
D'SQL-ähnlech Interface vun Apache Hive ass de Gold Standard ginn fir ad-hoc Recherchen auszeféieren, Hadoop Daten ze resuméieren an ze analyséieren. Wann an der Wollek abegraff Rechennetzwierker, Dës Léisung ass besonnesch kosteneffizient a skalierbar, dofir sinn vill Firmen, dorënner Netflix an Amazon, weider Apache Hive z'entwéckelen an ze verbesseren.
Geschicht
Wärend hirer Zäit op Facebook hunn de Joydeep Sen Sarma an den Ashish Thusoo den Apache Hive zesumme gegrënnt. Si hunn allebéid erkannt datt fir dat Bescht aus Hadoop ze kréien, si misste e puer zimlech komplizéiert Java Map-Reduce Aufgaben erstellen. Si hunn erkannt datt se hir séier erweiderend Ingenieurs- an analytesch Teams net fäeg wieren iwwer d'Fäegkeeten ze educéieren déi se brauchen fir Hadoop duerch d'Firma ze profitéieren. Ingenieuren an Analysten hunn dacks SQL als User Interface benotzt.
Wärend SQL d'Majoritéit vun den Analytikbedürfnisser entsprécht, hunn d'Entwéckler och geduecht fir d'Programméierbarkeet vum Hadoop z'integréieren. Apache Hive ass aus dësen zwee Ziler entstanen: eng SQL-baséiert deklarativ Sprooch déi d'Entwéckler och erlaabt huet hir eege Scripten a Programmer matzebréngen wann SQL net genuch war.
Et gouf och entwéckelt fir zentraliséiert Metadaten (Hadoop-baséiert) iwwer all Datensätz an der Firma ze halen fir de Konstruktioun vun datendriven Organisatiounen méi einfach ze maachen.
Wéi funktionnéiert Apache Hive?
An enger Nossschuel konvertéiert Apache Hive en Input Programm geschriwwen an der HiveQL (SQL-ähnlecher) Sprooch an eng oder méi Java MapReduce, Tez oder Spark Aufgaben. (All dës Ausféierungsmotoren sinn kompatibel mat Hadoop YARN.) Duerno arrangéiert Apache Hive d'Donnéeën an Tabelle fir den Hadoop Distributed File System HDFS) an mécht d'Aufgaben op engem Cluster fir eng Äntwert ze kréien.
Daten
D'Apache Hive Dëscher sinn op déiselwecht Manéier arrangéiert wéi Dëscher an enger relationaler Datebank organiséiert ginn, mat Dateneenheeten, déi an der Gréisst vu méi grouss bis méi kleng sinn. Datebanke besteet aus Dëscher déi an Divisiounen opgedeelt sinn, déi weider an Eemer opgedeelt sinn. HiveQL (Hive Query Language) gëtt benotzt fir Zougang zu den Donnéeën ze kréien, déi geännert oder bäigefüügt kënne ginn. Dëschdaten ginn an all Datebank serialiséiert, an all Dësch huet säin eegene HDFS-Verzeichnis.
Architecture
Elo wäerte mir iwwer de wichtegsten Aspekt vun der Hive Architektur schwätzen. D'Komponente vum Apache Hive sinn wéi follegt:
Metastore - Et hält Informatioun iwwer all Dësch, sou wéi seng Struktur a Standuert. D'Partition Metadaten sinn och an Hive abegraff. Dëst erlaabt de Chauffeur de Fortschrëtt vu verschiddenen Datesets iwwer de Cluster ze verfollegen. D'Donnéeë ginn an engem konventionelle RDBMS Format gespäichert. Hive Metadaten ass extrem wichteg fir de Chauffer fir d'Verfollegung vun den Daten z'erhalen. De Backup-Server duplizéiert Donnéeën op enger reegelméisseger Basis, sou datt se am Fall vun Datenverloscht erholl kënne ginn.
driver - HiveQL Aussoe ginn vun engem Chauffer kritt, deen als Controller funktionnéiert. Andeems Dir Sessiounen opstellt, initiéiert de Chauffeur d'Ausféierung vun der Ausso. Et hält d'Liewensdauer an de Fortschrëtt vum Exekutiv verfollegen. Wärend der Ausféierung vun enger HiveQL Ausso späichert de Chauffer déi erfuerderlech Metadaten. Et déngt och als Daten- oder Ufroresultat Sammelpunkt nom Reduce Prozess.
compiler - Et féiert d'HiveQL Ufro-Kompilatioun aus. D'Ufro ass elo an en Ausféierungsplang ëmgewandelt. D'Aufgaben sinn am Plang opgezielt. Et enthält och d'Schrëtt déi MapReduce muss huelen fir d'Resultat ze kréien wéi iwwersat vun der Ufro. D'Ufro gëtt an en Abstract Syntax Tree vum Hive's Compiler (AST) ëmgewandelt. Konvertéiert d'AST an eng geriicht azyklesch Grafik nodeems Dir no Kompatibilitéit a Kompiléierungszäitfehler (DAG) kontrolléiert.
Optimizer - Et optiméiert DAG andeems Dir verschidden Ännerungen am Ausféierungsplang ausféiert. Et kombinéiert Transformatiounen fir eng verbessert Effizienz, sou wéi eng Pipeline vu Joints an eng eenzeg Join ëmzewandelen. Fir d'Geschwindegkeet ze verbesseren, kann den Optimizer Aktivitéiten opdeelen, sou wéi eng Transformatioun op Daten applizéieren ier Dir eng Reduktiounsoperatioun ausféiert.
Exekutor - Den Exekutor fiert d'Aufgaben wann d'Kompilatioun an d'Optimiséierung fäerdeg sinn. D'Aarbechte gi vum Executor pipelined.
CLI, UI, an Thrift Server - D'Command-Line Interface (CLI) ass e User Interface deen en externen Benotzer erlaabt mat Hive ze kommunizéieren. Dem Hive säi Spuerserver, ähnlech wéi d'JDBC oder ODBC Protokoller, erlaabt externe Clienten mat Hive iwwer e Netzwierk ze kommunizéieren.
Sécherheet
Apache Hive ass integréiert mat Hadoop Sécherheet, déi Kerberos fir Client-Server géigesäiteg Authentifikatioun benotzt. Den HDFS diktéiert Permissiounen fir nei generéiert Dateien am Apache Hive, wat Iech erlaabt de Benotzer, de Grupp an anerer z'accordéieren.
Schlëssel Fonctiounen
- Hive ënnerstëtzt extern Dëscher, déi Iech erlaabt Daten ze veraarbechten ouni se an HDFS ze späicheren.
- Et erméiglecht och Datensegmentéierung um Dëschniveau fir d'Geschwindegkeet ze erhéijen.
- Apache Hive entsprécht exzellent dem Hadoop sengem Low-Level Interface Bedierfnes.
- Hive mécht Daten Zesummefaassung, Ufroen an Analyse méi einfach.
- HiveQL erfuerdert keng Programméierungsfäegkeeten; en einfacht Verständnis vu SQL Ufroen ass genuch.
- Mir kënnen och Hive benotze fir ad-hoc Ufroe fir Datenanalyse ze maachen.
- Et ass skalierbar, vertraut an adaptéierbar.
- HiveQL erfuerdert keng Programméierungsfäegkeeten; en einfacht Verständnis vu SQL Ufroen ass genuch.
Virdeeler
Apache Hive erlaabt Enn vum Dag Berichter, alldeeglech Transaktiounsbewäertungen, ad-hoc Sichen an Datenanalyse. Déi ëmfaassend Abléck, déi vum Apache Hive geliwwert gëtt, ginn bedeitend kompetitiv Virdeeler a maachen et méi einfach fir Iech op Maartfuerderunge z'äntwerten.
Hei sinn e puer vun de Virdeeler fir sou Informatioun einfach verfügbar ze hunn:
- Einfacher Benotzung - Mat senger SQL-ähnlecher Sprooch ass d'Ufro vun Daten einfach ze verstoen.
- Beschleunegt Datenaféierung - Well Apache Hive de Schema liest ouni d'Tabellentyp oder d'Schemadefinitioun z'iwwerpréiwen, mussen d'Donnéeën net gelies, parséiert a serialiséiert ginn op Disk am internen Format vun der Datebank. Am Géigesaz, an enger konventioneller Datebank mussen d'Donnéeën all Kéier validéiert ginn wann se derbäigesat ginn.
- Superior Skalierbarkeet, Flexibilitéit a Käschteneffizienz - Well Daten am HDFS gespäichert sinn, kann Apache Hive 100s vun Petabytes vun Daten halen, sou datt et eng vill méi skalierbar Optioun ass wéi eng typesch Datebank. Apache Hive, als Cloud-baséiert Hadoop Service, erlaabt Clienten séier virtuell Serveren op an erof ze spin fir verännert Aarbechtslaascht z'erreechen.
- Extensiv Aarbechtskapazitéit - Grouss Datesätz kënne bis zu 100,000 Ufroen pro Stonn behandelen.
Beschränkungen
- Am Allgemengen hunn Apache Hive Ufroen ganz héich latency.
- Subquery Ënnerstëtzung ass limitéiert.
- Echtzäit Ufroen an Zeilniveau Ännerungen sinn net am Apache Hive verfügbar.
- Et gëtt keng Ënnerstëtzung fir materialiséiert Meenungen.
- Am Hive, Aktualiséierung a Läschen Aktiounen ginn net ënnerstëtzt.
- Net geduecht fir OLTP (Online Iwwergangsprozess).
Ufänken mat Apache Hive
Apache Hive ass e staarken Hadoop Partner deen Är Workflows vereinfacht a streamlines. Fir dat Bescht aus Apache Hive ze kréien, ass eng nahtlos Integratioun wesentlech. Den éischte Schrëtt ass op d' Websäit.
1. Installatioun Hive vun enger stabiler Verëffentlechung
Start andeems Dir déi lescht stabil Verëffentlechung vun Hive vun engem vun den Apache Downloadspigelen eroflueden (kuckt Hive Verëffentlechungen). Den Tarball muss dann ausgepaakt ginn. Dëst wäert en Ënnerordner genannt Hive-xyz erstellen (wou xyz d'Verëffentlechungsnummer ass):
Setzt d'Ëmfeldvariabel HIVE_HOME fir op den Installatiounsverzeechnes ze weisen:
Füügt endlech $HIVE_HOME/bin op Är PATH
:
2. Lafen Hive
Hive benotzt Hadoop, also:
- Dir musst Hadoop op Ärem Wee hunn ODER
3. DLL Operatioun
Schafen Hive Dësch
generéiert en Dësch mam Numm Pokes mat zwou Kolonnen, déi éischt vun deenen ass en ganzt Zuel an déi zweet vun deenen ass eng String.
Surfen duerch Dëscher
Oplëschtung All Dëscher
Änneren an erofsetzen Dëscher
Tabellennimm kënne geännert ginn a Kolonnen kënnen derbäigesat oder ersat ginn:
Et ass derwäert ze notéieren datt REPLACE COLUMNS all existent Kolonnen ersetzt wärend nëmmen d'Struktur vun der Tabell ännert an net d'Donnéeën. Eng gebierteg SerDe muss an der Tabell benotzt ginn. REPLACE COLUMNS kënnen och benotzt ginn fir Spalten aus dem Schema vun enger Tabell ze läschen:
Lëschten Dëscher
Et gi vill zousätzlech Operatiounen a Funktiounen am Apache Hive, iwwer déi Dir léiere kënnt andeems Dir déi offiziell Websäit besicht.
Konklusioun
Hive Definitioun ass eng Dateprogramm-Interface fir Ufroen an Analyse fir rieseg Datesets déi uewen op Apache Hadoop gebaut ginn. Professionnelen wielen et iwwer aner Programmer, Tools a Software well et haaptsächlech fir Hive extensiv Daten entworf ass an einfach ze benotzen ass.
Hoffen dësen Tutorial hëlleft Iech mat Apache Hive ze kickstart an Är Workflows méi effizient ze maachen. Loosst eis an de Kommentaren wëssen.
Hannerlooss eng Äntwert