Aracılığıyla paylaş


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

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

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ı

Hadoop kümesindeki iletişimin güvenliğini sağlamanın yaygın bir yolu, yapılandırmayı hadoop.rpc.protection 'Gizlilik' veya 'Bütünlük' olarak değiştirmektir. Varsayılan olarak PolyBase, yapılandırmanın 'Kimlik Doğrulaması' olarak ayarlandığı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 aktarımını ve SQL Server'a TLS bağlantısını etkinleştirir.

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

için 'Gizlilik' veya 'Bütünlük' kullanmak için hadoop.rpc.protectionSQL Server örneği sürümü en az SQL Server 2016 SP1 CU7, SQL Server 2016 SP2 veya SQL Server 2017 CU3 olmalıdır.

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 Ambari'de aynı adlandırma kuralı altında 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 güvenli kümesinde kimlik doğrulaması yaparken ayarın varsayılan olarak 'Kimlik Doğrulaması' olmasını beklediğine hadoop.rpc.protection dikkat edin. Bu, Hadoop düğümleri arasındaki veri iletişimini şifrelenmemiş olarak bırakır. için 'Gizlilik' veya 'Bütünlük' ayarlarını kullanmak için hadoop.rpc.protectionPolyBase sunucusundaki dosyayı güncelleştirin core-site.xml . 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. Tabloda listelenen yapılandırma anahtarlarının Hadoop yan yapılandırma değerini bulun. (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.COM

    Yapılandırma notu: Bölge adı büyük harfle yazılmalıdır.

    Çoklu bölge desteklenmez.
    3 core-site.xml hadoop.security.authentication Hadoop yan yapılandırmasını bulun ve SQL Server makinesine kopyalayın. Örneğin: KERBEROS

    Güvenlik notu:KERBEROS büyük harfle yazılmalıdır.
    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
  4. Her Hadoop kullanıcısının kimlik doğrulama bilgilerini belirtmek için veritabanı kapsamlı bir kimlik bilgisi nesnesi oluşturun. Bkz. PolyBase T-SQL nesneleri.

Sonraki Adımlar

Daha fazla bilgi için aşağıdaki makalelere bakın: