Delen via


Apache Zeppelin integreren met Hive Warehouse Connector 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 Connector.

Opmerking

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.

Voorwaarde

Voltooi de Hive Warehouse Connector-installatiestappen.

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 te noteren.

    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.

Interactieve Querycluster

  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 Waarde
    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 Waarde
    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 Waarde
    livy.spark.hadoop.hive.llap.daemon.service.hosts @llap0
    livy.spark.security.credentials.hiveserver2.enabled waar
    livy.spark.sql.hive.llap waar
    livy.spark.yarn.security.credentials.hiveserver2.enabled waar
    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 waar
  4. Voeg alleen voor ESP-clusters de volgende configuratie toe:

    Configuratie Waarde
    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. Zoek naar de default_realm 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-domein.

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

Als de 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.

Queries 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