Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: SQL Server на Windows, Управляемый экземпляр Azure SQL
В этой статье содержатся сведения о различных параметрах конфигурации, которые влияют на возможность подключения PolyBase к Hadoop. Пошаговое руководство по использованию PolyBase с Hadoop см. в статье Настройка PolyBase для доступа к внешним данным в Hadoop.
Примечание.
Начиная с SQL Server 2022 (16.x), Hadoop больше не поддерживается в PolyBase.
Параметр Hadoop.RPC.Protection
Распространенный способ защиты обмена данными в кластере hadoop — изменение hadoop.rpc.protection конфигурации на "Конфиденциальность" или "Целостность". По умолчанию PolyBase предполагает, что задана конфигурация Authenticate (Проверка подлинности). Чтобы переопределить значение по умолчанию, добавьте следующее свойство в файл core-site.xml. Изменение конфигурации позволит осуществлять безопасную передачу данных между узлами Hadoop и использовать TLS-подключение к SQL Server.
<!-- RPC Encryption information, PLEASE FILL THESE IN ACCORDING TO HADOOP CLUSTER CONFIG -->
<property>
<name>hadoop.rpc.protection</name>
<value></value>
</property>
Чтобы использовать "Конфиденциальность" или "Целостность" для hadoop.rpc.protection, версия экземпляра SQL Server должна быть по крайней мере SQL Server 2016 SP1 CU7, SQL Server 2016 SP2 или SQL Server 2017 CU3.
Пример XML-файла для кластера CDH 5.X
Yarn-site.xml с yarn.application.classpath и mapreduce.application.classpath конфигурацией.
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>yarn.resourcemanager.connect.max-wait.ms</name>
<value>40000</value>
</property>
<property>
<name>yarn.resourcemanager.connect.retry-interval.ms</name>
<value>30000</value>
</property>
<!-- Applications' Configuration-->
<property>
<description>CLASSPATH for YARN applications. A comma-separated list of CLASSPATH entries</description>
<!-- Please set this value to the correct yarn.application.classpath that matches your server side configuration -->
<!-- For example: $HADOOP_CONF_DIR,$HADOOP_COMMON_HOME/share/hadoop/common/*,$HADOOP_COMMON_HOME/share/hadoop/common/lib/*,$HADOOP_HDFS_HOME/share/hadoop/hdfs/*,$HADOOP_HDFS_HOME/share/hadoop/hdfs/lib/*,$HADOOP_YARN_HOME/share/hadoop/yarn/*,$HADOOP_YARN_HOME/share/hadoop/yarn/lib/* -->
<name>yarn.application.classpath</name>
<value>$HADOOP_CLIENT_CONF_DIR,$HADOOP_CONF_DIR,$HADOOP_COMMON_HOME/*,$HADOOP_COMMON_HOME/lib/*,$HADOOP_HDFS_HOME/*,$HADOOP_HDFS_HOME/lib/*,$HADOOP_YARN_HOME/*,$HADOOP_YARN_HOME/lib/,$HADOOP_MAPRED_HOME/*,$HADOOP_MAPRED_HOME/lib/*,$MR2_CLASSPATH*</value>
</property>
<!-- kerberos security information, PLEASE FILL THESE IN ACCORDING TO HADOOP CLUSTER CONFIG
<property>
<name>yarn.resourcemanager.principal</name>
<value></value>
</property>
-->
</configuration>
Если вы решите разбить два параметра конфигурации на mapred-site.xml и yarn-site.xml, то файлы будут выглядеть следующим образом:
Для yarn-site.xml:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>yarn.resourcemanager.connect.max-wait.ms</name>
<value>40000</value>
</property>
<property>
<name>yarn.resourcemanager.connect.retry-interval.ms</name>
<value>30000</value>
</property>
<!-- Applications' Configuration-->
<property>
<description>CLASSPATH for YARN applications. A comma-separated list of CLASSPATH entries</description>
<!-- Please set this value to the correct yarn.application.classpath that matches your server side configuration -->
<!-- For example: $HADOOP_CONF_DIR,$HADOOP_COMMON_HOME/share/hadoop/common/*,$HADOOP_COMMON_HOME/share/hadoop/common/lib/*,$HADOOP_HDFS_HOME/share/hadoop/hdfs/*,$HADOOP_HDFS_HOME/share/hadoop/hdfs/lib/*,$HADOOP_YARN_HOME/share/hadoop/yarn/*,$HADOOP_YARN_HOME/share/hadoop/yarn/lib/* -->
<name>yarn.application.classpath</name>
<value>$HADOOP_CLIENT_CONF_DIR,$HADOOP_CONF_DIR,$HADOOP_COMMON_HOME/*,$HADOOP_COMMON_HOME/lib/*,$HADOOP_HDFS_HOME/*,$HADOOP_HDFS_HOME/lib/*,$HADOOP_YARN_HOME/*,$HADOOP_YARN_HOME/lib/*</value>
</property>
<!-- kerberos security information, PLEASE FILL THESE IN ACCORDING TO HADOOP CLUSTER CONFIG
<property>
<name>yarn.resourcemanager.principal</name>
<value></value>
</property>
-->
</configuration>
Для mapred-site.xml:
Обратите внимание на свойство mapreduce.application.classpath. В CDH 5.X значения конфигурации имеют тот же формат именования, что и в Ambari.
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration xmlns:xi="http://www.w3.org/2001/XInclude">
<property>
<name>mapred.min.split.size</name>
<value>1073741824</value>
</property>
<property>
<name>mapreduce.app-submission.cross-platform</name>
<value>true</value>
</property>
<property>
<name>mapreduce.application.classpath</name>
<value>$HADOOP_MAPRED_HOME/*,$HADOOP_MAPRED_HOME/lib/*,$MR2_CLASSPATH</value>
</property>
<!--kerberos security information, PLEASE FILL THESE IN ACCORDING TO HADOOP CLUSTER CONFIG
<property>
<name>mapreduce.jobhistory.principal</name>
<value></value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value></value>
</property>
-->
</configuration>
Конфигурация Kerberos
Обратите внимание: когда PolyBase выполняет проверку подлинности в защищенном кластере Kerberos, предполагается, что установка hadoop.rpc.protection по умолчанию установлена на 'Аутентификация'. При этом обмен данными между узлами Hadoop остается в незашифрованном виде. Чтобы использовать параметры конфиденциальности или целостности для hadoop.rpc.protection, обновите файл core-site.xml на сервере PolyBase. Дополнительные сведения см. в предыдущем разделе Подключение к кластеру Hadoop с параметром Hadoop.rpc.protection.
Чтобы подключиться к защищенному с помощью Kerberos кластеру Hadoop, используя MIT KDC, сделайте следующее:
Найдите каталог конфигурации Hadoop в каталоге установки SQL Server. Как правило, путь имеет значение
C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn\PolyBase\Hadoop\conf.Найдите значение конфигурации для ключей конфигурации Hadoop, перечисленных в таблице. (Найдите файлы в каталоге конфигурации Hadoop на этом же компьютере.)
Скопируйте значения конфигурации в свойство value в соответствующих файлах на компьютере с SQL Server.
# Файл конфигурации Ключ конфигурации Действие 1 core-site.xmlpolybase.kerberos.kdchostУкажите имя узла KDC. Например: kerberos.your-realm.com.2 core-site.xmlpolybase.kerberos.realmУкажите область Kerberos. Например, YOUR-REALM.COM
Примечание: Название Realm должно быть написано в верхнем регистре.
Многоуровневая область не поддерживается.3 core-site.xmlhadoop.security.authenticationНайдите конфигурацию для Hadoop и скопируйте ее на компьютер с SQL Server. Например: KERBEROS
Примечание по безопасности:KERBEROSнеобходимо написать в верхнем регистре.4 hdfs-site.xmldfs.namenode.kerberos.principalНайдите конфигурацию для Hadoop и скопируйте ее на компьютер с SQL Server. Например: hdfs/_HOST@YOUR-REALM.COM5 mapred-site.xmlmapreduce.jobhistory.principalНайдите конфигурацию для Hadoop и скопируйте ее на компьютер с SQL Server. Например: mapred/_HOST@YOUR-REALM.COM6 mapred-site.xmlmapreduce.jobhistory.addressНайдите конфигурацию для Hadoop и скопируйте ее на компьютер с SQL Server. Например: 10.xxx.xxx.174:100207 yarn-site.xmlyarn.resourcemanager.principalНайдите конфигурацию для Hadoop и скопируйте ее на компьютер с SQL Server. Например: yarn/_HOST@YOUR-REALM.COMСоздайте объект учетных данных, охватывающий базу данных, чтобы указать данные аутентификации для каждого пользователя Hadoop. См. статью Объекты T-SQL PolyBase.
Следующие шаги
Дополнительные сведения см. в следующих статьях: