Configurazione di PolyBasePolyBase configuration

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2016)noDatabase SQL di AzurenoAzure SQL Data WarehousenoParallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL Server (starting with 2016)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Per configurare PolyBase, usare le procedure seguenti.Use the procedures below to configure PolyBase.

Configurazione con origine dati esternaExternal data source configuration

È necessario verificare la connettività all'origine dati esterna da SQL Server.You must ensure connectivity to the external data source from SQL Server. Il tipo di connettività influenza notevolmente le prestazioni delle query.The type of connectivity strongly influences query performance. Un collegamento Ethernet da 10 Gbit comporterà ad esempio tempi di risposta delle query PolyBase più rapidi rispetto a un collegamento Ethernet da 1 Gbit.For example, a 10Gbit Ethernet link will result in a faster query response time for PolyBase queries than a 1Gbit Ethernet link.

È necessario configurare SQL Server per la connessione alla versione di Hadoop in uso o all'archivio BLOB di Azure usando sp_configure.You must configure SQL Server to connect to either your Hadoop version or Azure Blob storage using sp_configure. PolyBase supporta due distribuzioni di Hadoop: Hortonworks Data Platform (HDP) e Cloudera Distributed Hadoop (CDH).PolyBase supports two Hadoop distributions: Hortonworks Data Platform (HDP) and Cloudera Distributed Hadoop (CDH). Per un elenco completo delle origini dati esterne supportate, vedere Configurazione della connettività di PolyBase (Transact-SQL).For a complete list of supported external data sources, see PolyBase Connectivity Configuration (Transact-SQL).

Nota: PolyBase non supporta le zone crittografate Cloudera.Please note: PolyBase does not support Cloudera Encrypted Zones.

Eseguire sp_configureRun sp_configure

  1. Eseguire sp_configure 'hadoop connectivity' e impostare un valore appropriato.Run sp_configure ‘hadoop connectivity’ and set an appropriate value. Per trovare il valore, vedere Configurazione della connettività di PolyBase (Transact-SQL).To find the value, see PolyBase Connectivity Configuration (Transact-SQL).

    -- Values map to various external data sources.  
    -- Example: value 7 stands for Azure blob storage and Hortonworks HDP 2.3 on Linux.  
    sp_configure @configname = 'hadoop connectivity', @configvalue = 7;   
    GO   
    
    RECONFIGURE   
    GO   
    
  2. È necessario riavviare SQL Server mediante services.msc.You must restart SQL Server using services.msc. Il riavvio di SQL Server comporta il riavvio di questi servizi:Restarting SQL Server restarts these services:

    • Servizio spostamento dati di PolyBase per SQL ServerSQL Server PolyBase Data Movement Service

    • Motore di PolyBase per SQL ServerSQL Server PolyBase Engine

Configurazione della distribuzionePushdown configuration

Per migliorare le prestazioni delle query, abilitare il calcolo della distribuzione in un cluster Hadoop. In SQL Server sarà quindi necessario specificare alcuni parametri di configurazione specifici per l'ambiente Hadoop.To improve query performance, enable pushdown computation to a Hadoop cluster you will need to provide SQL Server some configuration parameters specific to your Hadoop environment:

  1. Trovare il file yarn-site.xml nel percorso di installazione di SQL Server.Find the file yarn-site.xml in the installation path of SQL Server. In genere il percorso è:Typically, the path is:

    C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn\Polybase\Hadoop\conf  
    
  2. Nel computer Hadoop trovare il file analogo nella directory di configurazione Hadoop.On the Hadoop machine, find the analogous file in the Hadoop configuration directory. Nel file trovare e copiare il valore della chiave di configurazione yarn.application.classpath.In the file, find and copy the value of the configuration key yarn.application.classpath.

  3. Nel computer SQL Server, nel file yarn.site.xml, trovare la proprietà yarn.application.classpath .On the SQL Server machine, in the yarn.site.xml file, find the yarn.application.classpath property. Incollare il valore dal computer Hadoop nell'elemento valore.Paste the value from the Hadoop machine into the value element.

  4. Per tutte le versioni di CDH 5.X sarà necessario aggiungere i parametri di configurazione mapreduce.application.classpath alla fine del file yarn.site.xml o nel file mapred-site.xml.For all CDH 5.X versions, you will need to add the mapreduce.application.classpath configuration parameters either to the end of your yarn.site.xml file or into the mapred-site.xml file. HortonWorks include queste configurazioni all'interno delle configurazioni yarn.application.classpath.HortonWorks includes these configurations within the yarn.application.classpath configurations.

Esempio di file yarn-site.xml e mapred-site.xml per il cluster CDH 5.X.Example yarn-site.xml and mapred-site.xml files for CDH 5.X cluster.

File yarn-site.xml con i parametri di configurazione yarn.application.classpath e mapreduce.application.classpath.Yarn-site.xml with yarn.application.classpath and 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>

Se si sceglie di suddividere le due impostazioni di configurazione nei file mapred-site.xml e yarn-site.xml, i file saranno come indicato di seguito:If you choose to break your two configuration settings into the mapred-site.xml and the yarn-site.xml then the files would be the following:

yarn-site.xmlyarn-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.xmlmapred-site.xml

Si noti che è stata aggiunta la proprietà mapreduce.application.classpath.Note that we added the property mapreduce.application.classpath. In CDH 5.x i valori di configurazione usano la stessa convenzione di denominazione di Ambari.In CDH 5.x you will find the configuration values under the same naming convention in 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>

Configurazione di KerberosKerberos configuration

Si noti che se PolyBase esegue l'autenticazione in un cluster protetto con Kerberos, il parametro hadoop.rpc.protection deve essere impostato su authentication.Please note, that when PolyBase authenticates to a Kerberos secured cluster, we require the hadoop.rpc.protection setting to be set to authentication. La comunicazione dei dati tra i nodi Hadoop rimarrà non crittografata.This will leave the data communication between Hadoop nodes unencrypted.

Per connettersi a un cluster Hadoop protetto con Kerberos tramite MIT KDC:To connect to a Kerberos-secured Hadoop cluster [using MIT KDC] :

  1. Trovare la directory di configurazione Hadoop nel percorso di installazione di SQL Server.Find the Hadoop configuration directory in the installation path of SQL Server. In genere il percorso è:Typically, the path is:

    C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn\Polybase\Hadoop\conf  
    
  2. Trovare il valore di configurazione lato Hadoop delle chiavi di configurazione elencate nella tabella.Find the Hadoop side configuration value of the configuration keys listed in the table. Nel computer Hadoop trovare i file nella directory di configurazione Hadoop.(On the Hadoop machine, find the files in the Hadoop configuration directory.)

  3. Copiare i valori di configurazione nella proprietà del valore nei file corrispondenti sul computer SQL Server.Copy the configuration values into the value property in the corresponding files on the SQL Server machine.

    # File di configurazioneConfiguration file Chiave di configurazioneConfiguration key AzioneAction
    11 core-site.xmlcore-site.xml polybase.kerberos.kdchostpolybase.kerberos.kdchost Specificare il nome host KDC.Specify the KDC hostname. Ad esempio: kerberos.area-di-autenticazione.com.For example: kerberos.your-realm.com.
    22 core-site.xmlcore-site.xml polybase.kerberos.realmpolybase.kerberos.realm Specificare l'area di autenticazione Kerberos.Specify the Kerberos realm. Ad esempio: AREA-DI-AUTENTICAZIONE.COMFor example: YOUR-REALM.COM
    33 core-site.xmlcore-site.xml hadoop.security.authenticationhadoop.security.authentication Trovare la configurazione lato Hadoop e copiarla nel computer SQL Server.Find the Hadoop side configuration and copy to SQL Server machine. Ad esempio: KERBEROSFor example: KERBEROS
    Nota sulla sicurezza: è necessario scrivere KERBEROS in maiuscolo.Security note: KERBEROS must be written in upper case. Se si usano lettere minuscole, potrebbe non essere disponibile.If lower case, it might not be on.
    44 hdfs-site.xmlhdfs-site.xml dfs.namenode.kerberos.principaldfs.namenode.kerberos.principal Trovare la configurazione lato Hadoop e copiarla nel computer SQL Server.Find the Hadoop side configuration and copy to SQL Server machine. Ad esempio: hdfs/_HOST@YOUR-REALM.COMFor example: hdfs/_HOST@YOUR-REALM.COM
    55 mapred-site.xmlmapred-site.xml mapreduce.jobhistory.principalmapreduce.jobhistory.principal Trovare la configurazione lato Hadoop e copiarla nel computer SQL Server.Find the Hadoop side configuration and copy to SQL Server machine. Ad esempio: mapred/_HOST@YOUR-REALM.COMFor example: mapred/_HOST@YOUR-REALM.COM
    66 mapred-site.xmlmapred-site.xml mapreduce.jobhistory.addressmapreduce.jobhistory.address Trovare la configurazione lato Hadoop e copiarla nel computer SQL Server.Find the Hadoop side configuration and copy to SQL Server machine. Ad esempio: 10.193.26.174:10020For example: 10.193.26.174:10020
    77 yarn-site.xml yarn.yarn-site.xml yarn. yarn.resourcemanager.principalyarn.resourcemanager.principal Trovare la configurazione lato Hadoop e copiarla nel computer SQL Server.Find the Hadoop side configuration and copy to SQL Server machine. Ad esempio: yarn/_HOST@YOUR-REALM.COMFor example: yarn/_HOST@YOUR-REALM.COM
  4. Creare un oggetto credenziali con ambito database per specificare le informazioni di autenticazione per ogni utente di Hadoop.Create a database-scoped credential object to specify the authentication information for each Hadoop user. Vedere Oggetti T-SQL PolyBase.See PolyBase T-SQL objects.

Passaggi successiviNext steps

Oggetti T-SQL PolyBasePolyBase T-SQL objects

Introduzione a PolyBaseGet started with PolyBase

Vedere ancheSee Also

Configurazione della connettività di PolyBase (Transact-SQL) PolyBase Connectivity Configuration (Transact-SQL)
Guida a PolyBasePolyBase Guide