Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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
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
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
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 Waarde 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 Waarde 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 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 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.
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()