Configuration et sécurité de PolyBase pour Hadoop
S’applique à :SQL Server - Windows uniquement Azure SQL Managed Instance
Cet article fournit des informations de référence pour différents paramètres de configuration qui affectent la connectivité de PolyBase à Hadoop. Pour une procédure pas à pas sur l’utilisation de PolyBase avec Hadoop, consultez Configurer PolyBase pour accéder à des données externes dans Hadoop.
Note
Depuis SQL Server 2022 (16.x), Hadoop n’est plus pris en charge dans PolyBase.
Paramètre Hadoop.RPC.Protection
Un moyen courant de sécuriser la communication dans un cluster hadoop consiste à remplacer la hadoop.rpc.protection
configuration par « Confidentialité » ou « Intégrité ». Par défaut, PolyBase suppose que la configuration est définie sur « Authenticate ». Pour remplacer cette valeur par défaut, ajoutez la propriété suivante au core-site.xml
fichier. Cette nouvelle configuration permet de transférer en toute sécurité les données entre les nœuds hadoop et la connexion TLS vers SQL Server.
<!-- RPC Encryption information, PLEASE FILL THESE IN ACCORDING TO HADOOP CLUSTER CONFIG -->
<property>
<name>hadoop.rpc.protection</name>
<value></value>
</property>
Pour utiliser « Confidentialité » ou « Intégrité », hadoop.rpc.protection
la version de l’instance SQL Server doit être au moins SQL Server 2016 SP1 CU7, SQL Server 2016 SP2 ou SQL Server 2017 CU3.
Exemples de fichiers XML pour un cluster CDH 5.X
Yarn-site.xml
avec yarn.application.classpath
et mapreduce.application.classpath
configuration.
<?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>
Si vous choisissez d’interrompre vos deux paramètres de configuration dans le mapred-site.xml
fichier et le yarn-site.xml
fichier, les fichiers sont les suivants :
Pour 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>
Pour mapred-site.xml
:
Notez la propriété mapreduce.application.classpath
. Dans CDH 5.x, vous trouverez les valeurs de configuration dans la même convention de nommage dans 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>
Configuration Kerberos
Notez que lorsque PolyBase s’authentifie auprès d’un cluster sécurisé Kerberos, il s’attend à ce que le hadoop.rpc.protection
paramètre soit « Authentifier » par défaut. De cette façon, la communication de données entre les nœuds Hadoop n’est pas chiffrée. Pour utiliser les paramètres « Confidentialité » ou « Intégrité » pour hadoop.rpc.protection
, mettez à jour le core-site.xml
fichier sur le serveur PolyBase. Pour plus d’informations, consultez la section précédente Connexion à un cluster Hadoop avec Hadoop.rpc.protection.
Pour vous connecter à un cluster Hadoop sécurisé par Kerberos avec MIT KDC :
Recherchez le répertoire de configuration Hadoop dans le chemin d’installation de SQL Server. En règle générale, le chemin est
C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn\PolyBase\Hadoop\conf
.Recherchez la valeur de configuration côté Hadoop des clés de configuration répertoriées dans le tableau. Sur l’ordinateur Hadoop, recherchez les fichiers dans le répertoire de configuration Hadoop.
Copiez les valeurs de configuration dans la propriété de valeur dans les fichiers correspondants sur l’ordinateur SQL Server.
# Fichier de configuration Clé de configuration Pour 1 core-site.xml
polybase.kerberos.kdchost
Spécifiez le nom d’hôte KDC. Par exemple : kerberos.your-realm.com
.2 core-site.xml
polybase.kerberos.realm
Spécifiez le domaine Kerberos. Par exemple : VOTRE-DOMAINE.COM
Remarque de configuration : le nom du domaine doit être écrit en majuscules.
Le multi-domaine n’est pas pris en charge.3 core-site.xml
hadoop.security.authentication
Recherchez la configuration côté Hadoop et copiez-la sur l’ordinateur SQL Server. Par exemple : KERBEROS
Note de sécurité :KERBEROS
doit être écrite en majuscules.4 hdfs-site.xml
dfs.namenode.kerberos.principal
Recherchez la configuration côté Hadoop et copiez-la sur l’ordinateur SQL Server. Par exemple : hdfs/_HOST@YOUR-REALM.COM
5 mapred-site.xml
mapreduce.jobhistory.principal
Recherchez la configuration côté Hadoop et copiez-la sur l’ordinateur SQL Server. Par exemple : mapred/_HOST@YOUR-REALM.COM
6 mapred-site.xml
mapreduce.jobhistory.address
Recherchez la configuration côté Hadoop et copiez-la sur l’ordinateur SQL Server. Par exemple : 10.xxx.xxx.174:10020
7 yarn-site.xml
yarn.resourcemanager.principal
Recherchez la configuration côté Hadoop et copiez-la sur l’ordinateur SQL Server. Par exemple : yarn/_HOST@YOUR-REALM.COM
Créez un objet d’informations d’identification limité à la base de données pour spécifier les informations d’authentification de chaque utilisateur Hadoop. Consultez Objets T-SQL PolyBase.
Étapes suivantes
Pour plus d’informations, consultez les articles suivants :
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour