Konfigurasi dan keamanan PolyBase untuk Hadoop
Berlaku untuk: SQL Server - Azure SQL Managed Instance khusus Windows
Artikel ini menyediakan referensi untuk berbagai pengaturan konfigurasi yang memengaruhi konektivitas PolyBase ke Hadoop. Untuk panduan tentang cara menggunakan PolyBase dengan Hadoop, lihat Mengonfigurasi PolyBase untuk mengakses data eksternal di Hadoop.
Catatan
Mulai SQL Server 2022 (16.x), Hadoop tidak lagi didukung di PolyBase.
Pengaturan Hadoop.RPC.Protection
Cara umum untuk mengamankan komunikasi dalam kluster hadoop adalah dengan mengubah hadoop.rpc.protection
konfigurasi menjadi 'Privasi' atau 'Integritas'. Secara default, PolyBase mengasumsikan konfigurasi diatur ke 'Autentikasi'. Untuk mengambil alih default ini, tambahkan properti berikut ke core-site.xml
file . Mengubah konfigurasi ini akan memungkinkan transfer data yang aman di antara node hadoop dan koneksi TLS ke SQL Server.
<!-- RPC Encryption information, PLEASE FILL THESE IN ACCORDING TO HADOOP CLUSTER CONFIG -->
<property>
<name>hadoop.rpc.protection</name>
<value></value>
</property>
Untuk menggunakan 'Privasi' atau 'Integritas' untuk hadoop.rpc.protection
, versi instans SQL Server harus setidaknya SQL Server 2016 SP1 CU7, SQL Server 2016 SP2, atau SQL Server 2017 CU3.
Contoh file XML untuk kluster CDH 5.X
Yarn-site.xml
dengan yarn.application.classpath
dan mapreduce.application.classpath
konfigurasi.
<?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>
Jika Anda memilih untuk memecah dua pengaturan konfigurasi Anda menjadi mapred-site.xml
dan yarn-site.xml
, maka filenya adalah sebagai berikut:
Untuk 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>
Untuk mapred-site.xml
:
Perhatikan properti mapreduce.application.classpath
. Di CDH 5.x Anda akan menemukan nilai konfigurasi di bawah konvensi penamaan yang sama di 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>
Konfigurasi Kerberos
Catatan, ketika PolyBase mengautentikasi ke kluster aman Kerberos, itu mengharapkan hadoop.rpc.protection
pengaturannya adalah 'Autentikasi' secara default. Ini membuat komunikasi data antara node Hadoop tidak terenkripsi. Untuk menggunakan pengaturan 'Privasi' atau 'Integritas' untuk hadoop.rpc.protection
, perbarui core-site.xml
file di server PolyBase. Untuk informasi selengkapnya, lihat bagian Sebelumnya Menyambungkan ke Kluster Hadoop dengan Hadoop.rpc.protection.
Untuk menyambungkan ke kluster Hadoop yang diamankan Kerberos menggunakan MIT KDC:
Temukan direktori konfigurasi Hadoop di jalur penginstalan SQL Server. Biasanya, jalurnya adalah
C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn\PolyBase\Hadoop\conf
.Temukan nilai konfigurasi sisi Hadoop dari kunci konfigurasi yang tercantum dalam tabel. (Pada komputer Hadoop, temukan file di direktori konfigurasi Hadoop.)
Salin nilai konfigurasi ke properti nilai dalam file yang sesuai di komputer SQL Server.
# File konfigurasi Kunci konfigurasi Perbuatan 1 core-site.xml
polybase.kerberos.kdchost
Tentukan nama host KDC. Misalnya: kerberos.your-realm.com
.2 core-site.xml
polybase.kerberos.realm
Tentukan realm Kerberos. Misalnya: YOUR-REALM.COM
Catatan konfigurasi: Nama realm harus ditulis dalam huruf besar.
Multi-realm tidak didukung.3 core-site.xml
hadoop.security.authentication
Temukan konfigurasi sisi Hadoop dan salin ke komputer SQL Server. Misalnya: KERBEROS
Catatan keamanan:KERBEROS
harus ditulis dalam huruf besar.4 hdfs-site.xml
dfs.namenode.kerberos.principal
Temukan konfigurasi sisi Hadoop dan salin ke komputer SQL Server. Misalnya: hdfs/_HOST@YOUR-REALM.COM
5 mapred-site.xml
mapreduce.jobhistory.principal
Temukan konfigurasi sisi Hadoop dan salin ke komputer SQL Server. Misalnya: mapred/_HOST@YOUR-REALM.COM
6 mapred-site.xml
mapreduce.jobhistory.address
Temukan konfigurasi sisi Hadoop dan salin ke komputer SQL Server. Misalnya: 10.xxx.xxx.174:10020
7 yarn-site.xml
yarn.resourcemanager.principal
Temukan konfigurasi sisi Hadoop dan salin ke komputer SQL Server. Misalnya: yarn/_HOST@YOUR-REALM.COM
Buat objek kredensial cakupan database untuk menentukan informasi autentikasi untuk setiap pengguna Hadoop. Lihat objek T-SQL PolyBase.
Langkah berikutnya
Untuk informasi lebih lanjut, baca artikel berikut: