Megosztás:


PolyBase-konfiguráció és biztonság a Hadoophoz

A következőkre vonatkozik:Felügyelt Windows Azure SQL-példányon futó SQL Server

Ez a cikk a Hadoophoz való PolyBase-kapcsolatot befolyásoló különböző konfigurációs beállításokra nyújt referenciát. A PolyBase Hadooptal való használatáról a Külső adatok Hadoopban való elérésére való konfigurálása című témakörben olvashat.

Megjegyzés:

Az SQL Server 2022-től kezdve (16.x) a Hadoop már nem támogatott a PolyBase-ben.

Hadoop.RPC.Protection beállítás konfiguráció

A hadoop-fürt kommunikációjának biztonságossá tételének gyakori módja az, ha a hadoop.rpc.protection konfigurációt "Adatvédelem" vagy "Integritás" beállításra módosítja. Alapértelmezés szerint a PolyBase feltételezi, hogy a konfiguráció "Hitelesítés" értékre van állítva. Az alapértelmezett beállítás felülbírálásához adja hozzá a következő tulajdonságot a core-site.xml fájlhoz. A konfiguráció módosítása lehetővé teszi a hadoop csomópontok közötti biztonságos adatátvitelt és az SQL Serverhez való TLS-kapcsolatot.

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

Az "Adatvédelem" vagy az "Integritás" hadoop.rpc.protectionhasználatához az SQL Server-példány verziójának legalább SQL Server 2016 SP1 CU7, SQL Server 2016 SP2 vagy SQL Server 2017 CU3 verziónak kell lennie.

Példa XML-fájlok a CDH 5.X-klasszterhez

Yarn-site.xml és yarn.application.classpathmapreduce.application.classpath konfigurálással.

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

Ha úgy dönt, hogy a két konfigurációs beállítást a következőre mapred-site.xmlyarn-site.xmlbontja, akkor a fájlok a következők lesznek:

yarn-site.xmlesetén:

<?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.xmlesetén:

Jegyezze fel a tulajdonságot mapreduce.application.classpath. A CDH 5.x-ben a konfigurációs értékeket az Ambariban található elnevezési konvencióban találja.

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

Kerberos-konfiguráció

Vegye figyelembe, hogy ha a PolyBase egy Kerberos által védett fürtön hitelesít, a hadoop.rpc.protection beállítás alapértelmezés szerint "Hitelesítés" lesz. Így a Hadoop-csomópontok közötti adatkommunikáció titkosítatlan marad. Az "Adatvédelem" vagy az "Integritás" beállítás hadoop.rpc.protectionhasználatához frissítse a core-site.xml fájlt a PolyBase-kiszolgálón. További információt a Hadoop-fürthöz való csatlakozás a Hadoop.rpc.protection szolgáltatással című előző szakaszban talál.

Kerberos-szal védett Hadoop-klaszterhez való csatlakozás az MIT KDC használatával:

  1. Keresse meg a Hadoop konfigurációs könyvtárat az SQL Server telepítési útvonalán. Az elérési út általában C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn\PolyBase\Hadoop\conf.

  2. Keresse meg a táblázatban felsorolt konfigurációs kulcsok Hadoop-oldali konfigurációs értékét. (A Hadoop gépen keresse meg a fájlokat a Hadoop konfigurációs könyvtárában.)

  3. Másolja a konfigurációs értékeket az SQL Server-gépen található megfelelő fájlok értéktulajdonságába.

    # Konfigurációs fájl Konfigurációs kulcs Action
    1 core-site.xml polybase.kerberos.kdchost Adja meg a KDC-állomásnevet. Például: kerberos.your-realm.com.
    2 core-site.xml polybase.kerberos.realm Adja meg a Kerberos tartományt. Például: YOUR-REALM.COM

    Konfigurációs megjegyzés: A tartománynevet nagybetűvel kell írni.

    A több tartomány nem támogatott.
    3 core-site.xml hadoop.security.authentication Keresse meg a Hadoop-oldali konfigurációt, és másolja az SQL Server-gépre. Például: KERBEROS

    Biztonsági megjegyzés:KERBEROS nagybetűket kell írni.
    4 hdfs-site.xml dfs.namenode.kerberos.principal Keresse meg a Hadoop-oldali konfigurációt, és másolja az SQL Server-gépre. Például: hdfs/_HOST@YOUR-REALM.COM
    5 mapred-site.xml mapreduce.jobhistory.principal Keresse meg a Hadoop-oldali konfigurációt, és másolja az SQL Server-gépre. Például: mapred/_HOST@YOUR-REALM.COM
    6 mapred-site.xml mapreduce.jobhistory.address Keresse meg a Hadoop-oldali konfigurációt, és másolja az SQL Server-gépre. Például: 10.xxx.xxx.174:10020
    7 yarn-site.xml yarn.resourcemanager.principal Keresse meg a Hadoop-oldali konfigurációt, és másolja az SQL Server-gépre. Például: yarn/_HOST@YOUR-REALM.COM
  4. Hozzon létre egy adatbázis-hatókörű hitelesítő objektumot az egyes Hadoop-felhasználók hitelesítési adatainak megadásához. Lásd PolyBase T-SQL-objektumok.

Következő lépések

További információkért lásd a következő cikkeket: