Aracılığıyla paylaş


Apache Zeppelin'i Hive Warehouse Bağlan veya Azure HDInsight'ta tümleştirme

HDInsight Spark kümeleri, farklı yorumlayıcılara sahip Apache Zeppelin not defterlerini içerir. Bu makalede, Hive Warehouse Bağlan veya kullanarak Spark'tan Hive tablolarına erişmek için yalnızca Livy yorumlayıcısına odaklanacağız.

Not

Bu makale, Microsoft'un artık kullanmadığını belirten bir terime başvurular içerir. Terim yazılımdan kaldırıldığında, bu makaleden kaldıracağız.

Önkoşul

Hive Ambarı Bağlan veya kurulum adımlarını tamamlayın.

Başlarken

  1. Apache Spark kümenize bağlanmak için ssh komutunu kullanın. CLUSTERNAME değerini kümenizin adıyla değiştirip komutunu girerek aşağıdaki komutu düzenleyin:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. ve sürümlerini not almak için hive-warehouse-connector-assemblypyspark_hwcssh oturumunuzda aşağıdaki komutu yürütebilirsiniz:

    ls /usr/hdp/current/hive_warehouse_connector
    

    Apache Zeppelin'i yapılandırırken çıkışı daha sonra kullanmak üzere kaydedin.

Livy'yi yapılandırma

Livy yorumlayıcısı ile Zeppelin'den hive tablolarına erişmek için aşağıdaki yapılandırmalar gereklidir.

Etkileşimli Sorgu Kümesi

  1. Bir web tarayıcısından LLAPCLUSTERNAME'in Etkileşimli Sorgu kümenizin adı olduğu yere gidin https://LLAPCLUSTERNAME.azurehdinsight.net/#/main/services/HDFS/configs .

  2. Gelişmiş>Özel çekirdek siteye gidin. Aşağıdaki yapılandırmaları eklemek için Özellik Ekle... öğesini seçin:

    Yapılandırma Değer
    hadoop.proxyuser.livy.groups *
    hadoop.proxyuser.livy.hosts *
  3. Değişiklikleri kaydedin ve etkilenen tüm bileşenleri yeniden başlatın.

Spark Kümesi

  1. Web tarayıcısından CLUSTERNAME'in Apache Spark kümenizin adı olduğu yere gidin https://CLUSTERNAME.azurehdinsight.net/#/main/services/SPARK2/configs .

  2. Özel livy2-conf öğesini genişletin. Aşağıdaki yapılandırmayı eklemek için Özellik Ekle... öğesini seçin:

    Yapılandırma Değer
    livy.file.local-dir-whitelist /usr/hdp/current/hive_warehouse_connector/
  3. Değişiklikleri kaydedin ve etkilenen tüm bileşenleri yeniden başlatın.

Zeppelin Kullanıcı Arabiriminde Livy Yorumlayıcıyı Yapılandırma (Spark Kümesi)

  1. Web tarayıcısından adresine gidin https://CLUSTERNAME.azurehdinsight.net/zeppelin/#/interpreter; burada CLUSTERNAME Apache Spark kümenizin adıdır.

  2. livy2 konumuna gidin.

  3. Aşağıdaki yapılandırmaları ekleyin:

    Yapılandırma Değer
    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.
    VERSION değerini Başlarken bölümünden aldığınız değerle değiştirin.
    livy.spark.submit.pyFiles file:///usr/hdp/current/hive_warehouse_connector/pyspark_hwc-VERSION.zip.
    VERSION değerini Başlarken bölümünden aldığınız değerle değiştirin.
    livy.spark.sql.hive.hiveserver2.jdbc.url Bunu, Etkileşimli Sorgu kümesinin HiveServer2 Etkileşimli JDBC URL'si olarak ayarlayın.
    spark.security.credentials.hiveserver2.enabled true
  4. Yalnızca ESP kümeleri için aşağıdaki yapılandırmayı ekleyin:

    Yapılandırma Değer
    livy.spark.sql.hive.hiveserver2.jdbc.url.principal hive/_HOST@<AAD-Domain>
    • Etkileşimli Sorgu kümenize bağlanmak için ssh komutunu kullanın. Dosyasında parametresini /etc/krb5.conf arayındefault_realm. değerini büyük harf dize olarak bu değerle değiştirin <AAD-DOMAIN> ; aksi takdirde kimlik bilgisi bulunamaz.

      hive warehouse connector AAD Domain.

  5. Değişiklikleri kaydedin ve Livy yorumlayıcısını yeniden başlatın.

Livy yorumlayıcısı erişilebilir değilse, Ambari'deki shiro.ini Zeppelin bileşeninde bulunan dosyayı değiştirin. Daha fazla bilgi için bkz . Apache Zeppelin Güvenliğini Yapılandırma.

Zeppelin'de Sorgu Çalıştırma

Livy yorumlayıcısını kullanarak bir Zeppelin not defteri başlatın ve aşağıdakileri yürütun

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

Sonraki adımlar