Поделиться через


Интеграция Apache Zeppelin с соединителем хранилища Hive в Azure HDInsight

Кластеры HDInsight Spark включают записные книжки Apache Zeppelin с различными интерпретаторами. В этой статье мы сосредоточимся только на интерпретаторе Livy для доступа к таблицам Hive из Spark с помощью соединителя хранилища Hive.

Примечание.

В этой статье содержатся ссылки на термин, который корпорация Майкрософт больше не использует. Когда этот термин будет удален из программного обеспечения, мы удалим его из статьи.

Предпосылка

Завершите шаги по настройке Hive Warehouse Connector.

Начало работы

  1. С помощью команды ssh command подключитесь к кластеру Apache Spark. Измените следующую команду, заменив CLUSTERNAME именем кластера, а затем введите команду:

    ssh [email protected]
    
  2. В вашем сеансе SSH выполните следующую команду, чтобы проверить версии hive-warehouse-connector-assembly и pyspark_hwc.

    ls /usr/hdp/current/hive_warehouse_connector
    

    Сохраните выходные данные для последующего использования при настройке Apache Zeppelin.

Настройка Livy

Для доступа к таблицам Hive из Zeppelin с интерпретатором Livy требуются следующие конфигурации.

Интерактивный кластер запросов

  1. В веб-браузере перейдите по адресу https://LLAPCLUSTERNAME.azurehdinsight.net/#/main/services/HDFS/configs, заменив LLAPCLUSTERNAME на имя вашего кластера Interactive Query.

  2. Перейдите к дополнительному>пользовательскому основному сайту. Щелкните Add Property... (Добавить свойство...), чтобы добавить следующие конфигурации:

    Конфигурация Ценность
    hadoop.proxyuser.livy.groups *
    hadoop.proxyuser.livy.hosts *
  3. Сохраните изменения и перезапустите все затронутые компоненты.

Кластер Spark

  1. В веб-браузере перейдите на страницу с адресом https://CLUSTERNAME.azurehdinsight.net/#/main/services/SPARK2/configs, заменив CLUSTERNAME именем кластера Apache Spark.

  2. Разверните Custom livy2-conf. Нажмите кнопку "Добавить свойство...", чтобы добавить следующую конфигурацию:

    Конфигурация Ценность
    livy.file.local-dir-whitelist /usr/hdp/current/hive_warehouse_connector/
  3. Сохраните изменения и перезапустите все затронутые компоненты.

Настройка интерпретатора Livy в пользовательском интерфейсе Zeppelin (кластер Spark)

  1. Откройте веб-браузер и перейдите по адресу https://CLUSTERNAME.azurehdinsight.net/zeppelin/#/interpreter, где CLUSTERNAME — это имя вашего кластера Apache Spark.

  2. Перейдите к livy2.

  3. Добавьте следующие конфигурации:

    Конфигурация Ценность
    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 правда
  4. Только для кластеров ESP добавьте следующую конфигурацию:

    Конфигурация Ценность
    livy.spark.sql.hive.hiveserver2.jdbc.url.principal hive/_HOST@<AAD-Domain>
    • С помощью команды ssh подключитесь к кластеру Interactive Query. Найдите параметр default_realm в файле /etc/krb5.conf. Замените <AAD-DOMAIN> это значение в виде строки верхнего регистра, в противном случае учетные данные не найдены.

      Домен AAD соединителя хранилища Hive.

  5. Сохраните изменения и перезапустите интерпретатор 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()

Дальнейшие действия