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
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
Voer vanuit uw ssh-sessie de volgende opdracht uit om de versies voor
hive-warehouse-connector-assembly
enpyspark_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
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.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 * Sla wijzigingen op en start alle betrokken onderdelen opnieuw op.
Spark-cluster
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.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/ Sla wijzigingen op en start alle betrokken onderdelen opnieuw op.
Livy-interpreter configureren in de Gebruikersinterface van Zeppelin (Spark-cluster)
Navigeer in een webbrowser naar
https://CLUSTERNAME.azurehdinsight.net/zeppelin/#/interpreter
, waarCLUSTERNAME
is de naam van uw Apache Spark-cluster.Navigeer naar livy2.
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 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.
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()