Video: Arkitekturverksted 7: Funksjonalismen - armert betong 2024
När du granskar elementen i Apache Hive som visas kan du se längst ner att Hive sitter ovanpå Hadoop Distributed File System (HDFS) och MapReduce-system.
När det gäller MapReduce, visar figurerna både Hadoop 1 och Hadoop 2-komponenterna. Med Hadoop 1 konverteras Hive-frågor till MapReduce-kod och körs med hjälp av MapReduce v1 (MRv1) -infrastrukturen, som JobTracker och TaskTracker.
Med Hadoop 2 har YARN frikopplat resurshantering och schemaläggning från MapReduce-ramen. Hive-frågor kan fortfarande konverteras till MapReduce-kod och körs, nu med MapReduce v2 (MRv2) och YARN-infrastrukturen.
Det finns en ny ram under utveckling, kallad Apache Tez, som är utformad för att förbättra Hive-prestanda för batch-stilfrågor och stödja mindre interaktiva (även kända som realtid ) frågor. Apache Tez-projektet är fortfarande i inkubation och har ännu inte en produktionsklar utgåva.
Om det hjälper dig att visualisera hur alla bitar passar ihop, tänk på HDFS och MapReduce-systemen som delar av Apache Hadoop-operativsystemet, med Hive - liksom andra komponenter, såsom HBase - som högre nivå funktioner eller applikationer. (Du kan se ett gemensamt tema: HDFS tillhandahåller lagringen, och MapReduce ger parallell bearbetningskapacitet för högre funktioner inom Hadoop ekosystem.)
Förflyttning av diagrammet hittar du Hive Driver, som kompilerar, optimerar och kör HiveQL. Hive-drivrutinen kan välja att utföra HiveQL-satser och kommandon lokalt eller hämta ett MapReduce-jobb, beroende på uppgiften vid handen. Hive Driver lagrar tabellen metadata i metastoren och dess databas.
Du har nog förtrogen med SQL och relationsdatabasmodellen från RDBMS-världen. En tabell eller relation består av vertikala kolumner och horisontella rader. Celler lagras där raderna och kolumnerna skärs. Om du inte är bekant med SQL och relationsdatabasmodellen hittar du hjälpsamma inlärningskällor med din favorit sökmotor.
Som standard innehåller Hive Apache Derby RDBMS konfigurerad med metastoren i det som kallas inbäddat läge. Embedded mode innebär att Hive Driver, metastore och Apache Derby körs i en Java Virtual Machine (JVM).
Denna konfiguration är bra för inlärningsändamål, men inbyggt läge kan endast stödja en enda Hive-session, så det används normalt inte i flera användarmiljöer.Två andra lägen finns - Local och Remote - som bättre kan stödja flera Hive-sessioner i produktionsmiljöer. Du kan också konfigurera alla RDBMS som är kompatibla med Java Database Connectivity (JDBC) Application Programming Interface (API). (Exempel här inkluderar MySQL och DB2.)
Nyckeln till applikationssupport är Hive Thrift Server, som gör det möjligt för en rik uppsättning kunder att komma åt Hive-delsystemet. SQuirreL SQL-klienten med öppen källkod ingår som ett exempel. Huvuddelen är att varje JDBC-kompatibel applikation kan komma åt Hive via den medföljande JDBC-drivrutinen.
Samma uttalande gäller för klienter som överensstämmer med ODBC (Open Database Connectivity) - till exempel, unixODBC och isql-verktyget, som typiskt är buntade med Linux, möjliggör åtkomst till Hive från avlägsna Linux-klienter.
Dessutom, om du använder Microsoft Excel, är du glad att veta att du kan komma åt Hive efter att du installerat Microsoft ODBC-drivrutinen på ditt klientsystem. Slutligen, om du behöver komma åt Hive från andra programmerings språk än Java (PHP eller Python, till exempel) är Apache Thrift svaret. Apache Thrift klienter ansluter till Hive via Hive Thrift Server, precis som JDBC och ODBC klienter gör.
För att fortsätta med Hive-arkitekturritningen, notera att Hive innehåller ett kommandoradsgränssnitt (CLI), där du kan använda ett Linux-terminalfönster för att utfärda frågor och administrativa kommandon direkt till Hive Driver. Om ett grafiskt tillvägagångssätt är mer din hastighet finns det också ett praktiskt webbgränssnitt så att du kan komma åt dina Hive-hanterade tabeller och data via din favoritbläddrare.
Det finns en annan webbläsarteknologi som heter Hue som ger ett grafiskt användargränssnitt (GUI) till Apache Hive. Vissa Hadoop-användare gillar att ha en GUI till sitt förfogande istället för bara ett kommandoradsgränssnitt (CLI). Tillsammans med Hive stöder Hue andra viktiga Hadoop-teknologier, liksom HDFS, MapReduce / YARN, HBase, Zookeeper, Oozie, Pig och Sqoop. Du kommer att ha namnet på Hue's Apache Hive GUI - det heter Beeswax.