Integrare Apache Zeppelin con Hive Warehouse Connector in Azure HDInsight

I cluster HDInsight Spark includono i notebook Apache Zeppelin con diversi interpreti. In questo articolo viene illustrato solo l'interprete Livy per accedere alle tabelle Hive da Spark usando Hive Warehouse Connessione or.

Nota

Questo articolo contiene riferimenti a un termine che Microsoft non usa più. Quando il termine verrà rimosso dal software, verrà rimosso anche dall'articolo.

Prerequisito

Completare la procedura di configurazione di Hive Warehouse Connector.

Introduzione

  1. Usare il comando ssh per connettersi al cluster Apache Spark. Modificare il comando seguente sostituendo CLUSTERNAME con il nome del cluster e quindi immettere il comando :

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. Nella sessione ssh eseguire il comando seguente per prendere nota delle versioni per hive-warehouse-connector-assembly e pyspark_hwc:

    ls /usr/hdp/current/hive_warehouse_connector
    

    Salvare l'output per usarlo in seguito durante la configurazione di Apache Zeppelin.

Configurare Livy

Le configurazioni seguenti sono necessarie per accedere alle tabelle di Hive da Zeppelin con l'interprete Livy.

Cluster Interactive Query

  1. In un Web browser passare a https://LLAPCLUSTERNAME.azurehdinsight.net/#/main/services/HDFS/configs, dove LLAPCLUSTERNAME è il nome del cluster Interactive Query.

  2. Passare a Advanced (Avanzate)>Custom core-site (Impostazioni core-site personalizzate). Selezionare Add Property (Aggiungi proprietà) per aggiungere le configurazioni seguenti:

    Impostazione Valore
    hadoop.proxyuser.livy.groups *
    hadoop.proxyuser.livy.hosts *
  3. Salvare le modifiche e riavviare tutti i componenti interessati.

Cluster Spark

  1. In un Web browser passare a https://CLUSTERNAME.azurehdinsight.net/#/main/services/SPARK2/configs, dove CLUSTERNAME è il nome del cluster Apache Spark.

  2. Espandere Custom livy2-conf (Configurazione livy2 personalizzata). Selezionare Add Property... (Aggiungi proprietà...) per aggiungere le configurazioni seguenti:

    Impostazione Valore
    livy.file.local-dir-whitelist /usr/hdp/current/hive_warehouse_connector/
  3. Salvare le modifiche e riavviare tutti i componenti interessati.

Configurare l'interprete Livy nell'interfaccia utente di Zeppelin (cluster Spark)

  1. In un Web browser passare a https://CLUSTERNAME.azurehdinsight.net/zeppelin/#/interpreter, dove CLUSTERNAME è il nome del cluster Apache Spark.

  2. Passare a livy2.

  3. Aggiungere le configurazioni seguenti:

    Impostazione Valore
    livy.spark.hadoop.hive.llap.daemon.service.hosts @llap0
    livy.spark.security.credentials.hiveserver2.enabled true
    livy.spark.sql.hive.llap true
    livy.spark.yarn.security.credentials.hiveserver2.enabled true
    livy.superusers livy, zeppelin
    livy.spark.jars file:///usr/hdp/current/hive_warehouse_connector/hive-warehouse-connector-assembly-VERSION.jar.
    Sostituire VERSION con il valore ottenuto nella Guida introduttiva precedente.
    livy.spark.submit.pyFiles file:///usr/hdp/current/hive_warehouse_connector/pyspark_hwc-VERSION.zip.
    Sostituire VERSION con il valore ottenuto nella Guida introduttiva precedente.
    livy.spark.sql.hive.hiveserver2.jdbc.url Impostarlo sull'URL JDBC interattivo per HiveServer2 del cluster Interactive query.
    spark.security.credentials.hiveserver2.enabled true
  4. Solo per i cluster ESP, aggiungere la configurazione seguente:

    Impostazione Valore
    livy.spark.sql.hive.hiveserver2.jdbc.url.principal hive/_HOST@<AAD-Domain>
    • Usare il comando ssh per connettersi al cluster Interactive Query. default_realm Cercare il /etc/krb5.conf parametro nel file. Sostituire <AAD-DOMAIN> con questo valore come stringa maiuscola. In caso contrario, non è possibile trovare le credenziali.

      hive warehouse connector AAD Domain.

  5. Salvare le modifiche e riavviare l'interprete Livy.

Se l'interprete Livy non è accessibile, modificare il file shiro.ini presente nel componente Zeppelin in Ambari. Per altre informazioni, vedere Configurare la sicurezza di Apache Zeppelin.

Esecuzione di query in Zeppelin

Avviare un notebook Zeppelin con l'interprete Livy ed eseguire le operazioni seguenti

%livy2

import com.hortonworks.hwc.HiveWarehouseSession
import com.hortonworks.hwc.HiveWarehouseSession._
import org.apache.spark.sql.SaveMode

# Initialize the hive context
val hive = HiveWarehouseSession.session(spark).build()

# Create a database
hive.createDatabase("hwc_db",true)
hive.setDatabase("hwc_db")

# Create a Hive table
hive.createTable("testers").ifNotExists().column("id", "bigint").column("name", "string").create()

val dataDF = Seq( (1, "foo"), (2, "bar"), (8, "john")).toDF("id", "name")

# Validate writes to the table
dataDF.write.format("com.hortonworks.spark.sql.hive.llap.HiveWarehouseConnector").mode("append").option("table", "hwc_db.testers").save()

# Validate reads
hive.executeQuery("select * from testers").show()

Passaggi successivi