集群互信配置

MapReduce BMR

  • 发行版本
  • 功能发布记录
  • 产品描述
    • 节点类型说明
    • 产品优势
    • 应用场景
    • 产品功能
    • 产品简介
  • Python-SDK
    • Cluster(集群)
    • BmrClient
    • 异常处理
    • InstanceGroup(实例组)
    • 简介
    • 文档更新记录
    • Step(作业)
    • 版本变更记录
    • Instance(实例)
    • 快速入门
    • 安装SDK工具包
  • 开源组件介绍
    • Impala
    • Pig
    • Druid
    • Presto
    • Hue
    • Ooize
    • HBase
    • Kudu
    • Sqoop
    • Hadoop-Streaming
    • Zeppelin
    • Alluxio
    • Kerberos
      • 集群互信配置
      • 概述
    • ClickHouse
      • 常见问题
      • 数据迁移同步
        • 从Spark导入
        • 从Kafka同步数据
        • 将自建ClickHouse数据迁移到云ClickHouse中
        • 从Flink导入
        • 从MySQL导入和同步
        • 从本地数据导入
          • Parquet格式
          • JSON
          • SQL转储
          • CSV and TSV
      • 快速入门
        • 访问模式
        • 客户端登录
        • 创建ClickHouse集群
        • 基础操作
      • 运维相关操作
        • ClickHouse集群扩容
        • ClickHouse集群缩容
        • 日志配置说明
        • 监控告警配置
    • Ranger
      • ranger概述
      • 权限策略配置
    • Paimon
      • Hive示例
      • StarRocks示例
      • 联合查询示例
      • Flink示例
      • Spark示例
    • Flink
      • 基础使用
    • Trino
      • 基础使用
      • 概述
    • Spark
      • 引擎增强
      • 基础使用
    • Hive
      • 开发指南
        • 自定义函数(UDF)
      • 实践操作
        • Hive迁移
        • Hive操作HBase外表
      • 基础使用
        • Hive基础操作
        • Hive连接方式
  • Java-SDK
    • Cluster(集群)
    • 异常
    • BmrClient
    • InstanceGroup(实例组)
    • 日志
    • 文档更新记录
    • 版本更新记录
    • Step(作业)
    • Instance(实例)
    • 快速入门
    • 安装SDK工具包
    • 概述
  • 快速入门
    • 操作流程概览
    • 环境准备
    • 创建集群
    • 数据准备
    • 开发作业
    • 查看结果
    • ClickHouse
      • 导入数据
      • 创建数据库
      • 连接集群
      • 创建表
  • 操作指南
    • 集群模板
    • 服务管理
    • 集群配置
      • 用户管理
      • 弹性伸缩
      • 创建集群
      • 集群安全模式
      • EIP
      • Hive元数据说明
      • 集群审计
      • 配置已有集群
      • 安全组
    • 管理作业
      • 创建作业
      • 诊断、调优
      • 定时任务
      • 查看作业
    • 访问集群
      • 访问集群服务页面
      • 访问集群-openVPN访问集群
      • 使用OpenVPN提交Hadoop作业
      • SSH连接到集群
    • 实践操作
      • 存储数据至HBase
      • 导入数据
      • 编译Maven项目
      • Sqoop导入导出数据
        • 导出数据
    • 权限管理
      • 多用户访问控制
      • 用户管理
    • 集群管理
      • 节点管理
      • 监控报警
      • 集群指标
      • 资源管理
  • 服务等级协议SLA
    • BMR服务等级协议SLA
  • API参考
    • 通用说明
    • 公共头
    • 数据类型
    • 版本更新记录
    • 服务域名
    • 实例操作接口
    • 实例组操作接口
    • 集群操作接口
    • API简介
    • 错误码
  • 常见问题
    • 安全性问题
    • 计费类问题
    • 常见问题总览
    • 性能类问题
    • 配置类问题
    • 故障类问题
  • 视频专区
    • 操作指南
    • 产品介绍
  • 场景教程
    • 流式应用场景
    • 离线应用场景
    • 使用Hive分析网站日志
    • Sqoop应用文档
    • 定时分析日志数据
    • HIVE
      • 不同集群的 Hive 迁移方案
      • Hive 操作 Hbase 外部表
  • 产品定价
    • 转换计费方式
    • 计费项
    • 到期或欠费说明
    • 包年包月计费
    • 续费说明
    • 变更配置计费说明
    • 计费方式
    • 按需计费
    • 账单和用量查询
    • 退款说明
所有文档
menu
没有找到结果,请重新输入

MapReduce BMR

  • 发行版本
  • 功能发布记录
  • 产品描述
    • 节点类型说明
    • 产品优势
    • 应用场景
    • 产品功能
    • 产品简介
  • Python-SDK
    • Cluster(集群)
    • BmrClient
    • 异常处理
    • InstanceGroup(实例组)
    • 简介
    • 文档更新记录
    • Step(作业)
    • 版本变更记录
    • Instance(实例)
    • 快速入门
    • 安装SDK工具包
  • 开源组件介绍
    • Impala
    • Pig
    • Druid
    • Presto
    • Hue
    • Ooize
    • HBase
    • Kudu
    • Sqoop
    • Hadoop-Streaming
    • Zeppelin
    • Alluxio
    • Kerberos
      • 集群互信配置
      • 概述
    • ClickHouse
      • 常见问题
      • 数据迁移同步
        • 从Spark导入
        • 从Kafka同步数据
        • 将自建ClickHouse数据迁移到云ClickHouse中
        • 从Flink导入
        • 从MySQL导入和同步
        • 从本地数据导入
          • Parquet格式
          • JSON
          • SQL转储
          • CSV and TSV
      • 快速入门
        • 访问模式
        • 客户端登录
        • 创建ClickHouse集群
        • 基础操作
      • 运维相关操作
        • ClickHouse集群扩容
        • ClickHouse集群缩容
        • 日志配置说明
        • 监控告警配置
    • Ranger
      • ranger概述
      • 权限策略配置
    • Paimon
      • Hive示例
      • StarRocks示例
      • 联合查询示例
      • Flink示例
      • Spark示例
    • Flink
      • 基础使用
    • Trino
      • 基础使用
      • 概述
    • Spark
      • 引擎增强
      • 基础使用
    • Hive
      • 开发指南
        • 自定义函数(UDF)
      • 实践操作
        • Hive迁移
        • Hive操作HBase外表
      • 基础使用
        • Hive基础操作
        • Hive连接方式
  • Java-SDK
    • Cluster(集群)
    • 异常
    • BmrClient
    • InstanceGroup(实例组)
    • 日志
    • 文档更新记录
    • 版本更新记录
    • Step(作业)
    • Instance(实例)
    • 快速入门
    • 安装SDK工具包
    • 概述
  • 快速入门
    • 操作流程概览
    • 环境准备
    • 创建集群
    • 数据准备
    • 开发作业
    • 查看结果
    • ClickHouse
      • 导入数据
      • 创建数据库
      • 连接集群
      • 创建表
  • 操作指南
    • 集群模板
    • 服务管理
    • 集群配置
      • 用户管理
      • 弹性伸缩
      • 创建集群
      • 集群安全模式
      • EIP
      • Hive元数据说明
      • 集群审计
      • 配置已有集群
      • 安全组
    • 管理作业
      • 创建作业
      • 诊断、调优
      • 定时任务
      • 查看作业
    • 访问集群
      • 访问集群服务页面
      • 访问集群-openVPN访问集群
      • 使用OpenVPN提交Hadoop作业
      • SSH连接到集群
    • 实践操作
      • 存储数据至HBase
      • 导入数据
      • 编译Maven项目
      • Sqoop导入导出数据
        • 导出数据
    • 权限管理
      • 多用户访问控制
      • 用户管理
    • 集群管理
      • 节点管理
      • 监控报警
      • 集群指标
      • 资源管理
  • 服务等级协议SLA
    • BMR服务等级协议SLA
  • API参考
    • 通用说明
    • 公共头
    • 数据类型
    • 版本更新记录
    • 服务域名
    • 实例操作接口
    • 实例组操作接口
    • 集群操作接口
    • API简介
    • 错误码
  • 常见问题
    • 安全性问题
    • 计费类问题
    • 常见问题总览
    • 性能类问题
    • 配置类问题
    • 故障类问题
  • 视频专区
    • 操作指南
    • 产品介绍
  • 场景教程
    • 流式应用场景
    • 离线应用场景
    • 使用Hive分析网站日志
    • Sqoop应用文档
    • 定时分析日志数据
    • HIVE
      • 不同集群的 Hive 迁移方案
      • Hive 操作 Hbase 外部表
  • 产品定价
    • 转换计费方式
    • 计费项
    • 到期或欠费说明
    • 包年包月计费
    • 续费说明
    • 变更配置计费说明
    • 计费方式
    • 按需计费
    • 账单和用量查询
    • 退款说明
  • 文档中心
  • arrow
  • MapReduceBMR
  • arrow
  • 开源组件介绍
  • arrow
  • Kerberos
  • arrow
  • 集群互信配置
本页目录
  • 工作准备
  • 添加跨域认证 Principal
  • 配置principal和user的映射关系
  • 配置krb5.conf
  • 修改BMR集群的/etc/hosts
  • 互信验证

集群互信配置

更新时间:2025-08-21

工作准备

注意事项:

  • 进行互信配置的两个集群的 nameservice 需要不同,BMR 默认 nameservice 为 bmr-cluster
  • 本文以 BMR 跨域访问 CDH 集群中的服务为例。配置完成后,BMR 在获取到本集群 KDC 授予的TGT(Ticket Granting Ticket)后,能够跨域访问 CDH 中的服务。
  • 本文配置的跨域互信是单向的,即 CDH 无法跨域访问 BMR 上的服务,如果需要实现双向跨域互信,按照同样的方法交换配置即可。
  • 如需配置外部集群(即CDH集群)与BMR集群间的互信,除本文说明操作外还需要修改 BMR 安全组规则使外部集群可访问 BMR 集群 Kerberos 服务。

在进行配置前,需获知集群 hostname 或 ip 以及 realm 信息,以 master 节点获取 hostname 和 realm 为例,具体操作步骤如下。

  1. 登录 BMR 集群的 master 节点;
  2. 执行hostname命令获取 hostname;或通过接口可直接获取集群hostname列表,参考 实例操作接口;
  3. 在 master 节点的 /etc/krb5.conf 文件中获取 realm,执行,其中 default_realm 即为所需的集群 realm。
Plain Text
1cat /etc/krb5.conf

为方便表述实际使用方式,在本文中,规定所使用的 BMR 集群与 CDH 集群信息如下:

集群 hostname realm
BMR master-8932187 BAIDU.COM
CDH test-cdh5-1 CDHTEST.COM

添加跨域认证 Principal

注意事项

  • 实现 BMR 集群和 CDH 集群之间的跨域互信,例如使用 BMR 集群的客户端访问 CDH 集群中的服务,两个集群 realm 需要同时拥有名为 krbtgt/CDHTEST.COM.COM@BAIDU.COM的 principal。
  • 默认情况下互信是单向的,CDH集群的客户端如需访问BMR集群的服务,两个REALM则需要有krbtgt/BAIDU.COM@CDHTEST.COM的principal。两个两次操作需要保证密码,version number和加密方式一致。

具体操作步骤如下:

  1. 使用 root 用户,SSH 登录 BMR 集群的 master 节点;
  2. 执行以下命令,添加 princ,其中 krbtgt/CDHTEST.COM@BAIDU.COM 为跨域访问的共同 principal;
Plain Text
1kadmin.local -q 'add_principal -e "aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal" krbtgt/CDHTEST.COM@BAIDU.COM'
  1. 按照提示输入两次密码(建议为集群密码),在两个集群中添加Principal时使用的密码必须一致;
  2. 登录 CDH 集群,重复上述步骤1~2。

配置principal和user的映射关系

  1. SSH 登录 BMR 集群的 master 节点;
  2. 执行以下命令,获取 HDFS 配置文件 core-site 中的hadoop.security.auth_to_local值:
Plain Text
1cat /etc/hadoop/conf/core-site.xml
  1. 将步骤2中获取的值,追加到 CDH 集群的 HDFS 配置文件 hadoop.security.auth_to_local 值末尾;
  2. 配置完毕后,重启 CDH 集群的HDFS;
  3. 配置完成后,在 CDH 集群节点上执行 hadoop org.apache.hadoop.security.HadoopKerberosName princ查看是否能成功解析用户。

配置krb5.conf

  1. SSH 登录 BMR 集群的 master 节点;
  2. 执行以下命令,修改 BMR 集群上krb5.conf的配置信息。注:一个集群中所有节点的 krb5.conf 配置一致:
Plain Text
1vim /etc/krb5.conf
  1. 修改krb5.conf中的[domain_realm],将 CDH 及BMR集群的节点 hostname 和realm做映射

修改前格式如下:

Plain Text
1[domain_realm]
2  baidu.com = BAIDU.COM

修改后示例如下:

Plain Text
1[domain_realm]
2  baidu.com = BAIDU.COM
3  core-8932187-3 = BAIDU.COM 
4  core-8932187-2 = BAIDU.COM
5  core-8932187-1 = BAIDU.COM
6  master-8932187 = BAIDU.COM
7  test-cdh5-1.baidu.com = CDHTEST.COM
8  test-cdh5-2.baidu.com = CDHTEST.COM
9  test-cdh5-3.baidu.com = CDHTEST.COM
  1. 修改 krb5.conf 中的 [realms] ,将 CDH的 KDC Server(配置在 CDH 集群的 krb5.conf 中)配置到 BMR 的 realms 中

修改前格式如下:

Plain Text
1[realms]
2  BAIDU.COM = {
3    #kadmin instance_name
4    admin_server = master-8932187
5    #kdc instance_name
6    kdc = master-8932187
7    database_module = openldap_ldapconf
8  }

修改后格式如下:

Plain Text
1[realms]
2  BAIDU.COM = {
3    #kadmin instance_name
4    admin_server = master-8932187
5    #kdc instance_name
6    kdc = master-8932187
7    database_module = openldap_ldapconf
8  }
9  HWLPOC.COM = {
10    kdc = test-cdh5-1.baidu.com
11    admin_server = test-cdh5-1.baidu.com
12  }
  1. krb5.conf中新增[capaths],krb5.conf 中 默认没有 [capaths] 相关配置。需新增配置,示例如下:
Plain Text
1[capaths]
2  CDHTEST.COM = {
3    BAIDU.COM = .
4  }
  1. 同步修改好的krb5.conf配置信息复制到BMR集群所有节点

    a.SSH 登录 BMR 集群master节点

    b.执行如下命令:

Plain Text
1vim instance
2 #把BMR集群所有节点(除了当前)hostname写入文件中,保存
3ansible -i instance all -m copy -a "src=/etc/krb5.conf dest=/etc/krb5.conf"
  1. 重启Kerberos服务

a.在master节点上执行如下命令

Plain Text
1systemctl restart krb5kdc.service
2systemctl restart kadmin.service

b.在master节点上执行如下命令

Plain Text
1[libdefaults]
2  kdc_timeout = 3000
3  max_retries = 3
4  udp_preference_limit = 1
5  renew_lifetime = 7d
6  forwardable = true
7  #cluster realm
8  default_realm = BAIDU.COM
9  ticket_lifetime = 24h
10  dns_lookup_realm = false
11  dns_lookup_kdc = false
12  default_ccache_name = /tmp/krb5cc_%{uid}
13  #default_tgs_enctypes = aes des3-cbc-sha1 rc4 des-cbc-md5
14  #default_tkt_enctypes = aes des3-cbc-sha1 rc4 des-cbc-md5
15
16[domain_realm]
17  #cluster realm
18  baidu.com = BAIDU.COM
19  core-8932187-3 = BAIDU.COM 
20  core-8932187-2 = BAIDU.COM
21  core-8932187-1 = BAIDU.COM
22  master-8932187 = BAIDU.COM
23  test-cdh5-1.baidu.com = CDHTEST.COM
24  test-cdh5-2.baidu.com = CDHTEST.COM
25  test-cdh5-3.baidu.com = CDHTEST.COM
26
27[logging]
28  default = FILE:/mnt/bmr/log/kerberos/krb5kdc.log
29  admin_server = FILE:/mnt/bmr/log/kerberos/kadmind.log
30  kdc = FILE:/mnt/bmr/log/kerberos/krb5kdc.log
31
32[realms]
33  BAIDU.COM = {
34    #kadmin instance_name
35    admin_server = master-8932187
36    #kdc instance_name
37    kdc = master-8932187
38    database_module = openldap_ldapconf
39  }
40  CDHTEST.COM = {
41    kdc = test-cdh5-1.baidu.com
42    admin_server = test-cdh5-1.baidu.com
43  }
44
45[dbdefaults]
46  ldap_kerberos_container_dn = cn=krbcontainer,dc=bmr.sh,dc=com
47
48[dbmodules]
49  openldap_ldapconf = {
50    db_library = kldap
51    #openldap ip
52    ldap_servers = ldap://172.18.0.33 
53    ldap_kerberos_container_dn = cn=krbcontainer,dc=bmr.sh,dc=com
54    ldap_kdc_dn = uid=krb5kdc,ou=People,dc=bmr.sh,dc=com
55    ldap_kadmind_dn = uid=kadmind,ou=People,dc=bmr.sh,dc=com
56    #kerberos-ldap key file
57    ldap_service_password_file = /etc/krb5.ldap
58    ldap_conns_per_server = 5
59 }
60[capaths]
61  CDHTEST.COM = {
62    BAIDU.COM = .
63  }

修改BMR集群的/etc/hosts

  1. SSH 登录 BMR 集群的 master 节点;
  2. 复制 CDH 集群节点 /etc/hosts 中的 CDH 集群节点信息,追加到 BMR 当前节点的 /etc/hosts 文件中。
Plain Text
1vim instance
2 #把 BMR 所有节点(除了当前)hostname写入文件中,保存
3ansible -i cores all -m copy -a "src=/etc/hosts dest=/etc/hosts"

互信验证

BMR 集群访问 CDH 集群的 HDFS 文件,示例如下:

Plain Text
1 #查看本集群hdfs
2hdfs dfs -ls /
3
4 #查看CDH集群hdfs
5 #test-cdh5-1.baidu.com为CDH集群的namenode所在节点
6hdfs dfs -ls hdfs://test-cdh5-1.baidu.com:8020/

上一篇
Alluxio
下一篇
概述