Sdílet prostřednictvím


Konfigurace a zabezpečení PolyBase pro Hadoop

Platí pro:SQL Server ve službě Windows Azure SQL Managed Instance

Tento článek obsahuje referenční informace o různých nastaveních konfigurace, která ovlivňují připojení PolyBase k Systému Hadoop. Návod, jak používat PolyBase s Hadoopem, najdete v tématu Konfigurace PolyBase pro přístup k externím datům v Hadoopu.

Poznámka:

Od verze SQL Server 2022 (16.x) se v PolyBase už Hadoop nepodporuje.

Nastavení Hadoop.RPC.Protection

Běžným způsobem zabezpečení komunikace v clusteru hadoop je změna hadoop.rpc.protection konfigurace na Soukromí nebo Integrita. Ve výchozím nastavení PolyBase předpokládá, že konfigurace je nastavená na Ověřit. Chcete-li toto výchozí nastavení přepsat, přidejte do core-site.xml souboru následující vlastnost. Změna této konfigurace umožní zabezpečený přenos dat mezi uzly hadoop a připojením TLS k SQL Serveru.

<!-- RPC Encryption information, PLEASE FILL THESE IN ACCORDING TO HADOOP CLUSTER CONFIG -->
   <property>
     <name>hadoop.rpc.protection</name>
     <value></value>
   </property>

Pokud chcete použít ochranu osobních údajů nebo integritu hadoop.rpc.protection, musí být verze instance SQL Serveru minimálně SQL Server 2016 SP1 CU7, SQL Server 2016 SP2 nebo SQL Server 2017 CU3.

Ukázkové soubory XML pro cluster CDH 5.X

Yarn-site.xml s konfigurací yarn.application.classpath a 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>

Pokud se rozhodnete rozdělit dvě nastavení konfigurace do mapred-site.xml a pak yarn-site.xmlsoubory budou následující:

Pro 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>

Pro mapred-site.xml:

Poznamenejte si vlastnost mapreduce.application.classpath. V CDH 5.x najdete hodnoty konfigurace ve stejné konvenci pojmenování v 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>

Konfigurace protokolu Kerberos

Všimněte si, že když se PolyBase ověřuje v zabezpečeném clusteru Kerberos, očekává, že nastavení hadoop.rpc.protection je ve výchozím režimu na 'Ověřit'. Tím zůstane komunikace dat mezi uzly Hadoop nešifrovaná. Chcete-li použít nastavení Soukromí nebo Integrita pro hadoop.rpc.protection, aktualizujte core-site.xml soubor na serveru PolyBase. Další informace najdete v předchozí části Připojení ke clusteru Hadoop pomocí hadoop.rpc.protection.

Připojení ke clusteru Hadoop zabezpečenému protokolem Kerberos pomocí MIT KDC:

  1. Vyhledejte konfigurační adresář Hadoop v instalační cestě SQL Serveru. Obvykle je cesta C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn\PolyBase\Hadoop\conf.

  2. Vyhledejte hodnotu konfigurace pro Hadoop uvedených konfiguračních klíčů v tabulce. (Na počítači Hadoop vyhledejte soubory v konfiguračním adresáři Hadoop.)

  3. Zkopírujte konfigurační hodnoty do vlastnosti v odpovídajících souborech na serveru SQL.

    # Konfigurační soubor Konfigurační klíč Action
    1 core-site.xml polybase.kerberos.kdchost Zadejte název hostitele služby KDC. Například: kerberos.your-realm.com.
    2 core-site.xml polybase.kerberos.realm Zadejte sféru Kerberos. Příklad: YOUR-REALM.COM

    Poznámka ke konfiguraci: Název sféry musí být napsán velkými písmeny.

    Není podporováno více domén.
    3 core-site.xml hadoop.security.authentication Vyhledejte konfiguraci na straně Hadoopu a zkopírujte ji na počítač s SQL Serverem. Příklad: KERBEROS

    Poznámka k zabezpečení:KERBEROS musí být zapsáno velkými písmeny.
    4 hdfs-site.xml dfs.namenode.kerberos.principal Vyhledejte konfiguraci na straně Hadoopu a zkopírujte ji na počítač s SQL Serverem. Příklad: hdfs/_HOST@YOUR-REALM.COM
    5 mapred-site.xml mapreduce.jobhistory.principal Vyhledejte konfiguraci na straně Hadoopu a zkopírujte ji na počítač s SQL Serverem. Příklad: mapred/_HOST@YOUR-REALM.COM
    6 mapred-site.xml mapreduce.jobhistory.address Vyhledejte konfiguraci na straně Hadoopu a zkopírujte ji na počítač s SQL Serverem. Příklad: 10.xxx.xxx.174:10020
    7 yarn-site.xml yarn.resourcemanager.principal Vyhledejte konfiguraci na straně Hadoopu a zkopírujte ji na počítač s SQL Serverem. Příklad: yarn/_HOST@YOUR-REALM.COM
  4. Vytvořte objekt přihlašovacích údajů v oboru databáze, který určuje ověřovací informace pro každého uživatele Hadoopu. Viz objekty PolyBase T-SQL.

Další kroky

Další informace najdete v následujících článcích: