Integrare query di Apache Spark e Hive LLAP
Nell'unità precedente sono stati esaminati due modi per eseguire query sui dati statici archiviati in un cluster Interactive Query, Data Analytics Studio e un notebook Zeppelin. Cosa accade tuttavia se si vogliono trasmettere i dati di una nuova attività immobiliare nei cluster usando Spark e quindi eseguire query con Hive? Dato che Hive e Spark hanno due metastore diversi, richiedono un connettore per creare un bridge, ovvero HWC (Apache Hive Warehouse Connector). La libreria di Hive Warehouse Connector consente di lavorare più facilmente con Apache Spark e Apache Hive supportando attività come lo spostamento dei dati tra frame di dati di Spark e tabelle di Hive e l'indirizzamento dei dati in streaming di Spark in tabelle di Hive. Il connettore non verrà configurato in questo scenario, ma è importante tenere presente che l'opzione esiste.
L'API Structured Streaming di Apache Spark offre funzionalità di flusso non disponibili in Apache Hive. A partire da HDInsight 4.0, Apache Spark 2.3.1 e Apache Hive 3.1.0 hanno metastore separati, per cui l'interoperabilità risulta difficile. Hive Warehouse Connector rende più semplice l'uso combinato di Spark e Hive. La libreria di Hive Warehouse Connector carica i dati da daemon LLAP in executor Spark in parallelo, rendendoli più efficienti e scalabili rispetto all'uso di una connessione JDBC standard da Spark ad Hive.
Alcune delle operazioni supportate da Hive Warehouse Connector sono:
- Descrizione di una tabella
- Creazione di una tabella per dati in formato ORC (Optimized Row Columnar)
- Selezione di dati Hive e recupero di un dataframe
- Scrittura di un dataframe in Hive in batch
- Esecuzione di un'istruzione di aggiornamento di Hive
- Lettura dei dati di una tabella da Hive, trasformazione in Spark e scrittura in una nuova tabella Hive
- Scrittura di un dataframe o di un flusso di Spark in Hive tramite HiveStreaming
Dopo aver distribuito un cluster Spark e un cluster Interactive Query, è possibile configurare le impostazioni del cluster Spark in Ambari, uno strumento basato sul Web incluso in tutti i cluster HDInsight. Per aprire Ambari, passare a https://servername.azurehdinsight.net nel browser Internet, dove servername è il nome del cluster Interactive Query.
Quindi, per scrivere i dati in streaming di Spark nelle tabelle, creare una tabella Hive e iniziare a scrivere i dati. Eseguire quindi query sui dati in streaming, usando uno dei seguenti elementi:
- spark-shell
- PySpark
- spark-submit
- Zeppelin
- Livy