Kerberos

如果使用到的hadoop集群,如用来存储的结果集的文件

  1. # 结果集日志等文件路径,用于存储Job的结果集文件 wds.linkis.filesystem.hdfs.root.path(linkis.properties)
  2. HDFS_USER_ROOT_PATH=hdfs:///tmp/linkis

并且 开启了kerberos认证,需要进行对应的kerberos配置

修改linkis.properties 对应的配置如下

  1. #是否开启了kerberos认证模式
  2. wds.linkis.keytab.enable=true
  3. #keytab放置目录,该目录存储的是多个用户的username.keytab的文件
  4. wds.linkis.keytab.file=/appcom/keytab/
  5. #是否带上principle客户端认证 默认值false
  6. wds.linkis.keytab.host.enabled=false
  7. #principle认证需要带上的客户端IP
  8. wds.linkis.keytab.host=127.0.0.1

修改后重启服务

Hadoop2.0版本开始支持ProxyUser的机制。含义是使用User A的用户认证信息,以User B的名义去访问hadoop集群。 对于服务端来说就认为此时是User B在访问集群,相应对访问请求的鉴权(包括HDFS文件系统的权限,YARN提交任务队列的权限)都以用户User B来进行。 User A被认为是superuser。

和场景1主要区别是,可以解决每个用户都需要生成一个keytab文件的问题,如果设置了 kerberos 代理认证,可以使用代理用户的keytab文件进行认证。 修改linkis.properties 对应的配置如下

  1. #是否开启了kerberos认证模式
  2. wds.linkis.keytab.enable=true
  3. #keytab放置目录,该目录存储的是多个用户的username.keytab的文件
  4. wds.linkis.keytab.file=/appcom/keytab/
  5. #是否带上principle客户端认证 默认值false
  6. wds.linkis.keytab.host.enabled=false
  7. #principle认证需要带上的客户端IP
  8. wds.linkis.keytab.host=127.0.0.1
  9. #开启kerberos的代理认证
  10. wds.linkis.keytab.proxyuser.enable=true
  11. #使用superuser 来验证用户认证信息的
  12. wds.linkis.keytab.proxyuser.superuser=hadoop

修改后重启服务

yarn-normal 会访问访问Yarn提供了ResourceManager的REST API 接口 如果yarn的ResourceManager 开启了kerberos认证,需要配置kerberos相关的认证信息

数据库表 linkis_cg_rm_external_resource_provider
插入yarn数据信息

  1. INSERT INTO `linkis_cg_rm_external_resource_provider`
  2. (`resource_type`, `name`, `labels`, `config`) VALUES
  3. ('Yarn', 'default', NULL,
  4. '
  5. {
  6. "rmWebAddress": "http://xx.xx.xx.xx:8088",
  7. "hadoopVersion": "2.7.2",
  8. "authorEnable":false,
  9. "user":"hadoop","pwd":"123456",
  10. "kerberosEnable":@YARN_KERBEROS_ENABLE,
  11. "principalName":"@YARN_PRINCIPAL_NAME",
  12. "keytabPath":"@YARN_KEYTAB_PATH"
  13. "krb5Path":"@YARN_KRB5_PATH"
  14. }
  15. '
  16. );

更新后,因为程序中有使用到缓存,想要立即生效,需要重启linkis-cg-linkismanager服务

  1. sh sbin/linkis-daemon.sh restart cg-linkismanager

如果需要连接的hive数据源,对应的 hive 集群环境,有开启kerberos认证,需要在配置集群环境时,将kerberos以及keytab认证文件信息上传。 Kerberos - 图2