Hive je široko korišten alat Big Data Analytics u poslovanju i fantastično je mjesto za početak ako ste novi u Big Data. Ova lekcija o Apache Hiveu govori o osnovama Apache Hive, zašto je košnica potrebna, njezinim značajkama i svemu ostalom što biste trebali znati.
Prvo razumijemo Hadoop okvir na kojem je izgrađen Apache Hive.
Apache Hadoop
Apache Hadoop je besplatan i open-source platforma za pohranu i obradu velikih skupova podataka veličine od gigabajta do petabajta. Hadoop omogućuje grupiranje brojnih računala za paralelnu analizu ogromnih skupova podataka, umjesto da zahtijeva jedno veliko računalo za pohranu i analizu podataka.
MapReduce i Hadoop Distributed File System dvije su komponente:
- MapReduce – MapReduce je tehnika paralelnog programiranja za rukovanje ogromnim količinama organiziranih, polustrukturiranih i nestrukturiranih podataka o klasterima robnog hardvera.
- HDFS – HDFS (Hadoop Distributed File System) je komponenta Hadoop okvira koja pohranjuje i obrađuje podatke. To je datotečni sustav otporan na greške koji radi na standardnom hardveru
Različiti podprojekti (alati) u Hadoop ekosustavu, uključujući Sqoop, Pig i Hive, koriste se za pomoć Hadoop modulima.
- Košnica – Hive je okvir za pisanje skripti u SQL stilu koje izvode MapReduce izračune.
- Svinja – Pig je proceduralni programski jezik koji se može koristiti za stvaranje skripte za MapReduce procese.
- Sqoop – Sqoop je alat za uvoz i izvoz podataka između HDFS-a i RDBMS-a.
Što je Apache košnica?
Apache Hive je open-source skladište podataka program za čitanje, pisanje i upravljanje velikim skupovima podataka pohranjenih izravno u Apache Hadoop Distributed File System (HDFS) ili drugim sustavima za pohranu podataka poput Apache HBase.
SQL programeri mogu koristiti Hive za stvaranje izraza Hive Query Language (HQL) za upite podataka i analizu koji su usporedivi s redovitim SQL izrazima. Stvoren je da olakša programiranje MapReduce eliminirajući potrebu za učenjem i pisanjem dugog Java koda. Umjesto toga, možete napisati svoje upite u HQL-u, a Hive će za vas izraditi kartu i smanjiti funkcije.
Sučelje Apache Hive slično SQL-u postalo je zlatni standard za obavljanje ad-hoc pretraživanja, sažimanje i analizu Hadoop podataka. Kada je uključen u oblak računalne mreže, ovo rješenje posebno je isplativo i skalabilno, zbog čega mnoge tvrtke, uključujući Netflix i Amazon, nastavljaju razvijati i poboljšavati Apache Hive.
Povijest
Tijekom svog vremena na Facebooku, Joydeep Sen Sarma i Ashish Suchoo zajedno su stvorili Apache Hive. Oboje su prepoznali da će morati izraditi neke prilično komplicirane zadatke Java Map-Reduce kako bi izvukli maksimum iz Hadoopa. Shvatili su da neće biti u mogućnosti educirati svoje inženjerske i analitičke timove koji se brzo šire o vještinama koje će im trebati za korištenje Hadoopa u cijeloj tvrtki. Inženjeri i analitičari često su koristili SQL kao korisničko sučelje.
Iako bi SQL mogao zadovoljiti većinu analitičkih potreba, programeri su također namjeravali uključiti Hadoopovu programibilnost. Apache Hive je proizašao iz ova dva cilja: deklarativnog jezika utemeljenog na SQL-u koji je također omogućio programerima da unesu vlastite skripte i programe kada SQL nije bio dovoljan.
Također je razvijen za držanje centraliziranih metapodataka (temeljenih na Hadoopu) o svim skupovima podataka u tvrtki kako bi se olakšala konstrukcija organizacija vođenih podacima.
Kako Apache Hive radi?
Ukratko, Apache Hive pretvara program za unos napisan u jeziku HiveQL (sličan SQL-u) u jedan ili više zadataka Java MapReduce, Tez ili Spark. (Svi su ovi pokretači za izvršavanje kompatibilni s Hadoop YARN.) Nakon toga, Apache Hive raspoređuje podatke u tablice za Hadoop Distributed File System HDFS) i izvršava zadatke na klasteru kako bi dobio odgovor.
Datum
Tablice Apache Hive uređene su na isti način kao što su organizirane tablice u relacijskoj bazi podataka, s jedinicama podataka u rasponu veličine od većih do manjih. Baze podataka se sastoje od tablica koje su podijeljene u podjele, koje se dalje dijele na segmente. HiveQL (Hive Query Language) koristi se za pristup podacima koji se mogu mijenjati ili dodavati. Podaci tablice se serijaliziraju unutar svake baze podataka, a svaka tablica ima svoj HDFS direktorij.
Arhitektura
Sada ćemo govoriti o najvažnijem aspektu arhitekture košnice. Komponente Apache Hive su sljedeće:
Metastore — Prati informacije o svakoj tablici, kao što su njezina struktura i lokacija. Metapodaci particije također su uključeni u Hive. To omogućuje vozaču da prati napredak različitih skupova podataka raspoređenih po klasteru. Podaci se pohranjuju u konvencionalnom RDBMS formatu. Metapodaci košnice iznimno su važni za vozača kako bi pratio podatke. Poslužitelj sigurnosne kopije redovito duplicira podatke kako bi se mogli oporaviti u slučaju gubitka podataka.
vozač – HiveQL izjave prima upravljački program koji funkcionira kao kontroler. Uspostavljanjem sesija, vozač pokreće izvršenje izjave. Prati životni vijek i napredak izvršne vlasti. Tijekom izvršavanja naredbe HiveQL, upravljački program sprema tražene metapodatke. Također služi kao mjesto prikupljanja podataka ili rezultata upita nakon procesa Reduce.
kompajler – Izvršava HiveQL kompilaciju upita. Upit se sada pretvara u plan izvršenja. Zadaci su navedeni u planu. Također uključuje korake koje MapReduce mora poduzeti da bi dobio rezultat kako je preveden upitom. Upit se pretvara u stablo apstraktne sintakse od strane Hiveovog prevoditelja (AST). Pretvara AST u usmjereni aciklički graf nakon provjere kompatibilnosti i grešaka u vremenu prevođenja (DAG).
optimizaciju – Optimizira DAG izvođenjem različitih promjena na planu izvršenja. Kombinira transformacije za poboljšanu učinkovitost, kao što je pretvaranje cjevovoda spojeva u jedan spoj. Kako bi poboljšao brzinu, optimizator može podijeliti aktivnosti, kao što je primjena transformacije na podatke prije izvođenja operacije redukcije.
izvršitelj – Izvršitelj pokreće zadatke kada se završi kompilacija i optimizacija. Poslove dogovara Izvršitelj.
CLI, korisničko sučelje i Thrift Server – Sučelje naredbenog retka (CLI) korisničko je sučelje koje omogućuje vanjskom korisniku komunikaciju s Hiveom. Hiveov štedljivi poslužitelj, sličan JDBC ili ODBC protokolima, omogućuje vanjskim klijentima da komuniciraju s Hiveom putem mreže.
Sigurnost
Apache Hive je integriran s Hadoop sigurnošću, koja koristi Kerberos za međusobnu provjeru autentičnosti klijent-poslužitelj. HDFS diktira dopuštenja za novogenerirane datoteke u Apache Hiveu, omogućujući vam da odobrite korisnik, grupa i drugi.
Ključne značajke
- Hive podržava vanjske tablice koje vam omogućuju obradu podataka bez pohranjivanja u HDFS.
- Također omogućuje segmentaciju podataka na razini tablice radi povećanja brzine.
- Apache Hive izvrsno zadovoljava potrebe Hadoopovog sučelja niske razine.
- Hive olakšava sažimanje podataka, postavljanje upita i analizu.
- HiveQL ne zahtijeva nikakve vještine programiranja; dovoljno je jednostavno razumijevanje SQL upita.
- Također možemo koristiti Hive za obavljanje ad-hoc upita za analizu podataka.
- Skalabilan je, poznat i prilagodljiv.
- HiveQL ne zahtijeva nikakve vještine programiranja; dovoljno je jednostavno razumijevanje SQL upita.
Prednosti
Apache Hive omogućuje izvješća na kraju dana, dnevne procjene transakcija, ad-hoc pretraživanja i analizu podataka. Sveobuhvatni uvidi koje pruža Apache Hive daju značajne konkurentske prednosti i olakšavaju vam da odgovorite na zahtjeve tržišta.
Evo nekih od prednosti dostupnosti takvih informacija:
- Jednostavnost korištenja – Sa svojim jezikom sličnim SQL-u, upiti prema podacima jednostavno su razumljivi.
- Ubrzano umetanje podataka — Budući da Apache Hive čita shemu bez provjere tipa tablice ili definicije sheme, podaci se ne moraju čitati, analizirati i serijalizirati na disk u internom formatu baze podataka. Nasuprot tome, u konvencionalnoj bazi podataka, podaci moraju biti provjereni svaki put kada se dodaju.
- Vrhunska skalabilnost, fleksibilnost i isplativost – Budući da su podaci pohranjeni u HDFS, Apache Hive može sadržavati 100 petabajta podataka, što ga čini daleko skalabilnijom opcijom od tipične baze podataka. Apache Hive, kao usluga Hadoop temeljena na oblaku, korisnicima omogućuje brzo okretanje virtualnih poslužitelja gore-dolje kako bi zadovoljili promjenjive radne opterećenja.
- Opsežan radni kapacitet – Veliki skupovi podataka mogu obraditi do 100,000 upita po satu.
Ograničenja
- Općenito, upiti Apache Hive imaju vrlo veliko kašnjenje.
- Podrška za podupit je ograničena.
- Upiti u stvarnom vremenu i promjene na razini reda nisu dostupni u Apache Hiveu.
- Ne postoji podrška za materijalizirane poglede.
- U košnici radnje ažuriranja i brisanja nisu podržane.
- Nije namijenjeno za OLTP (online prijelazni proces).
Početak rada s Apache Hive
Apache Hive je snažan Hadoop partner koji pojednostavljuje i pojednostavljuje vaše radne tijekove. Kako biste izvukli maksimum iz Apache Hivea, neophodna je besprijekorna integracija. Prvi korak je otići do web stranicu.
1. Instalacijski Hive iz stabilnog izdanja
Započnite preuzimanjem najnovijeg stabilnog izdanja Hive s jednog od zrcala za preuzimanje Apachea (vidi Oslobađanja košnice). Tarball se tada mora raspakirati. Ovo će stvoriti podmapu pod nazivom hive-xyz (gdje je xyz broj izdanja):
Postavite varijablu okoline HIVE_HOME da pokazuje na instalacijski direktorij:
Konačno, dodajte $HIVE_HOME/bin u svoj PATH
:
2. Trčanje košnice
Hive koristi Hadoop, dakle:
- morate imati Hadoop na svom putu ILI
3. DLL rad
Izrada tablice košnica
generira tablicu pod nazivom pokes s dva stupca, od kojih je prvi cijeli broj, a drugi niz.
Pregledavanje tablica
Popis svih tablica
Izmjena i ispuštanje tablica
Nazivi tablica se mogu mijenjati i stupci se mogu dodati ili zamijeniti:
Vrijedi napomenuti da REPLACE COLUMNS zamjenjuje sve postojeće stupce, a samo mijenja strukturu tablice, a ne podatke. U tablici se mora koristiti izvorni SerDe. REPLACE COLUMNS se također može koristiti za uklanjanje stupaca iz sheme tablice:
Ispuštanje tablica
Postoje mnoge dodatne operacije i značajke u Apache Hiveu o kojima možete saznati posjetom službenoj web stranici.
Zaključak
Definicija košnice je podatkovno programsko sučelje za upite i analizu za ogromne skupove podataka koji su izgrađeni na vrhu Apache Hadoop-a. Profesionalci ga biraju u odnosu na druge programe, alate i softver jer je uglavnom dizajniran za Hive opsežne podatke i jednostavan je za korištenje.
Nadamo se da će vam ovaj vodič pomoći da pokrenete Apache Hive i učinite svoje radne tijekove učinkovitijim. Javite nam se u komentarima.
Ostavi odgovor