Video: Hadoop and R 2024
Terwijl je de elementen van Apache Hive bekijkt, kun je onderaan zien dat Hive bovenop het Hadoop Distributed File System (HDFS) zit) en MapReduce-systemen.
In het geval van MapReduce geven de figuren zowel de Hadoop 1- als Hadoop 2-componenten weer. Met Hadoop 1 worden Hive-query's geconverteerd naar MapReduce-code en uitgevoerd met de infrastructuur MapReduce v1 (MRv1), zoals de JobTracker en TaskTracker.
Met Hadoop 2 heeft YARN middelenbeheer en planning ontkoppeld van het MapReduce-raamwerk. Hive-query's kunnen nog steeds worden geconverteerd naar MapReduce-code en uitgevoerd, nu met MapReduce v2 (MRv2) en de YARN-infrastructuur.
Er is een nieuw framework in ontwikkeling genaamd Apache Tez, dat is ontworpen om de prestaties van Hive voor query's in batchstijlen te verbeteren en kleinere interactieve (ook wel real-time ) query's te ondersteunen. Op het moment van schrijven is het Apache Tez-project nog steeds in incubatie en heeft het nog geen productie-ready release.
Als het u helpt te visualiseren hoe alle stukjes bij elkaar passen, denk dan aan de HDFS- en MapReduce-systemen als onderdelen van het Apache Hadoop-besturingssysteem, met Hive - evenals andere componenten, zoals HBase - als functies of toepassingen op een hoger niveau. (Je ziet een algemeen thema naar voren komen: HDFS biedt de opslag en MapReduce biedt de parallelle verwerkingscapaciteit voor functies op een hoger niveau binnen het Hadoop-ecosysteem.)
Als u het diagram omhoog gaat, vindt u de Hive Driver, die de HiveQL compileert, optimaliseert en uitvoert. De Hive Driver kan ervoor kiezen om HiveQL-instructies en opdrachten lokaal uit te voeren of een MapReduce-taak uit te voeren, afhankelijk van de taak die voorhanden is. De Hive Driver bewaart tabelmetadata in de metastore en zijn database.
U hebt waarschijnlijk enige vertrouwdheid met SQL en het relationele databasemodel uit de wereld van RDBMSs. Een tabel of relatie is samengesteld uit verticale kolommen en horizontale rijen. Cellen worden opgeslagen waar de rijen en kolommen elkaar kruisen. Als u niet vertrouwd bent met SQL en het relationele databasemodel, kunt u nuttige leerbronnen vinden met behulp van uw favoriete zoekmachine.
Standaard bevat Hive de Apache Derby RDBMS die is geconfigureerd met de metastore in de zogenaamde ingebedde modus. Ingesloten modus betekent dat de Hive Driver, de metastore en Apache Derby allemaal in één Java Virtual Machine (JVM) worden uitgevoerd.
Deze configuratie is prima voor leerdoeleinden, maar de ingesloten modus kan slechts één enkele Hive-sessie ondersteunen, dus wordt deze normaal niet gebruikt in productieomgevingen met meerdere gebruikers.Er zijn twee andere modi: lokaal en extern - die meerdere Hive-sessies in productieomgevingen beter kunnen ondersteunen. U kunt ook elk RDBMS configureren dat compatibel is met de Java Database Connectivity (JDBC) Application Programming Interface (API) -suite. (Voorbeelden hiervan zijn MySQL en DB2.)
De sleutel tot applicatieondersteuning is de Hive Thrift Server, waarmee een uitgebreide set clients toegang heeft tot het Hive-subsysteem. De opensource SQuirreL SQL-client is als voorbeeld opgenomen. Het belangrijkste punt is dat elke JDBC-compatibele applicatie toegang kan krijgen tot Hive via het gebundelde JDBC-stuurprogramma.
Dezelfde verklaring is van toepassing op clients die voldoen aan Open Database Connectivity (ODBC). UnixODBC en het isql-hulpprogramma, bijvoorbeeld, worden meestal gebundeld met Linux en geven toegang tot Hive vanaf externe Linux-clients.
Als u bovendien Microsoft Excel gebruikt, zult u blij zijn te weten dat u Hive kunt gebruiken nadat u het Microsoft ODBC-stuurprogramma op uw clientsysteem hebt geïnstalleerd. Ten slotte, als je toegang tot Hive nodig hebt vanuit andere programmeertalen dan Java (bijvoorbeeld PHP of Python), is Apache Thrift het antwoord. Apache Thrift-clients maken via de Hive Thrift Server verbinding met Hive, net zoals de JDBC- en ODBC-clients.
Om verder te gaan met de Hive-architectuurtekening, houd er rekening mee dat Hive een opdrachtregelinterface (CLI) bevat, waar u een Linux-terminalvenster kunt gebruiken om query's en beheeropdrachten rechtstreeks naar de Hive Driver uit te voeren. Als een grafische benadering meer uw snelheid is, is er ook een handige webinterface zodat u via uw favoriete browser toegang hebt tot uw door Hive beheerde tabellen en gegevens.
Er is nog een webbrowsertechnologie bekend als Hue die een grafische gebruikersinterface (GUI) biedt voor Apache Hive. Sommige Hadoop-gebruikers hebben graag een GUI tot hun beschikking in plaats van alleen een opdrachtregelinterface (CLI). Naast Hive ondersteunt Hue ook andere belangrijke Hadoop-technologieën zoals HDFS, MapReduce / YARN, HBase, Zookeeper, Oozie, Pig en Sqoop. Je zult de naam van Hue's Apache Hive GUI leuk vinden - het heet Bijenwas.