Sdílet prostřednictvím


Integrace Apache Zeppelinu se službou Hive Warehouse Připojení or ve službě Azure HDInsight

Clustery HDInsight Spark zahrnují poznámkové bloky Apache Zeppelin s různými interprety. V tomto článku se zaměříme pouze na interpret Livy pro přístup k tabulkám Hive ze Sparku pomocí Připojení oru Hive Warehouse.

Poznámka:

Tento článek obsahuje odkazy na termín, který už Microsoft nepoužívá. Když se termín odebere ze softwaru, odebereme ho z tohoto článku.

Požadavek

Dokončete kroky nastavení Připojení soustavu Hive Warehouse.

Začínáme

  1. Pomocí příkazu ssh se připojte ke clusteru Apache Spark. Upravte následující příkaz nahrazením clusteru názvem clusteru a zadáním příkazu:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. V relaci ssh spusťte následující příkaz, který si poznamenejte verze pro hive-warehouse-connector-assembly a pyspark_hwc:

    ls /usr/hdp/current/hive_warehouse_connector
    

    Uložte výstup pro pozdější použití při konfiguraci Apache Zeppelinu.

Konfigurace Livy

Pro přístup k tabulkám Hive zeppelinu pomocí interpretu Livy se vyžadují následující konfigurace.

Interaktivní cluster dotazů

  1. Ve webovém prohlížeči přejděte na https://LLAPCLUSTERNAME.azurehdinsight.net/#/main/services/HDFS/configs místo, kde LLAPCLUSTERNAME je název vašeho clusteru Interactive Query.

  2. Přejděte na rozšířený>vlastní web jádra. Vyberte Přidat vlastnost... a přidejte následující konfigurace:

    Konfigurace Hodnota
    hadoop.proxyuser.livy.groups *
    hadoop.proxyuser.livy.hosts *
  3. Uložte změny a restartujte všechny ovlivněné součásti.

Spark Cluster

  1. Ve webovém prohlížeči přejděte do https://CLUSTERNAME.azurehdinsight.net/#/main/services/SPARK2/configs umístění CLUSTERNAME název vašeho clusteru Apache Spark.

  2. Rozbalte vlastní livy2-conf. Vyberte Přidat vlastnost... a přidejte následující konfiguraci:

    Konfigurace Hodnota
    livy.file.local-dir-whitelist /usr/hdp/current/hive_warehouse_connector/
  3. Uložte změny a restartujte všechny ovlivněné součásti.

Konfigurace interpretu Livy v uživatelském rozhraní Zeppelin (cluster Spark)

  1. Ve webovém prohlížeči přejděte do https://CLUSTERNAME.azurehdinsight.net/zeppelin/#/interpreterumístění , kde CLUSTERNAME je název vašeho clusteru Apache Spark.

  2. Přejděte na livy2.

  3. Přidejte následující konfigurace:

    Konfigurace Hodnota
    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.
    Nahraďte verzi hodnotou, kterou jste získali z části Začínáme, dříve.
    livy.spark.submit.pyFiles file:///usr/hdp/current/hive_warehouse_connector/pyspark_hwc-VERSION.zip.
    Nahraďte verzi hodnotou, kterou jste získali z části Začínáme, dříve.
    livy.spark.sql.hive.hiveserver2.jdbc.url Nastavte ji na adresu URL HiveServer2 Interactive JDBC clusteru Interactive Query.
    spark.security.credentials.hiveserver2.enabled true
  4. Pouze pro clustery ESP přidejte následující konfiguraci:

    Konfigurace Hodnota
    livy.spark.sql.hive.hiveserver2.jdbc.url.principal hive/_HOST@<AAD-Domain>
    • Pomocí příkazu ssh se připojte ke clusteru Interactive Query. default_realm Vyhledejte parametr v /etc/krb5.conf souboru. Nahraďte <AAD-DOMAIN> touto hodnotou jako řetězec velkými písmeny, jinak nelze najít přihlašovací údaje.

      hive warehouse connector AAD Domain.

  5. Uložte změny a restartujte interpret Livy.

Pokud interpret Livy není přístupný, upravte shiro.ini soubor, který se nachází v komponentě Zeppelin v Ambari. Další informace naleznete v tématu Konfigurace zabezpečení Apache Zeppelin.

Spouštění dotazů v Zeppelinu

Spuštění poznámkového bloku Zeppelin pomocí interpretu Livy a spuštěním následujícího příkazu

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

Další kroky