Hadoop에 대한 PolyBase 구성 및 보안

적용 대상:SQL Server - Windows 전용 Azure SQL Managed Instance

이 문서에서는 Hadoop에 대한 PolyBase 연결에 영향을 주는 다양한 구성 설정에 대한 참조를 제공합니다. Hadoop에서 PolyBase를 사용하는 방법에 대한 연습은 Hadoop의 외부 데이터에 액세스하도록 PolyBase 구성을 참조하세요.

참고 항목

SQL Server 2022(16.x)부터 Hadoop은 PolyBase에서 지원되지 않습니다.

Hadoop.RPC.Protection 설정

hadoop 클러스터에서 통신을 보호하는 일반적인 방법은 구성을 '개인 정보' 또는 '무결성'으로 변경하는 hadoop.rpc.protection 것입니다. 기본적으로 PolyBase는 구성이 '인증'으로 설정되었다고 가정합니다. 이 기본값을 재정의하려면 파일에 다음 속성을 core-site.xml 추가합니다. 이 구성을 변경하면 SQL Server에 대한 TLS 연결 및 Hadoop 노드 간에 안전한 데이터 전송을 활성화합니다.

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

'개인 정보' 또는 '무결성'을 hadoop.rpc.protection사용하려면 SQL Server 인스턴스 버전이 SQL Server 2016 SP1 CU7, SQL Server 2016 SP2 또는 SQL Server 2017 CU3 이상이어야 합니다.

CDH 5.X 클러스터에 대한 예제 XML 파일

Yarn-site.xml구성을 mapreduce.application.classpath 사용합니다yarn.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.xmlyarn-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 . 이렇게 하면 Hadoop 노드 간의 데이터 통신이 암호화되지 않습니다. '개인 정보' 또는 '무결성' 설정을 hadoop.rpc.protection사용하려면 PolyBase 서버에서 core-site.xml 파일을 업데이트합니다. 자세한 내용은 Hadoop.rpc.protection을 사용하여 Hadoop 클러스터에 연결하는 이전 섹션을 참조하세요.

MIT KDC를 사용하여 Kerberos로 보호되는 Hadoop 클러스터에 연결하려면 다음을 수행합니다.

  1. SQL Server의 설치 경로에서 Hadoop 구성 디렉터리를 찾습니다. 일반적으로 경로는 .입니다 C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn\PolyBase\Hadoop\conf.

  2. 테이블에 나열된 구성 키의 Hadoop 쪽 구성 값을 찾습니다. (Hadoop 컴퓨터에서 Hadoop 구성 디렉터리에서 파일을 찾습니다.)

  3. 구성 값을 SQL Server 컴퓨터의 해당 파일 내 value 속성에 복사합니다.

    # 구성 파일 구성 키 작업
    6 core-site.xml polybase.kerberos.kdchost KDC 호스트 이름을 지정합니다. 예: kerberos.your-realm.com.
    2 core-site.xml polybase.kerberos.realm Kerberos 영역을 지정합니다. 예를 들면 YOUR REALM.COM과 같습니다.

    구성 참고: 영역 이름은 대문자로 작성해야 합니다.

    다중 영역은 지원되지 않습니다.
    3 core-site.xml hadoop.security.authentication Hadoop 쪽 구성을 찾아 SQL Server 컴퓨터에 복사합니다. 예: KERBEROS

    보안 참고 사항:KERBEROS 대문자로 작성해야 합니다.
    4 hdfs-site.xml dfs.namenode.kerberos.principal Hadoop 쪽 구성을 찾아 SQL Server 컴퓨터에 복사합니다. 예: hdfs/_HOST@YOUR-REALM.COM
    5 mapred-site.xml mapreduce.jobhistory.principal Hadoop 쪽 구성을 찾아 SQL Server 컴퓨터에 복사합니다. 예: mapred/_HOST@YOUR-REALM.COM
    6 mapred-site.xml mapreduce.jobhistory.address Hadoop 쪽 구성을 찾아 SQL Server 컴퓨터에 복사합니다. 예: 10.xxx.xxx.174:10020
    7 yarn-site.xml yarn.resourcemanager.principal Hadoop 쪽 구성을 찾아 SQL Server 컴퓨터에 복사합니다. 예: yarn/_HOST@YOUR-REALM.COM
  4. 데이터베이스 범위 자격 증명 개체를 만들어 각 Hadoop 사용자에 대해 인증 정보를 지정합니다. PolyBase T-SQL 개체를 참조하세요.

다음 단계

자세한 내용은 다음 문서를 참조하세요.