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
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
ve sürümlerini not almak için
hive-warehouse-connector-assembly
pyspark_hwc
ssh 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
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
.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 * Değişiklikleri kaydedin ve etkilenen tüm bileşenleri yeniden başlatın.
Spark Kümesi
Web tarayıcısından CLUSTERNAME'in Apache Spark kümenizin adı olduğu yere gidin
https://CLUSTERNAME.azurehdinsight.net/#/main/services/SPARK2/configs
.Ö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/ 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)
Web tarayıcısından adresine gidin
https://CLUSTERNAME.azurehdinsight.net/zeppelin/#/interpreter
; buradaCLUSTERNAME
Apache Spark kümenizin adıdır.livy2 konumuna gidin.
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 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.
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
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin