Delen via


Apache Zeppelin integreren met Hive Warehouse Verbinding maken or in Azure HDInsight

HDInsight Spark-clusters bevatten Apache Zeppelin-notebooks met verschillende interpreters. In dit artikel richten we ons alleen op de Livy-interpreter voor toegang tot Hive-tabellen vanuit Spark met behulp van Hive Warehouse Verbinding maken or.

Notitie

Dit artikel bevat verwijzingen naar een term die microsoft niet meer gebruikt. Zodra de term uit de software wordt verwijderd, verwijderen we deze uit dit artikel.

Vereiste

Voltooi de installatiestappen van Hive Warehouse Verbinding maken or.

Aan de slag

  1. Gebruik de ssh-opdracht om verbinding te maken met uw Apache Spark-cluster. Bewerk de volgende opdracht door CLUSTERNAME te vervangen door de naam van uw cluster en voer vervolgens de opdracht in:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. Voer vanuit uw ssh-sessie de volgende opdracht uit om de versies voor hive-warehouse-connector-assembly en pyspark_hwc:

    ls /usr/hdp/current/hive_warehouse_connector
    

    Sla de uitvoer op voor later gebruik bij het configureren van Apache Zeppelin.

Livy configureren

De volgende configuraties zijn vereist voor toegang tot hive-tabellen vanuit Zeppelin met de Livy-interpreter.

Interactive Query Cluster

  1. Navigeer in een webbrowser naar https://LLAPCLUSTERNAME.azurehdinsight.net/#/main/services/HDFS/configs de locatie waar LLAPCLUSTERNAME de naam van uw Interactive Query-cluster is.

  2. Navigeer naar geavanceerde>aangepaste kernsite. Selecteer Eigenschap toevoegen... om de volgende configuraties toe te voegen:

    Configuratie Weergegeven als
    hadoop.proxyuser.livy.groups *
    hadoop.proxyuser.livy.hosts *
  3. Sla wijzigingen op en start alle betrokken onderdelen opnieuw op.

Spark-cluster

  1. Navigeer in een webbrowser naar https://CLUSTERNAME.azurehdinsight.net/#/main/services/SPARK2/configs de locatie waar CLUSTERNAME de naam van uw Apache Spark-cluster is.

  2. Vouw Custom livy2-conf uit. Selecteer Eigenschap toevoegen... om de volgende configuratie toe te voegen:

    Configuratie Weergegeven als
    livy.file.local-dir-whitelist /usr/hdp/current/hive_warehouse_connector/
  3. Sla wijzigingen op en start alle betrokken onderdelen opnieuw op.

Livy-interpreter configureren in de Gebruikersinterface van Zeppelin (Spark-cluster)

  1. Navigeer in een webbrowser naar https://CLUSTERNAME.azurehdinsight.net/zeppelin/#/interpreter, waar CLUSTERNAME is de naam van uw Apache Spark-cluster.

  2. Navigeer naar livy2.

  3. Voeg de volgende configuraties toe:

    Configuratie Weergegeven als
    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.
    Vervang VERSION door de waarde die u hebt verkregen bij Aan de slag, eerder.
    livy.spark.submit.pyFiles file:///usr/hdp/current/hive_warehouse_connector/pyspark_hwc-VERSION.zip.
    Vervang VERSION door de waarde die u hebt verkregen bij Aan de slag, eerder.
    livy.spark.sql.hive.hiveserver2.jdbc.url Stel deze in op de Interactieve JDBC-URL van HiveServer2 van het Interactive Query-cluster.
    spark.security.credentials.hiveserver2.enabled true
  4. Voeg alleen voor ESP-clusters de volgende configuratie toe:

    Configuratie Weergegeven als
    livy.spark.sql.hive.hiveserver2.jdbc.url.principal hive/_HOST@<AAD-Domain>
    • Gebruik de SSH-opdracht om verbinding te maken met uw Interactive Query-cluster. default_realm Zoek naar de parameter in het /etc/krb5.conf bestand. Vervang <AAD-DOMAIN> door deze waarde als een tekenreeks in hoofdletters, anders kan de referentie niet worden gevonden.

      hive warehouse connector AAD Domain.

  5. Sla de wijzigingen op en start de Livy-interpreter opnieuw op.

Als livy-interpreter niet toegankelijk is, wijzigt u het bestand dat aanwezig is in het shiro.ini Onderdeel Zeppelin in Ambari. Zie Apache Zeppelin Security configureren voor meer informatie.

Query's uitvoeren in Zeppelin

Start een Zeppelin-notebook met behulp van Livy-interpreter en voer het volgende uit

%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()

Volgende stappen