Video: HDInsight: Fast Interactive Queries with Hive on LLAP | Azure Friday 2025
Mentre si esaminano gli elementi di Apache Hive mostrato, è possibile vedere in fondo che Hive si trova in cima al file system distribuito Hadoop (HDFS) e sistemi MapReduce.
Nel caso di MapReduce, i mostri sono entrambi i componenti Hadoop 1 e Hadoop 2. Con Hadoop 1, le query Hive vengono convertite in codice MapReduce ed eseguite utilizzando l'infrastruttura MapReduce v1 (MRv1), come JobTracker e TaskTracker.
Con Hadoop 2, YARN ha disgiunto la gestione delle risorse e la pianificazione dal framework MapReduce. Le query hive possono ancora essere convertite in codice MapReduce ed eseguite, ora con MapReduce v2 (MRv2) e l'infrastruttura YARN.
Esiste un nuovo framework in fase di sviluppo chiamato Apache Tez, progettato per migliorare le prestazioni Hive per query batch-style e supportare query interattive più piccole (note anche come in tempo reale ). Al momento della stesura, il progetto Apache Tez è ancora in fase di incubazione e non ha ancora una versione pronta per la produzione.
Se ti aiuta a visualizzare come tutti i pezzi combaciano, pensa ai sistemi HDFS e MapReduce come parti del sistema operativo Apache Hadoop, con Hive - così come ad altri componenti, come HBase - come funzioni o applicazioni di livello superiore. (È possibile vedere un tema comune emergere: HDFS fornisce l'archiviazione e MapReduce fornisce la capacità di elaborazione parallela per funzioni di livello superiore all'interno dell'ecosistema Hadoop.)
Spostando il diagramma, si trova Hive Driver, che compila, ottimizza ed esegue HiveQL. Hive Driver può scegliere di eseguire istruzioni e comandi HiveQL localmente o generare un lavoro MapReduce, in base all'attività in corso. Hive Driver memorizza i metadati della tabella nel metastore e nel suo database.
Probabilmente hai una certa familiarità con SQL e il modello di database relazionale del mondo di RDBMS. Una tabella o relazione è composta da colonne verticali e righe orizzontali. Le celle vengono memorizzate dove si incrociano le righe e le colonne. Se non hai familiarità con SQL e il modello di database relazionale, puoi trovare utili fonti di apprendimento usando il tuo motore di ricerca preferito.
Per impostazione predefinita, Hive include Apache Derby RDBMS configurato con metastore in quella che viene chiamata modalità incorporata. La modalità incorporata indica che Hive Driver, il metastore e Apache Derby sono tutti in esecuzione in una Java Virtual Machine (JVM).
Questa configurazione va bene per scopi di apprendimento, ma la modalità incorporata può supportare solo una singola sessione Hive, quindi normalmente non viene utilizzata negli ambienti di produzione multiutente.Esistono altre due modalità: locale e remoto - che possono supportare meglio più sessioni di hive negli ambienti di produzione. Inoltre, è possibile configurare qualsiasi RDBMS compatibile con la suite API (Application Programming Interface) JDBC (Java Database Connectivity). (Esempi qui includono MySQL e DB2.)
La chiave per il supporto delle applicazioni è Hive Thrift Server, che consente a un ricco insieme di client di accedere al sottosistema Hive. Il client SQL SQuirreL open source è incluso come esempio. Il punto principale è che qualsiasi applicazione compatibile con JDBC può accedere a Hive tramite il driver JDBC in dotazione.
La stessa affermazione vale per i client compatibili con Open Database Connectivity (ODBC) - ad esempio, unixODBC e l'utility isql, che in genere sono in bundle con Linux, consentono l'accesso a Hive da client Linux remoti.
Inoltre, se utilizzi Microsoft Excel, sarai felice di sapere che puoi accedere a Hive dopo aver installato il driver Microsoft ODBC sul tuo sistema client. Infine, se è necessario accedere a Hive da linguaggi di programmazione diversi da Java (PHP o Python, ad esempio), Apache Thrift è la risposta. I client Apache Thrift si connettono a Hive tramite Hive Thrift Server, proprio come fanno i client JDBC e ODBC.
Per continuare con il disegno dell'architettura Hive, si noti che Hive include un'interfaccia CLI (Command Line Interface), in cui è possibile utilizzare una finestra di terminale Linux per inviare query e comandi amministrativi direttamente al driver Hive. Se un approccio grafico è più veloce, c'è anche una comoda interfaccia web in modo da poter accedere alle tabelle e ai dati gestiti da Hive tramite il browser preferito.
Esiste un'altra tecnologia del browser Web nota come Hue che fornisce un'interfaccia utente grafica (GUI) ad Apache Hive. Ad alcuni utenti di Hadoop piace avere una GUI a loro disposizione invece di una semplice interfaccia a riga di comando (CLI). Insieme a Hive, Hue supporta anche altre tecnologie Hadoop come HDFS, MapReduce / YARN, HBase, Zookeeper, Oozie, Pig e Sqoop. Ti piacerà il nome di Hue Apache Hive GUI - si chiama Beeswax.
