更新时间:2024-11-29 GMT+08:00

配置安全的HBase Replication

配置场景

安全模式下,在交叉域设置Kerberos时,配置安全的HBase replication的过程。

前提条件

  • 在Kerberos配置文件中必须定义所有FQDN映射到它的域。
  • ONE.COM和TWO.COM的密码和keytab必须要一样。

操作步骤

  1. 为两个域创建krbtgt账户名。

    比如,有ONE.COM和TWO.COM两个域,需要添加如下账户名:krbtgt/ONE.COM@TWO.COM及krbtgt/TWO.COM@ONE.COM。

    在两个域中均添加这两个账户名。

    kadmin: addprinc -e "<enc_type_list>" krbtgt/ONE.COM@TWO.COM
    kadmin: addprinc -e "<enc_type_list>" krbtgt/TWO.COM@ONE.COM

    在这两个域之间必须至少有一个共同的keytab模式。

  2. 在Zookeeper中,为创建短名称添加规则。

    Dzookeeper.security.auth_to_local是Zookeeper服务器进程的参数。以下例子说明了如何支持ONE.COM,在账户名中有两个成员(如service/instance@ONE.COM)。
    Dzookeeper.security.auth_to_local=RULE:[2:\$1@\$0](.*@\\QONE.COM\\E$)s/@\\QONE.COM\\E$//DEFAULT

    以上代码案例为在不同的域中支持ONE.COM。因此在replication中,需要为在从属集群域的主集群域添加规则。DEFAULT是已经添加了默认规则。

  3. 在Hadoop进程中,为创建短名称添加规则。

    在从属集群的HBase进程中的“core-site.xml”配置文件的属性hadoop.security.auth_to_local。比如:支持ONE.COM:

    <property>
    <name>hadoop.security.auth_to_local</name>
    <value>RULE:[2:$1@$0](.*@\QONE.COM\E$)s/@\QONE.COM\E$//DEFAULT</value>
    </property>

    如果启用bulkload replication功能,那么在主集群HBase进程的配置文件“core-site.xml”中需要添加支持从属域的相同属性。

    例如:

    <property>
    <name>hadoop.security.auth_to_local</name>
    <value>RULE:[2:$1@$0](.*@\QTWO.COM\E$)s/@\QTWO.COM\E$//DEFAULT</value>
    </property>