Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server no Windows
Azure SQL Managed Instance
Este artigo fornece uma referência para várias definições de configuração que afetam a conectividade do PolyBase ao Hadoop. Para um guia sobre como usar o PolyBase com o Hadoop, consulte Configurar o PolyBase para aceder a dados externos no Hadoop.
Observação
A partir do SQL Server 2022 (16.x), o Hadoop deixou de ser suportado no PolyBase.
Definição Hadoop.rpc.protection
Uma forma comum de garantir a comunicação num cluster Hadoop é alterando a hadoop.rpc.protection configuração para Privacy ou Integrity. Por defeito, o PolyBase assume que a configuração está definida como Authenticate. Para substituir este padrão, adicione a seguinte propriedade ao ficheiro core-site.xml. Alterar esta configuração permite a transferência segura de dados entre os nós Hadoop e a ligação TLS para o SQL Server.
<!-- RPC Encryption information, PLEASE FILL THESE IN ACCORDING TO HADOOP CLUSTER CONFIG -->
<property>
<name>hadoop.rpc.protection</name>
<value></value>
</property>
Para usar Privacy ou Integrity para hadoop.rpc.protection, a versão da instância do SQL Server deve ser pelo menos SQL Server 2016 SP1 CU7, SQL Server 2016 SP2 ou SQL Server 2017 CU3.
Ficheiros XML de exemplo para cluster CDH 5.x
yarn-site.xml com configuração de yarn.application.classpath e 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>
Se optar por dividir as suas duas definições de configuração em mapred-site.xml e yarn-site.xml, então os ficheiros seriam os seguintes:
Para 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>
Para mapred-site.xml:
Note a propriedade mapreduce.application.classpath. No CDH 5.x, pode encontrar os valores de configuração sob a mesma convenção de nomenclatura em 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>
Configuração de Kerberos
Quando o PolyBase autentica num cluster protegido por Kerberos, espera que essa hadoop.rpc.protection configuração seja Authenticate por defeito. Esta configuração deixa a comunicação de dados entre nós Hadoop sem encriptação. Para usar Privacy as definições Integrity de hadoop.rpc.protection, atualize o core-site.xml ficheiro no servidor PolyBase. Para mais informações, consulte a secção anterior Ligação ao Cluster Hadoop com Hadoop.rpc.protection.
Para se ligar a um cluster Hadoop protegido por Kerberos usando o MIT KDC:
Encontre o diretório de configuração do Hadoop no caminho de instalação do SQL Server. Normalmente, o caminho é
C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn\PolyBase\Hadoop\conf.Encontre o valor de configuração do lado Hadoop das chaves de configuração listadas na tabela seguinte. (Na máquina Hadoop, encontre os ficheiros no diretório de configuração Hadoop.)
Copie os valores de configuração para a propriedade de valor nos ficheiros correspondentes na máquina SQL Server.
# Arquivo de configuração Chave de configuração Action 1 core-site.xmlpolybase.kerberos.kdchostEspecifique o nome de host KDC. Por exemplo, kerberos.your-realm.com.2 core-site.xmlpolybase.kerberos.realmEspecifique o reino de Kerberos. Por exemplo, YOUR-REALM.COM1, 23 core-site.xmlhadoop.security.authenticationEncontre a configuração do lado do Hadoop e copie para a máquina SQL Server. Por exemplo, KERBEROS14 hdfs-site.xmldfs.namenode.kerberos.principalEncontre a configuração do lado do Hadoop e copie para a máquina SQL Server. Por exemplo, hdfs/_HOST@YOUR-REALM.COM5 mapred-site.xmlmapreduce.jobhistory.principalEncontre a configuração do lado do Hadoop e copie para a máquina SQL Server. Por exemplo, mapred/_HOST@YOUR-REALM.COM6 mapred-site.xmlmapreduce.jobhistory.addressEncontre a configuração do lado do Hadoop e copie para a máquina SQL Server. Por exemplo, 10.xxx.xxx.174:100207 yarn-site.xmlyarn.resourcemanager.principalEncontre a configuração do lado do Hadoop e copie para a máquina SQL Server. Por exemplo, yarn/_HOST@YOUR-REALM.COM1 Este valor deve ser escrito em maiúsculas.
2 Multi-reino não é suportado.Crie um objeto credencial com âmbito de base de dados para especificar a informação de autenticação para cada utilizador Hadoop. Para mais informações, consulte a referência Transact-SQL PolyBase.