Hive är ett flitigt använt Big Data Analytics-verktyg i verksamheten, och det är ett fantastiskt ställe att börja om du är ny på Big Data. Denna Apache Hive-lektion går igenom grunderna i Apache Hive, varför en bikupa är nödvändig, dess funktioner och allt annat du bör veta.
Låt oss först förstå Hadoop-ramverket som Apache Hive bygger på.
Apache Hadoop
Apache Hadoop är en gratis och öppen källkod plattform för att lagra och bearbeta stora datamängder som sträcker sig i storlek från gigabyte till petabyte. Hadoop tillåter klustring av många datorer för att analysera enorma datauppsättningar parallellt, snarare än att kräva en enda stor dator för att lagra och analysera data.
MapReduce och Hadoop Distributed File System är två av komponenterna:
- MapReduce – MapReduce är en parallell programmeringsteknik för att hantera enorma volymer av organiserad, semi-strukturerad och ostrukturerad data på råvaruhårdvarukluster.
- HDFS – HDFS (Hadoop Distributed File System) är en Hadoop-ramverkskomponent som lagrar och bearbetar data. Det är ett feltolerant filsystem som körs på standardhårdvara
Olika delprojekt (verktyg) i Hadoop-ekosystemet, inklusive Sqoop, Pig och Hive, används för att hjälpa Hadoop-moduler.
- Bikupa – Hive är ett ramverk för att skriva skript i SQL-stil som utför MapReduce-beräkningar.
- Pig – Pig är ett procedurprogrammeringsspråk som kan användas för att skapa ett skript för MapReduce-processer.
- Sqoop – Sqoop är ett verktyg för att importera och exportera data mellan HDFS och RDBMS.
Vad är Apache-bikupan?
Apache Hive är en öppen källkod datalagret program för att läsa, skriva och hantera enorma datamängder lagrade direkt i Apache Hadoop Distributed File System (HDFS) eller andra datalagringssystem som Apache HBase.
SQL-utvecklare kan använda Hive för att skapa Hive Query Language-satser (HQL) för datafrågor och analys som är jämförbara med vanliga SQL-satser. Det skapades för att göra MapReduce-programmering enklare genom att eliminera behovet av att lära sig och skriva lång Java-kod. Istället kan du skriva dina frågor i HQL, så bygger Hive kartan och minskar funktionerna åt dig.
Det SQL-liknande gränssnittet i Apache Hive har blivit guldstandarden för att utföra ad-hoc-sökningar, sammanfatta och analysera Hadoop-data. När det ingår i molnet datornätverk, denna lösning är särskilt kostnadseffektiv och skalbar, vilket är anledningen till att många företag, inklusive Netflix och Amazon, fortsätter att utveckla och förbättra Apache Hive.
historik
Under sin tid på Facebook skapade Joydeep Sen Sarma och Ashish Thusoo Apache Hive. De insåg båda att för att få ut det mesta av Hadoop måste de skapa några ganska komplicerade Java Map-Reduce-uppgifter. De insåg att de inte skulle kunna utbilda sina snabbt växande ingenjörs- och analysteam om de färdigheter de skulle behöva för att utnyttja Hadoop i hela företaget. Ingenjörer och analytiker använde ofta SQL som användargränssnitt.
Även om SQL kunde tillgodose de flesta analysbehov, tänkte utvecklarna också införliva Hadoops programmerbarhet. Apache Hive uppstod ur dessa två mål: ett SQL-baserat deklarativt språk som även gjorde det möjligt för utvecklare att ta in sina egna skript och program när SQL inte räckte.
Den utvecklades också för att hålla centraliserad metadata (Hadoop-baserad) om alla datauppsättningar i företaget för att göra konstruktionen av datadrivna organisationer enklare.
Hur fungerar Apache Hive?
I ett nötskal konverterar Apache Hive ett inmatningsprogram skrivet i HiveQL-språket (SQL-liknande) till en eller flera Java MapReduce-, Tez- eller Spark-uppgifter. (Alla dessa exekveringsmotorer är kompatibla med Hadoop YARN.) Efter det arrangerar Apache Hive data i tabeller för Hadoop Distributed File System HDFS) och utför uppgifterna på ett kluster för att få ett svar.
Data
Apache Hive-tabellerna är ordnade på samma sätt som tabeller i en relationsdatabas är organiserade, med dataenheter som varierar i storlek från större till mindre. Databaser är uppbyggda av tabeller som är indelade i divisioner, som ytterligare är uppdelade i hinkar. HiveQL (Hive Query Language) används för att komma åt data, som kan ändras eller läggas till. Tabelldata serialiseras i varje databas och varje tabell har sin egen HDFS-katalog.
arkitektur
Nu ska vi prata om den viktigaste aspekten av Hive Architecture. Komponenterna i Apache Hive är följande:
Metastore — Den håller reda på information om varje tabell, som dess struktur och plats. Partitionsmetadata ingår också i Hive. Detta gör att föraren kan hålla reda på utvecklingen av olika datamängder spridda över klustret. Data lagras i ett konventionellt RDBMS-format. Hive-metadata är extremt viktigt för att föraren ska kunna hålla koll på datan. Säkerhetskopieringsservern duplicerar data regelbundet så att de kan återställas i händelse av dataförlust.
Chaufför – HiveQL-satser tas emot av en drivrutin, som fungerar som en styrenhet. Genom att upprätta sessioner initierar föraren exekveringen av uttalandet. Den håller reda på chefens livslängd och framsteg. Under körningen av en HiveQL-sats sparar drivrutinen den nödvändiga metadatan. Den fungerar också som en insamlingspunkt för data eller frågeresultat efter minskningsprocessen.
Kompilator – Den kör HiveQL-frågekompileringen. Frågan konverteras nu till en exekveringsplan. Arbetsuppgifterna finns listade i planen. Den innehåller också de steg som MapReduce måste vidta för att få resultatet som översatts av frågan. Frågan konverteras till ett abstrakt syntaxträd av Hives kompilator (AST). Konverterar AST till en riktad acyklisk graf efter kontroll av kompatibilitet och kompileringstidsfel (DAG).
Optimizer – Den optimerar DAG genom att utföra olika förändringar på utförandeplanen. Den kombinerar transformationer för förbättrad effektivitet, som att förvandla en pipeline av sammanfogningar till en enda sammanfogning. För att förbättra hastigheten kan optimeraren dela upp aktiviteter, som att tillämpa en transformation på data innan en reduktionsåtgärd utförs.
Testamentsexekutor – Utföraren kör uppgifterna när kompileringen och optimeringen är klar. Jobben är pipelined av Executor.
CLI, UI och Thrift Server – Kommandoradsgränssnittet (CLI) är ett användargränssnitt som gör att en extern användare kan kommunicera med Hive. Hives sparsamhetsserver, liknande JDBC- eller ODBC-protokollen, tillåter externa klienter att kommunicera med Hive via ett nätverk.
Säkerhet
Apache Hive är integrerat med Hadoop-säkerhet, som använder Kerberos för ömsesidig autentisering av klient-server. HDFS dikterar behörigheter för nygenererade filer i Apache Hive, så att du kan godkänna av användaren, gruppen och andra.
Nyckelfunktioner
- Hive stöder externa tabeller, som låter dig bearbeta data utan att lagra den i HDFS.
- Det möjliggör också datasegmentering på tabellnivå för att öka hastigheten.
- Apache Hive möter utmärkt Hadoops behov av gränssnitt på låg nivå.
- Hive gör datasammanfattning, frågesökning och analys enklare.
- HiveQL kräver inga programmeringskunskaper; en enkel förståelse av SQL-frågor är tillräcklig.
- Vi kan också använda Hive för att utföra ad-hoc-frågor för dataanalys.
- Det är skalbart, bekant och anpassningsbart.
- HiveQL kräver inga programmeringskunskaper; en enkel förståelse av SQL-frågor är tillräcklig.
Fördelar
Apache Hive möjliggör slutrapporter, dagliga transaktionsutvärderingar, ad-hoc-sökningar och dataanalys. De omfattande insikterna från Apache Hive ger betydande konkurrensfördelar och gör det lättare för dig att svara på marknadens krav.
Här är några av fördelarna med att ha sådan information lättillgänglig:
- Användarvänlighet – Med sitt SQL-liknande språk är det enkelt att förstå datasökning.
- Accelererad datainsättning — Eftersom Apache Hive läser schemat utan att verifiera tabelltypen eller schemadefinitionen, behöver data inte läsas, analyseras och serialiseras till skiva i databasens interna format. Däremot måste data i en konventionell databas valideras varje gång den läggs till.
- Överlägsen skalbarhet, flexibilitet och kostnadseffektivitet – Eftersom data lagras i HDFS kan Apache Hive hålla 100-tals petabyte data, vilket gör det till ett mycket mer skalbart alternativ än en vanlig databas. Apache Hive, som en molnbaserad Hadoop-tjänst, tillåter kunder att snabbt snurra upp och ner virtuella servrar för att möta förändrade arbetsbelastningar.
- Omfattande arbetskapacitet – Stora datamängder kan hantera upp till 100,000 XNUMX frågor per timme.
Begränsningar
- I allmänhet har Apache Hive-frågor mycket hög latens.
- Undersökningsstödet är begränsat.
- Realtidsfrågor och ändringar på radnivå är inte tillgängliga i Apache Hive.
- Det finns inget stöd för materialiserade synpunkter.
- I kupan stöds inte uppdaterings- och raderingsåtgärder.
- Ej avsedd för OLTP (övergångsprocess online).
Komma igång med Apache Hive
Apache Hive är en stark Hadoop-partner som förenklar och effektiviserar dina arbetsflöden. För att få ut det mesta av Apache Hive är sömlös integration viktigt. Det första steget är att gå till webbplats.
1. Installation Hive från en stabil release
Börja med att ladda ner den senaste stabila versionen av Hive från en av Apache-nedladdningsspeglarna (se Hive Releases). Tarbollen måste sedan packas upp. Detta skapar en undermapp som heter hive-xyz (där xyz är releasenumret):
Ställ in miljövariabeln HIVE_HOME så att den pekar på installationskatalogen:
Slutligen, lägg till $HIVE_HOME/bin till din PATH
:
2. Running Hive
Hive använder Hadoop, så:
- du måste ha Hadoop i din väg ELLER
3. DLL-drift
Skapa Hive-tabell
genererar en tabell med namnet pokes med två kolumner, varav den första är ett heltal och den andra är en sträng.
Bläddra igenom tabeller
Lista alla tabeller
Ändra och släppa tabeller
Tabellnamn kan ändras och kolumner kan läggas till eller ersättas:
Det är värt att notera att REPLACE COLUMNS ersätter alla befintliga kolumner samtidigt som tabellens struktur ändras och inte data. En inbyggd SerDe måste användas i tabellen. ERSÄTT KOLUMNER kan också användas för att ta bort kolumner från schemat för en tabell:
Tappa tabeller
Det finns många ytterligare funktioner och funktioner i Apache Hive som du kan lära dig om genom att besöka den officiella webbplatsen.
Slutsats
Hive definition är ett dataprogramgränssnitt för sökning och analys av enorma datamängder som är byggda ovanpå Apache Hadoop. Proffs väljer det framför andra program, verktyg och mjukvara eftersom det huvudsakligen är utformat för Hive omfattande data och är enkelt att använda.
Hoppas den här handledningen hjälper dig att kickstarta med Apache Hive och göra dina arbetsflöden mer effektiva. Låt oss veta i kommentarerna.
Kommentera uppropet