适用于: SQL Server Azure 数据工厂中的 SSIS Integration Runtime

Hadoop 连接管理器通过使用你为属性指定的值使 SQL Server Integration Services (SSIS) 包能够连接到 Hadoop 群集。

配置 Hadoop 连接管理器

  • 在“添加 SSIS 连接管理器”对话框中,选择“Hadoop”>“添加” 。 此时将打开“Hadoop 连接管理器编辑器” 对话框。

  • 若要配置相关的 Hadoop 群集信息,请在左窗格中选择“WebHCat”或“WebHDFS”选项卡

  • 如果启用“WebHCat”选项以在 Hadoop 上调用 Hive 或 Pig 作业,请执行以下操作:

  • 对于“WebHCat 主机”,请输入承载 WebHCat 服务的服务器。

  • 对于“WebHCat 端口” ,请输入 WebHCat 服务的端口,该端口默认是 50111。

  • 选择访问 WebHCat 服务的 “身份验证”方法。 可用值有“基本” Kerberos

  • 对于“WebHCat 用户” ,请输入有权访问 WebHCat 的“用户”

  • 如果你选择 Kerberos 身份验证,请输入用户的“密码” 和“域”

  • 如果启用“WebHDFS”选项以从 HDFS 中复制数据或将数据复制到其中,请执行以下操作:

  • 对于“WebHDFS 主机” ,请输入承载 WebHDFS 服务的服务器。

  • 对于“WebHDFS 端口” ,请输入 WebHDFS 服务的端口,该端口默认是 50070。

  • 选择访问 WebHDFS 服务的 “身份验证”方法。 可用值有“基本” Kerberos

  • 对于“WebHDFS 用户” ,请输入有权访问 HDFS 的用户。

  • 如果你选择 Kerberos 身份验证,请输入用户的“密码” 和“域”

  • 选择“测试连接”。 (仅测试你启用的连接)。

  • 选择“确定”以关闭该对话框。

    连接 Kerberos 身份验证

    有两个选项可用来设置本地环境,以便可以配合使用 Kerberos 身份验证和 Hadoop 连接管理器。 可选择更符合你情况的选项。

  • 选项 1: 将 SSIS 计算机联接到 Kerberos 领域
  • 选项 2: 启用 Windows 域和 Kerberos 领域之间的相互信任
  • 选项 1:将 SSIS 计算机联接到 Kerberos 领域

  • 网关计算机需要联接 Kerberos 领域,且不能联接任何 Windows 域。
  • 配置方式:

    在 SSIS 计算机上:

  • 运行 Ksetup 实用工具来配置 Kerberos 密钥发行中心 (KDC) 服务器和领域。

    计算机必须配置为工作组的成员,因为 Kerberos 领域与 Windows 域不同。 设置 Kerberos 领域并添加 KDC 服务器,如以下示例所示。 根据需要,将 REALM.COM 替换为各自的领域。

    C:> Ksetup /setdomain REALM.COM`
    C:> Ksetup /addkdc REALM.COM <your_kdc_server_address>
    

    运行上述命令后,重启计算机。

  • 使用 Ksetup 命令验证配置。 输出应如以下示例所示:

    C:> Ksetup
    default realm = REALM.COM (external)
    REALM.com:
        kdc = <your_kdc_server_address>
    

    选项 2:启用 Windows 域和 Kerberos 领域之间的相互信任

  • 网关计算机必须联接 Windows 域。
  • 需要用于更新域控制器设置的权限。
  • 配置方式:

    根据需要,将下面教程中的 REALM.COMAD.COM 替换为各自的领域和域控制器。

    在 KDC 服务器上:

  • 编辑 krb5.conf 文件中的 KDC 配置。 通过引用下面的配置模板,允许 KDC 信任 Windows 域。 默认情况下,配置位于 /etc/krb5.conf。

    [logging]
    default = FILE:/var/log/krb5libs.log
    kdc = FILE:/var/log/krb5kdc.log
    admin_server = FILE:/var/log/kadmind.log
    [libdefaults]
    default_realm = REALM.COM
    dns_lookup_realm = false
    dns_lookup_kdc = false
    ticket_lifetime = 24h
    renew_lifetime = 7d
    forwardable = true
    [realms]
    REALM.COM = {
        kdc = node.REALM.COM
        admin_server = node.REALM.COM
    AD.COM = {
        kdc = windc.ad.com
        admin_server = windc.ad.com
    [domain_realm]
    .REALM.COM = REALM.COM
    REALM.COM = REALM.COM
    .ad.com = AD.COM
    ad.com = AD.COM
    [capaths]
    AD.COM = {
        REALM.COM = .
    

    在配置后重新启动 KDC 服务。

  • 在 KDC 服务器上准备名为 krbtgt/REALM.COM@AD.COM 的主体。 使用以下命令:

    Kadmin> addprinc krbtgt/REALM.COM@AD.COM

  • hadoop.security.auth_to_local HDFS 服务配置文件中,添加 RULE:[1:$1@$0](.*@AD.COM)s/@.*//

    在域控制器上:

  • 运行以下 Ksetup 命令以添加一个领域条目:

    C:> Ksetup /addkdc REALM.COM <your_kdc_server_address>
    C:> ksetup /addhosttorealmmap HDFS-service-FQDN REALM.COM
    
  • 建立从 Windows 域到 Kerberos 领域的信任。 在下面的示例中,[password] 是主体 krbtgt/REALM.COM@AD.COM 的密码。

    C:> netdom trust REALM.COM /Domain: AD.COM /add /realm /password:[password]

  • 选择要与 Kerberos 一起使用的加密算法。

  • 转到“服务器管理器”>“组策略管理”>“域” 。 从此处转到“组策略对象”>“默认或活动的域策略”>“编辑” 。

  • 在“组策略管理编辑器”弹出窗口中,转到“计算机配置”>“策略”>“Windows 设置”。 从此处转到“安全设置”>“本地策略”>“安全选项” 。 配置“网络安全: 配置 Kerberos 允许的加密类型”

  • 选择想要用来连接到 KDC 的加密算法。 通常,可以选择任一选项。

  • 使用 Ksetup 命令指定用于特定领域的加密算法

    C:> ksetup /SetEncTypeAttr REALM.COM DES-CBC-CRC DES-CBC-MD5 RC4-HMAC-MD5 AES128-CTS-HMAC-SHA1-96 AES256-CTS-HMAC-SHA1-96

  • 若要在 Windows 域中使用 Kerberos 主体,请创建域帐户和 Kerberos 主体之间的映射。

  • 转到“管理工具”>“Active Directory 用户和计算机” 。

  • 通过选择“视图”>“高级功能”,配置高级功能 。

  • 找到要创建映射的帐户,右键单击以查看“名称映射”,然后选择“Kerberos 名称”选项卡

  • 从领域中添加主体。

    运行以下 Ksetup 命令以添加一个领域条目。

    C:> Ksetup /addkdc REALM.COM <your_kdc_server_address>
    C:> ksetup /addhosttorealmmap HDFS-service-FQDN REALM.COM
    

    Hadoop Hive 任务
    Hadoop Pig 任务
    Hadoop 文件系统任务

  •