Udostępnij za pośrednictwem


Integrowanie rozwiązania Apache Zeppelin z usługą Hive Warehouse Połączenie or w usłudze Azure HDInsight

Klastry HDInsight Spark obejmują notesy Apache Zeppelin z różnymi interpreterami. W tym artykule skoncentrujemy się tylko na interpreterze usługi Livy, aby uzyskać dostęp do tabel hive z platformy Spark przy użyciu Połączenie or magazynu Hive.

Uwaga

Ten artykuł zawiera odwołania do terminu, którego firma Microsoft już nie używa. Po usunięciu terminu z oprogramowania usuniemy go z tego artykułu.

Warunek wstępny

Wykonaj kroki konfiguracji programu Hive Warehouse Połączenie or.

Wprowadzenie

  1. Użyj polecenia ssh, aby nawiązać połączenie z klastrem Apache Spark. Zmodyfikuj następujące polecenie, zastępując ciąg CLUSTERNAME nazwą klastra, a następnie wprowadź polecenie:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. W sesji SSH wykonaj następujące polecenie, aby zanotować wersje dla hive-warehouse-connector-assembly i pyspark_hwc:

    ls /usr/hdp/current/hive_warehouse_connector
    

    Zapisz dane wyjściowe do późniejszego użycia podczas konfigurowania rozwiązania Apache Zeppelin.

Konfigurowanie usługi Livy

Do uzyskiwania dostępu do tabel hive zeppelin przy użyciu interpretera usługi Livy wymagane są następujące konfiguracje.

Klaster zapytań interakcyjnych

  1. W przeglądarce internetowej przejdź do https://LLAPCLUSTERNAME.azurehdinsight.net/#/main/services/HDFS/configs lokalizacji LLAPCLUSTERNAME jest nazwą klastra interakcyjnego zapytań.

  2. Przejdź do obszaru Zaawansowana>niestandardowa lokacja podstawowa. Wybierz pozycję Dodaj właściwość... aby dodać następujące konfiguracje:

    Konfigurowanie Wartość
    hadoop.proxyuser.livy.groups *
    hadoop.proxyuser.livy.hosts *
  3. Zapisz zmiany i uruchom ponownie wszystkie objęte składniki.

Klaster Spark

  1. W przeglądarce internetowej przejdź do https://CLUSTERNAME.azurehdinsight.net/#/main/services/SPARK2/configs lokalizacji CLUSTERNAME to nazwa klastra Apache Spark.

  2. Rozwiń węzeł Custom livy2-conf. Wybierz pozycję Dodaj właściwość... , aby dodać następującą konfigurację:

    Konfigurowanie Wartość
    livy.file.local-dir-whitelist /usr/hdp/current/hive_warehouse_connector/
  3. Zapisz zmiany i uruchom ponownie wszystkie objęte składniki.

Konfigurowanie interpretera usługi Livy w interfejsie użytkownika zeppelin (klaster Spark)

  1. W przeglądarce internetowej przejdź do https://CLUSTERNAME.azurehdinsight.net/zeppelin/#/interpreteradresu , gdzie CLUSTERNAME jest nazwą klastra Apache Spark.

  2. Przejdź do usługi livy2.

  3. Dodaj następujące konfiguracje:

    Konfigurowanie Wartość
    livy.spark.hadoop.hive.llap.daemon.service.hosts @llap0
    livy.spark.security.credentials.hiveserver2.enabled prawda
    livy.spark.sql.hive.llap prawda
    livy.spark.yarn.security.credentials.hiveserver2.enabled prawda
    livy.superusers livy, zeppelin
    livy.spark.jars file:///usr/hdp/current/hive_warehouse_connector/hive-warehouse-connector-assembly-VERSION.jar.
    Zastąp ciąg VERSION wartością uzyskaną we wcześniejszej sekcji Wprowadzenie.
    livy.spark.submit.pyFiles file:///usr/hdp/current/hive_warehouse_connector/pyspark_hwc-VERSION.zip.
    Zastąp ciąg VERSION wartością uzyskaną we wcześniejszej sekcji Wprowadzenie.
    livy.spark.sql.hive.hiveserver2.jdbc.url Ustaw go na adres URL Interakcyjnego zestawu zapytań HiveServer2 interaktywnego klastra zapytań JDBC.
    spark.security.credentials.hiveserver2.enabled prawda
  4. Tylko w przypadku klastrów ESP dodaj następującą konfigurację:

    Konfigurowanie Wartość
    livy.spark.sql.hive.hiveserver2.jdbc.url.principal hive/_HOST@<AAD-Domain>
    • Użyj polecenia SSH, aby nawiązać połączenie z klastrem Interactive Query. default_realm Wyszukaj parametr w /etc/krb5.conf pliku . Zastąp <AAD-DOMAIN> ciąg tą wartością wielkimi literami. W przeciwnym razie nie można odnaleźć poświadczeń.

      hive warehouse connector AAD Domain.

  5. Zapisz zmiany i uruchom ponownie interpreter usługi Livy.

Jeśli interpreter usługi Livy nie jest dostępny, zmodyfikuj plik znajdujący się w składniku Zeppelin w narzędziu shiro.ini Ambari. Aby uzyskać więcej informacji, zobacz Konfigurowanie zabezpieczeń apache Zeppelin.

Uruchamianie zapytań w rozwiązaniu Zeppelin

Uruchom notes Zeppelin przy użyciu interpretera usługi Livy i wykonaj następujące czynności

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

Następne kroki