MAPREDUCE服务 MRS-准备认证机制代码:安全认证代码(Scala版)

时间:2024-05-11 16:36:58

安全认证代码(Scala版)

目前样例代码统一调用LoginUtil类进行安全认证。

在Spark样例工程代码中,不同的样例工程,使用的认证代码不同,基本安全认证或带ZooKeeper认证。样例工程中使用的示例认证参数如表3所示,请根据实际情况修改对应参数值。

表3 参数描述

参数

示例参数值

描述

userPrincipal

sparkuser

用户用于认证的账号Principal,您可以联系管理员获取此账号。

userKeytabPath

/opt/FIclient/user.keytab

用户用于认证的Keytab文件,您可以联系管理员获取文件。

krb5ConfPath

/opt/FIclient/KrbClient/kerberos/var/krb5kdc/krb5.conf

krb5.conf文件路径和文件名称。

ZKServerPrincipal

zookeeper/hadoop.hadoop.com

ZooKeeper服务端principal。请联系管理员获取对应账号。

  • 基本安全认证:

    Spark Core和Spark SQL程序不需要访问HBase或ZooKeeper,所以使用基本的安全认证代码即可。请在程序中添加如下代码,并根据实际情况设置安全认证相关参数:

    val userPrincipal = "sparkuser"
    val userKeytabPath = "/opt/FIclient/user.keytab"
    val krb5ConfPath = "/opt/FIclient/KrbClient/kerberos/var/krb5kdc/krb5.conf"
    val hadoopConf: Configuration  = new Configuration()
    LoginUtil.login(userPrincipal, userKeytabPath, krb5ConfPath, hadoopConf);
  • 带ZooKeeper认证:

    由于“Spark Streaming”、“通过JDBC访问Spark SQL”和“Spark on HBase”样例程序,不仅需要基础安全认证,还需要添加ZooKeeper服务端Principal才能完成安全认证。请在程序中添加如下代码,并根据实际情况设置安全认证相关参数:

    val userPrincipal = "sparkuser"
    val userKeytabPath = "/opt/FIclient/user.keytab"
    val krb5ConfPath = "/opt/FIclient/KrbClient/kerberos/var/krb5kdc/krb5.conf"
    val ZKServerPrincipal = "zookeeper/hadoop.hadoop.com"
    val ZOOKEEPER_DEFAULT_LOGIN_CONTEXT_NAME: String = "Client"
    val ZOOKEEPER_SERVER_PRINCIPAL_KEY: String = "zookeeper.server.principal"
    val hadoopConf: Configuration  = new Configuration();
    LoginUtil.setJaasConf(ZOOKEEPER_DEFAULT_LOGIN_CONTEXT_NAME, userPrincipal, userKeytabPath)
    LoginUtil.setZookeeperServerPrincipal(ZOOKEEPER_SERVER_PRINCIPAL_KEY, ZKServerPrincipal)
    LoginUtil.login(userPrincipal, userKeytabPath, krb5ConfPath, hadoopConf);
support.huaweicloud.com/devg-mrs/mrs_06_0166.html