Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Кластеры HDInsight Spark включают записные книжки Apache Zeppelin с различными интерпретаторами. В этой статье мы сосредоточимся только на интерпретаторе Livy для доступа к таблицам Hive из Spark с помощью соединителя хранилища Hive.
Примечание.
В этой статье содержатся ссылки на термин, который корпорация Майкрософт больше не использует. Когда этот термин будет удален из программного обеспечения, мы удалим его из статьи.
Предпосылка
Завершите шаги по настройке Hive Warehouse Connector.
Начало работы
С помощью команды ssh command подключитесь к кластеру Apache Spark. Измените следующую команду, заменив CLUSTERNAME именем кластера, а затем введите команду:
ssh [email protected]
В вашем сеансе SSH выполните следующую команду, чтобы проверить версии
hive-warehouse-connector-assembly
иpyspark_hwc
.ls /usr/hdp/current/hive_warehouse_connector
Сохраните выходные данные для последующего использования при настройке Apache Zeppelin.
Настройка Livy
Для доступа к таблицам Hive из Zeppelin с интерпретатором Livy требуются следующие конфигурации.
Интерактивный кластер запросов
В веб-браузере перейдите по адресу
https://LLAPCLUSTERNAME.azurehdinsight.net/#/main/services/HDFS/configs
, заменив LLAPCLUSTERNAME на имя вашего кластера Interactive Query.Перейдите к дополнительному>пользовательскому основному сайту. Щелкните Add Property... (Добавить свойство...), чтобы добавить следующие конфигурации:
Конфигурация Ценность hadoop.proxyuser.livy.groups * hadoop.proxyuser.livy.hosts * Сохраните изменения и перезапустите все затронутые компоненты.
Кластер Spark
В веб-браузере перейдите на страницу с адресом
https://CLUSTERNAME.azurehdinsight.net/#/main/services/SPARK2/configs
, заменив CLUSTERNAME именем кластера Apache Spark.Разверните Custom livy2-conf. Нажмите кнопку "Добавить свойство...", чтобы добавить следующую конфигурацию:
Конфигурация Ценность livy.file.local-dir-whitelist /usr/hdp/current/hive_warehouse_connector/ Сохраните изменения и перезапустите все затронутые компоненты.
Настройка интерпретатора Livy в пользовательском интерфейсе Zeppelin (кластер Spark)
Откройте веб-браузер и перейдите по адресу
https://CLUSTERNAME.azurehdinsight.net/zeppelin/#/interpreter
, гдеCLUSTERNAME
— это имя вашего кластера Apache Spark.Перейдите к livy2.
Добавьте следующие конфигурации:
Конфигурация Ценность livy.spark.hadoop.hive.llap.daemon.service.hosts @llap0 livy.spark.security.credentials.hiveserver2.enabled правда livy.spark.sql.hive.llap правда livy.spark.yarn.security.credentials.hiveserver2.enabled правда livy.superusers ливи, цеппелин livy.spark.jars file:///usr/hdp/current/hive_warehouse_connector/hive-warehouse-connector-assembly-VERSION.jar
.
Замените VERSION значением, которое вы получили ранее в разделе Начало работы.livy.spark.submit.pyFiles file:///usr/hdp/current/hive_warehouse_connector/pyspark_hwc-VERSION.zip
.
Замените version на значение, полученное ранее из раздела Начало работы.livy.spark.sql.hiveserver2.jdbc.url Задайте для него URL-адрес HiveServer2 Interactive JDBC кластера интерактивных запросов. spark.security.credentials.hiveserver2.enabled правда Только для кластеров ESP добавьте следующую конфигурацию:
Конфигурация Ценность livy.spark.sql.hive.hiveserver2.jdbc.url.principal hive/_HOST@<AAD-Domain>
С помощью команды ssh подключитесь к кластеру Interactive Query. Найдите параметр
default_realm
в файле/etc/krb5.conf
. Замените<AAD-DOMAIN>
это значение в виде строки верхнего регистра, в противном случае учетные данные не найдены.
Сохраните изменения и перезапустите интерпретатор Livy.
Если интерпретатор Livy недоступен, измените файл shiro.ini
, который находится в компоненте Zeppelin в Ambari. Дополнительные сведения см. в разделе "Настройка Apache Zeppelin Security".
Выполнение запросов в Zeppelin
Запустите записную книжку Zeppelin с помощью интерпретатора Livy и выполните следующие действия.
%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()
Дальнейшие действия
- Операции HWC и Apache Spark
- Интеграция HWC с Apache Spark и Apache Hive
- Use Interactive Query with HDInsight (Использование Interactive Query в HDInsight)