PolyBase 구성PolyBase configuration

이 항목 적용 대상: 예SQL Server없습니다Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

PolyBase를 구성하려면 다음 절차를 수행합니다.Use the procedures below to configure PolyBase.

외부 데이터 원본 구성External data source configuration

SQL Server에서 외부 데이터 원본에 대한 연결을 확인해야 합니다.You must ensure connectivity to the external data source from SQL Server. 연결 형식에 따라 쿼리 성능이 크게 달라집니다.The type of connectivity strongly influences query performance. 예를 들어 PolyBase 쿼리에서 10Gbit 이더넷 링크를 사용하는 경우 1Gbit 이더넷 링크보다 쿼리 응답 속도가 빨라집니다.For example, a 10Gbit Ethernet link will result in a faster query response time for PolyBase queries than a 1Gbit Ethernet link.

sp_configure를 사용하여 SQL Server가 사용 중인 Hadoop 버전 또는 Azure Blob 저장소에 연결하도록 구성해야 합니다.You must configure SQL Server to connect to either your Hadoop version or Azure Blob storage using sp_configure. PolyBase는 HDP(Hortonworks Data Platform) 및 CDH(Cloudera Distributed Hadoop)의 두 가지 Hadoop 배포를 지원합니다.PolyBase supports two Hadoop distributions: Hortonworks Data Platform (HDP) and Cloudera Distributed Hadoop (CDH). 지원되는 외부 데이터 원본의 전체 목록은 PolyBase Connectivity Configuration(Transact-SQL)을 참조하세요.For a complete list of supported external data sources, see PolyBase Connectivity Configuration (Transact-SQL).
1 참고: PolyBase는 Cloudera 암호화 영역을 지원하지 않습니다.1 Please note: PolyBase does not support Cloudera Encrypted Zones.

sp_configure 실행Run sp_configure

  1. sp_configure ‘hadoop connectivity’를 실행하고 적절한 값을 설정합니다.Run sp_configure ‘hadoop connectivity’ and set an appropriate value. 값을 찾으려면 PolyBase Connectivity Configuration(Transact-SQL)을 참조하세요.To find the value, see PolyBase Connectivity Configuration (Transact-SQL).

    -- Values map to various external data sources.  
    -- Example: value 7 stands for Azure blob storage and Hortonworks HDP 2.3 on Linux.  
    sp_configure @configname = 'hadoop connectivity', @configvalue = 7;   
    GO   
    
    RECONFIGURE   
    GO   
    
  2. services.msc를 사용하여 SQL Server를 다시 시작해야 합니다.You must restart SQL Server using services.msc. SQL Server를 다시 시작하면 다음 서비스도 다시 시작됩니다.Restarting SQL Server restarts these services:

    • SQL Server PolyBase 데이터 이동 서비스SQL Server PolyBase Data Movement Service

    • SQL Server PolyBase 엔진SQL Server PolyBase Engine

푸시다운 구성Pushdown configuration

쿼리 성능을 향상하려면 Hadoop 환경에 맞는 일부 SQL Server 구성 매개 변수를 제공해야 하는 Hadoop 클러스터에 대한 푸시다운 계산을 사용하도록 설정합니다.To improve query performance, enable pushdown computation to a Hadoop cluster you will need to provide SQL Server some configuration parameters specific to your Hadoop environment:

  1. SQL Server 설치 경로에서 yarn-site.xml 파일을 찾습니다.Find the file yarn-site.xml in the installation path of SQL Server. 일반적인 경로는 다음과 같습니다.Typically, the path is:

    C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn\Polybase\Hadoop\conf  
    
  2. Hadoop 컴퓨터의 Hadoop 구성 디렉터리에서 동일한 파일을 찾습니다.On the Hadoop machine, find the analogous file in the Hadoop configuration directory. 이 파일에서 구성 키 yarn.application.classpath의 값을 찾아서 복사합니다.In the file, find and copy the value of the configuration key yarn.application.classpath.

  3. SQL Server 컴퓨터의 yarn.site.xml 파일 에서 yarn.application.classpath 속성을 찾은 다음On the SQL Server machine, in the yarn.site.xml file, find the yarn.application.classpath property. Hadoop 컴퓨터의 값을 value 요소에 붙여넣습니다.Paste the value from the Hadoop machine into the value element.

  4. 모든 CDH 5.X 버전에서 mapreduce.application.classpath 구성 매개 변수를 yarn.site.xml 파일의 끝이나 mapred-site.xml 파일에 추가해야 합니다.For all CDH 5.X versions, you will need to add the mapreduce.application.classpath configuration parameters either to the end of your yarn.site.xml file or into the mapred-site.xml file. HortonWorks는 yarn.application.classpath 구성 내에 이러한 구성을 포함하고 있습니다.HortonWorks includes these configurations within the yarn.application.classpath configurations.

Hadoop.RPC.Protection 설정을 사용하여 Hadoop 클러스터에 연결Connecting to Hadoop Cluster with Hadoop.RPC.Protection setting

Hadoop 클러스터에서 통신을 보호하는 일반적인 방법은 '개인 정보' 또는 '무결성' hadoop.rpc.protection 구성을 변경하는 것입니다.A common way to secure communication in a hadoop cluster is by changing the hadoop.rpc.protection configuration to 'Privacy' or 'Integrity'. 기본적으로 PolyBase는 구성이 '인증'으로 설정되었다고 가정합니다.By Default, PolyBase assumes the configuration is set to 'Authenticate'. 이 기본값을 재정의하려면 core-site.xml 파일에 다음 속성을 추가해야 합니다.To override this default you need to add the following property to your core-site.xml file. 이 구성을 변경하면 SQL Server에 대한 SSL 연결 뿐만 아니라 hadoop 노드 간에 안전한 데이터 전송을 활성화합니다.Changing this configuration will enable secure data transfer among the hadoop nodes as well as SSL connection to SQL Server.

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

CDH 5.X 클러스터의 yarn-site.xml 및 mapred-site.xml 파일의 예제Example yarn-site.xml and mapred-site.xml files for CDH 5.X cluster.

yarn.application.classpath 및 mapreduce.application.classpath 구성이 포함된 Yarn-site.xml입니다.Yarn-site.xml with yarn.application.classpath and mapreduce.application.classpath configuration.

<?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로 두 가지 구성 설정을 분리하도록 선택한 경우 파일은 다음과 같습니다.If you choose to break your two configuration settings into the mapred-site.xml and the yarn-site.xml then the files would be the following:

yarn-site.xmlyarn-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.xmlmapred-site.xml

mapreduce.application.classpath 속성이 추가되었습니다.Note that we added the property mapreduce.application.classpath. CDH 5.x에서 Ambari의 동일한 명명 규칙에서 구성 값을 찾을 수 있습니다.In CDH 5.x you will find the configuration values under the same naming convention in 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 구성Kerberos configuration

PolyBase가 Kerberos로 보호되는 클러스터에 인증하는 경우 hadoop.rpc.protection 설정을 인증으로 설정해야 합니다.Please note, that when PolyBase authenticates to a Kerberos secured cluster, we require the hadoop.rpc.protection setting to be set to authentication. 이렇게 하면 암호화되지 않은 Hadoop 노드 간의 데이터 통신이 유지됩니다.This will leave the data communication between Hadoop nodes unencrypted.

Kerberos로 보호되는 Hadoop 클러스터에 연결하려면 다음 단계를 수행합니다[MIT KDC 사용].To connect to a Kerberos-secured Hadoop cluster [using MIT KDC] :

  1. SQL Server의 설치 경로에서 Hadoop 구성 디렉터리를 찾습니다.Find the Hadoop configuration directory in the installation path of SQL Server. 일반적인 경로는 다음과 같습니다.Typically, the path is:

    C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn\Polybase\Hadoop\conf  
    
  2. 아래 표에 나와 있는 구성 키의 Hadoop 쪽 구성 값을 찾습니다.Find the Hadoop side configuration value of the configuration keys listed in the table. 구성 파일은 Hadoop 컴퓨터의 Hadoop 구성 디렉터리에서 찾을 수 있습니다.(On the Hadoop machine, find the files in the Hadoop configuration directory.)

  3. 구성 값을 SQL Server 컴퓨터의 해당 파일 내 value 속성에 복사합니다.Copy the configuration values into the value property in the corresponding files on the SQL Server machine.

    # 구성 파일Configuration file 구성 키Configuration key 동작Action
    11 core-site.xmlcore-site.xml polybase.kerberos.kdchostpolybase.kerberos.kdchost KDC 호스트 이름을 지정합니다.Specify the KDC hostname. 예를 들면 kerberos.your-realm.com과 같습니다.For example: kerberos.your-realm.com.
    22 core-site.xmlcore-site.xml polybase.kerberos.realmpolybase.kerberos.realm Kerberos 영역을 지정합니다.Specify the Kerberos realm. 예를 들면 YOUR REALM.COM과 같습니다.For example: YOUR-REALM.COM
    33 core-site.xmlcore-site.xml hadoop.security.authenticationhadoop.security.authentication Hadoop 쪽 구성을 찾아 SSQL Server 컴퓨터에 복사합니다.Find the Hadoop side configuration and copy to SQL Server machine. 예를 들면 KERBEROS와 같습니다.For example: KERBEROS
    보안 정보: KERBEROS는 대문자로 작성해야 합니다.Security note: KERBEROS must be written in upper case. 소문자로 작성되면 실행되지 않을 수 있습니다.If lower case, it might not be on.
    44 hdfs-site.xmlhdfs-site.xml dfs.namenode.kerberos.principaldfs.namenode.kerberos.principal Hadoop 쪽 구성을 찾아 SSQL Server 컴퓨터에 복사합니다.Find the Hadoop side configuration and copy to SQL Server machine. 예: hdfs/_HOST@YOUR-REALM.COMFor example: hdfs/_HOST@YOUR-REALM.COM
    55 mapred-site.xmlmapred-site.xml mapreduce.jobhistory.principalmapreduce.jobhistory.principal Hadoop 쪽 구성을 찾아 SSQL Server 컴퓨터에 복사합니다.Find the Hadoop side configuration and copy to SQL Server machine. 예: mapred/_HOST@YOUR-REALM.COMFor example: mapred/_HOST@YOUR-REALM.COM
    66 mapred-site.xmlmapred-site.xml mapreduce.jobhistory.addressmapreduce.jobhistory.address Hadoop 쪽 구성을 찾아 SSQL Server 컴퓨터에 복사합니다.Find the Hadoop side configuration and copy to SQL Server machine. 예를 들면 10.193.26.174:10020과 같습니다.For example: 10.193.26.174:10020
    77 yarn-site.xml yarnyarn-site.xml yarn. yarn.resourcemanager.principalyarn.resourcemanager.principal Hadoop 쪽 구성을 찾아 SSQL Server 컴퓨터에 복사합니다.Find the Hadoop side configuration and copy to SQL Server machine. 예: yarn/_HOST@YOUR-REALM.COMFor example: yarn/_HOST@YOUR-REALM.COM
  4. 데이터베이스 범위 자격 증명 개체를 만들어 각 Hadoop 사용자에 대해 인증 정보를 지정합니다.Create a database-scoped credential object to specify the authentication information for each Hadoop user. PolyBase T-SQL 개체를 참조하세요.See PolyBase T-SQL objects.

다음 단계Next steps

PolyBase T-SQL 개체PolyBase T-SQL objects

PolyBase 시작Get started with PolyBase

관련 항목:See Also

PolyBase 연결 구성 (Transact-SQL) PolyBase Connectivity Configuration (Transact-SQL)
PolyBase 가이드PolyBase Guide