Hadoop için PolyBase yapılandırması ve güvenliği

Şunlar için geçerlidir:Windows üzerinde SQL ServerAzure SQL Yönetilen Örneği

Bu makale, Hadoop'a PolyBase bağlantısını etkileyen çeşitli yapılandırma ayarları için bir başvuru sağlar. PolyBase'i Hadoop ile kullanma hakkında bir kılavuz için bkz. PolyBase'i Hadoop'taki dış verilere erişecek şekilde yapılandırma.

Uyarı

SQL Server 2022'den (16.x) başlayarak, Hadoop artık PolyBase'de desteklenmiyor.

Hadoop.rpc.protection ayarı

Bir Hadoop kümesinde iletişimi güvence altına almanın yaygın bir yolu, yapılandırmayı hadoop.rpc.protection veya PrivacyIntegrity'ye değiştirmektir. Varsayılan olarak, PolyBase yapılandırmanın 'ye Authenticateayarlandığını varsayar. Bu varsayılanı geçersiz kılmak için aşağıdaki özelliği dosyaya core-site.xml ekleyin. Bu yapılandırmanın değiştirilmesi, Hadoop düğümleri arasında güvenli veri transferini ve TLS bağlantısını SQL Server'a mümkün kılar.

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

hadoop.rpc.protection için Privacy veya Integrity kullanabilmek için SQL Server örneği sürümünün en az SQL Server 2016 SP1 CU7, SQL Server 2016 SP2 veya SQL Server 2017 CU3 olması gerekir.

CDH 5.x kümesi için örnek XML dosyaları

yarn-site.xml ve yarn.application.classpath ile mapreduce.application.classpath yapılandırması.

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

İki yapılandırma ayarınızı mapred-site.xml ve yarn-site.xml içine bölmeyi seçerseniz, dosyalar aşağıdaki gibi olur:

yarn-site.xmliçin:

<?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.xmliçin:

özelliğine mapreduce.application.classpathdikkat edin. CDH 5.x'te, yapılandırma değerlerini aynı adlandırma düzeni altında Ambari'de bulabilirsiniz.

<?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 yapılandırması

PolyBase, Kerberos tarafından güvenlikli bir kümeye kimlik doğrulaması yaptığında, ayarın hadoop.rpc.protection varsayılan olarak olmasını Authenticate bekler. Bu ayar, Hadoop düğümleri arasındaki veri iletişimini şifresiz bırakır. hadoop.rpc.protection için Privacy veya Integrity ayarlarını kullanmak üzere PolyBase sunucusundaki core-site.xml dosyasını güncelleyin. Daha fazla bilgi için hadoop.rpc.protection ile Hadoop Kümesine Bağlanma bölümüne bakın.

MIT KDC kullanarak Kerberos güvenli Hadoop kümesine bağlanmak için:

  1. Hadoop yapılandırma dizinini SQL Server'ın yükleme yolunda bulun. Genellikle yolu şeklindedir C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn\PolyBase\Hadoop\conf.

  2. Aşağıdaki tabloda listelenen yapılandırma anahtarlarının Hadoop tarafı yapılandırma değerini bulabilirsiniz. (Hadoop makinesinde, Hadoop yapılandırma dizinindeki dosyaları bulun.)

  3. Yapılandırma değerlerini SQL Server makinesindeki ilgili dosyalardaki value özelliğine kopyalayın.

    # Yapılandırma dosyası Yapılandırma anahtarı Action
    1 core-site.xml polybase.kerberos.kdchost KDC ana bilgisayar adını belirtin. Örneğin, kerberos.your-realm.com.
    2 core-site.xml polybase.kerberos.realm Kerberos bölgesi belirtin. Örneğin, YOUR-REALM.COM1, 2
    3 core-site.xml hadoop.security.authentication Hadoop yan yapılandırmasını bulun ve SQL Server makinesine kopyalayın. Örneğin, KERBEROS1
    4 hdfs-site.xml dfs.namenode.kerberos.principal Hadoop yan yapılandırmasını bulun ve SQL Server makinesine kopyalayın. Örneğin, hdfs/_HOST@YOUR-REALM.COM
    5 mapred-site.xml mapreduce.jobhistory.principal Hadoop yan yapılandırmasını bulun ve SQL Server makinesine kopyalayın. Örneğin, mapred/_HOST@YOUR-REALM.COM
    6 mapred-site.xml mapreduce.jobhistory.address Hadoop yan yapılandırmasını bulun ve SQL Server makinesine kopyalayın. Örneğin, 10.xxx.xxx.174:10020
    7 yarn-site.xml yarn.resourcemanager.principal Hadoop yan yapılandırmasını bulun ve SQL Server makinesine kopyalayın. Örneğin, yarn/_HOST@YOUR-REALM.COM

    1 Bu değer büyük harflerle yazılmalıdır.
    2 Multi-realm desteklenmiyor.

  4. Her Hadoop kullanıcısının kimlik doğrulama bilgilerini belirtmek için veritabanı kapsamlı bir kimlik bilgisi nesnesi oluşturun. Daha fazla bilgi için PolyBase Transact-SQL referansına bakınız.