Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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.
Configuração Hadoop.RPC.Protection
Uma forma comum de garantir a comunicação num cluster hadoop é alterando a hadoop.rpc.protection configuração para 'Privacidade' ou 'Integridade'. Por defeito, o PolyBase assume que a configuração está definida como 'Autenticar'. Para substituir este padrão, adicione a seguinte propriedade ao ficheiro core-site.xml. Alterar esta configuração permitirá 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 'Privacidade' ou 'Integridade' 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, encontrará os valores de configuração de acordo com 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
Note que, quando o PolyBase autentica num cluster seguro Kerberos, espera que a hadoop.rpc.protection definição seja 'Autenticar' por defeito. Isto deixa a comunicação de dados entre os nós Hadoop não encriptada. Para usar as definições de 'Privacidade' ou 'Integridade' para 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. (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.COM
Nota de configuração: O nome do reino deve ser escrito em maiúsculas.
Multi-reino não é suportado.3 core-site.xmlhadoop.security.authenticationEncontre a configuração do lado do Hadoop e copie para a máquina SQL Server. Por exemplo: KERBEROS
Nota de segurança:KERBEROSDeve ser escrito em maiúsculas.4 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.COMCrie um objeto credencial com âmbito de base de dados para especificar a informação de autenticação para cada utilizador Hadoop. Consulte objetos PolyBase T-SQL.
Próximos passos
Para obter mais informações, consulte os seguintes artigos: