다음을 통해 공유


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.application.classpathmapreduce.application.classpath 구성을 사용한 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/,$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 속성에 복사합니다.

    # 구성 파일 구성 키 작업
    1 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 개체를 참조하세요.

다음 단계

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