適用於:SQL Server 於 Windows 系統上
Azure SQL 受控執行個體
本文提供影響 PolyBase 連線至 Hadoop 的各種組態設定參考。 如需如何搭配使用 PolyBase 與 Hadoop 的逐步解說,請參閱設定 PolyBase 存取 Hadoop 中的外部資料。
注意
從 SQL Server 2022 (16.x) 開始,PolyBase 不再支援 Hadoop。
Hadoop.rpc.protection 設定
在 Hadoop 叢集中保護通訊的常見方法是將配置改 hadoop.rpc.protection 為 Privacy 或 Integrity。 預設情況下,PolyBase 假設配置設定為 Authenticate。 若要覆寫此預設,請新增下列屬性至 core-site.xml 檔案。 更改此配置可實現 Hadoop 節點間的安全資料傳輸及 TLS 連接至 SQL Server。
<!-- RPC Encryption information, PLEASE FILL THESE IN ACCORDING TO HADOOP CLUSTER CONFIG -->
<property>
<name>hadoop.rpc.protection</name>
<value></value>
</property>
要使用 Privacy 或 Integrity ,hadoop.rpc.protectionSQL Server 實例版本必須至少是 SQL Server 2016 SP1 CU7、SQL Server 2016 SP2 或 SQL Server 2017 CU3。
CDH 5.x 叢集的 XML 檔案範例
yarn-site.xml 包含 yarn.application.classpath 和 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>
如果您選擇將兩個組態設定分成 mapred-site.xml 和 yarn-site.xml,檔案會如下所示:
針對 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>
針對 mapred-site.xml:
請注意屬性 mapreduce.application.classpath。 在 CDH 5.x 中,你可以在 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>
Kerberos 設定
當 PolyBase 向 Kerberos 保護的叢集進行認證時,它預期 hadoop.rpc.protection 預設設定是 Authenticate 這樣。 此設定使 Hadoop 節點間的資料通訊保持不加密。 要使用 Privacy 或 Integrity 設定, hadoop.rpc.protection請更新 core-site.xml PolyBase 伺服器上的檔案。 如需詳細資訊,請參閱上一節:連線至 Hadoop 叢集與 Hadoop.rpc.protection。
使用 MIT KDC 連線至 Kerberos 保護的 Hadoop 叢集:
在 SQL Server 的安裝路徑中,尋找 Hadoop 組態目錄。 檔案路徑通常是
C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn\PolyBase\Hadoop\conf。請查找下表中列出的設定鍵的 Hadoop 端設定值。 (在 Hadoop 電腦上,尋找 Hadoop 組態目錄中的檔案)。
將組態值複製到 SQL Server 電腦上對應檔案中的 Value 屬性。
# 組態檔 組態金鑰 Action 1 core-site.xmlpolybase.kerberos.kdchost指定 KDC 主機名稱。 例如: kerberos.your-realm.com。2 core-site.xmlpolybase.kerberos.realm指定 Kerberos 領域。 例如, YOUR-REALM.COM1、23 core-site.xmlhadoop.security.authentication尋找 Hadoop 端組態並複製到 SQL Server 電腦。 例如, KERBEROS14 hdfs-site.xmldfs.namenode.kerberos.principal尋找 Hadoop 端組態並複製到 SQL Server 電腦。 例如, hdfs/_HOST@YOUR-REALM.COM5 mapred-site.xmlmapreduce.jobhistory.principal尋找 Hadoop 端組態並複製到 SQL Server 電腦。 例如, mapred/_HOST@YOUR-REALM.COM6 mapred-site.xmlmapreduce.jobhistory.address尋找 Hadoop 端組態並複製到 SQL Server 電腦。 例如, 10.xxx.xxx.174:100207 yarn-site.xmlyarn.resourcemanager.principal尋找 Hadoop 端組態並複製到 SQL Server 電腦。 例如, yarn/_HOST@YOUR-REALM.COM1 此值必須以大寫書寫。
2 不支援多領域。建立資料庫範圍的認證物件,以指定每個 Hadoop 使用者的驗證資訊。 欲了解更多資訊,請參閱 PolyBase Transact-SQL 參考資料。