资讯专栏INFORMATION COLUMN

大数据开发系列四:hadoop& flink 配置kerberos认证

IT那活儿 / 3803人阅读
大数据开发系列四:hadoop& flink 配置kerberos认证

点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!


前 言

我们之前的大数据开发系列文章介绍了kerberos是如何安装与使用,本次在已安装的kerberos服务基础上对hadoop 与flink组件进行kerberos认证配置。

环境依赖


类型
主机
主机hostname
安装组件
kerberos服务端
192.168.199.102
bigdata-03
krb5-server
krb5-workstation
krb5-libs
krb5-devel
kerberos客户端
192.168.199.104
bigdata-05
krb5-workstation
krb5-devel
hadoop环境
192.168.199.104
bigdata-05
hadoop-3.3.3


hadoop认证配置

3.1 创建principle添加用户
hadoop的kerberos认证,一般需要配置三种principle,分别是 hadoop, host, HTTP。
格式为:用户名/主机hostname@HADOOP.COM。
如果现有的HDFS和YARN守护程序用的是同一个用户身份运行,可以配置成一个hadoop principle。
kadmin.local -q "addprinc -randkeyhadoop/bigdata-03@HADOOP.COM"
kadmin.local -q "addprinc -randkeyhadoop/bigdata-05@HADOOP.COM"
listprincs/list_principals 查询所有用户。
3.2 创建keytab密码文件
kadmin.local -q "xst -k /root/keytabs/kerberos/hadoop.keytabhadoop/bigdata-03@HADOOP.COM"
kadmin.local -q "xst -k /root/keytabs/kerberos/hadoop.keytab hadoop/bigdata-05@HADOOP.COM"
查看:
klist -kt /root/keytabs/kerberos/hadoop.keytab
klist -kt /home/gpadmin/hadoop.keytab
3.3 hadoop配置修改
1)core-site.xml 配置新增
<property>
<name>hadoop.security.authenticationname>
<value>kerberosvalue>
property>
<property>
<name>hadoop.security.authorizationname>
<value>truevalue>
property>
2)hdfs-site.xml 配置新增

    <property>
      <name>dfs.block.access.token.enablename>
      <value>truevalue>
    property>
                <property>
                  <name>dfs.permissions.enabledname>
                  <value>falsevalue>
                property
    
    <property>
      <name>dfs.namenode.kerberos.principalname>
      <value>hadoop/_HOST@EXAMPLE.COMvalue>
    property>
    
    <property>
      <name>dfs.namenode.keytab.filename>
      <value>/home/gpadmin/hadoop.keytabvalue>
    property>

      
    <property>
      <name>dfs.secondary.namenode.kerberos.principalname>
      <value>hadoop/_HOST@EXAMPLE.COMvalue>
    property>
    
    <property>
      <name>dfs.secondary.namenode.keytab.filename>
      <value>/home/gpadmin/hadoop.keytabvalue>
    property>

    
    <property>
      <name>dfs.web.authentication.kerberos.principalname>
      <value>hadoop/_HOST@EXAMPLE.COMvalue>
    property>
        
    <property>
      <name>dfs.web.authentication.kerberos.keytabname>
      <value>/home/gpadmin/hadoop.keytabvalue>
    property>


    
    <property>
      <name>dfs.datanode.kerberos.principalname>
      <value>hadoop/_HOST@EXAMPLE.COMvalue>
    property>

    
    <property>
      <name>dfs.datanode.keytab.filename>
      <value>/home/gpadmin/hadoop.keytabvalue>
    property>


    
    <property>
      <name>dfs.data.transfer.protectionname>
      <value>authenticationvalue>
    property>

    
    <property>
      <name>dfs.http.policyname>
      <value>HTTPS_ONLYvalue>
      <description>所有开启的web页面均使用https, 细节在ssl server 和client那个配置文件内配置description>
    property>
3)yarn-site.xml配置新增

<property>
  <name>yarn.resourcemanager.principalname>
  <value>hadoop/_HOST@EXAMPLE.COMvalue>
property>


<property>
  <name>yarn.resourcemanager.keytabname>
  <value>/home/gpadmin/hadoop.keytabvalue>
property>


<property>
  <name>yarn.nodemanager.principalname>
  <value>hadoop/_HOST@EXAMPLE.COMvalue>
property>


<property>
  <name>yarn.nodemanager.keytabname>
  <value>/home/gpadmin/hadoop.keytabvalue>
property>
4)mapred.xml配置新增

<property>
<name>mapreduce.jobhistory.principalname>
<value>hadoop/_HOST@EXAMPLE.COMvalue>
property>


<property>
<name>mapreduce.jobhistory.keytabname>
<value>/home/gpadmin/hadoop.keytabvalue>
property>
5)ssl-server配置新增
<property>
<name>ssl.server.truststore.locationname>
<value>/home/gpadmin/kerberos_https/keystorevalue>
<description>Truststore to be used by NN and DN. Must be specified.
description>
property>

<property>
<name>ssl.server.truststore.passwordname>
<value>passwordvalue>
<description>Optional. Default value is "".
description>
property>

<property>
<name>ssl.server.truststore.typename>
<value>jksvalue>
<description>Optional. The keystore file format, default value is "jks".
description>
property>

<property>
<name>ssl.server.truststore.reload.intervalname>
<value>10000value>
<description>Truststore reload check interval, in milliseconds.
Default value is 10000 (10 seconds).
description>
property>

<property>
<name>ssl.server.keystore.locationname>
<value>/home/gpadmin/kerberos_https/keystorevalue>
<description>Keystore to be used by NN and DN. Must be specified.
description>
property>

<property>
<name>ssl.server.keystore.passwordname>
<value>passwordvalue>
<description>Must be specified.
description>
property>

<property>
<name>ssl.server.keystore.keypasswordname>
<value>passwordvalue>
<description>Must be specified.
description>
property>

<property>
<name>ssl.server.keystore.typename>
<value>jksvalue>
<description>Optional. The keystore file format, default value is "jks".
description>
property>

<property>
<name>ssl.server.exclude.cipher.listname>
<value>TLS_ECDHE_RSA_WITH_RC4_128_SHA,SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA,
SSL_RSA_WITH_DES_CBC_SHA,SSL_DHE_RSA_WITH_DES_CBC_SHA,
SSL_RSA_EXPORT_WITH_RC4_40_MD5,SSL_RSA_EXPORT_WITH_DES40_CBC_SHA,
SSL_RSA_WITH_RC4_128_MD5value>
<description>Optional. The weak security cipher suites that you want excluded
from SSL communication.description>
property>
3.4 https证书配置
keytool -keystore keystore -alias hadoop -validity 365000 -
keystore/home/gpadmin/kerberos_https/keystore/keystore -
genkey -keyalg RSA -keysize 2048 -dname "CN=hadoop,
OU=shsnc, O=snc, L=hunan, ST=changsha, C=CN"
生成keystore 证书文件。
3.5 认证测试
查看 hdfs 目录:hdfs  dfs  -ls  /
报错信息:2022-11-22 10:22:15,444 WARN ipc.Client: Exception encountered while connecting to the server
org.apache.hadoop.security.AccessControlException: Client cannot authenticate via:[TOKEN, KERBEROS]
说明已加了认证后不能直接访问,客户端先进行认证才能正常访问目录结构。
kinit  -kt /home/gpadmin/hadoop.keytabhadoop/bigdata-05@HADOOP.COM


flink认证配置

4.1 认证用户配置
如果hdfs-site.xml 属性项配置:
<property>
<name>dfs.permissions.enabledname>
<value>truevalue>
property>
  • 为true时,新建凭证为hadoop 安装用户,如以gpadmin用户安装了hadoop。
    kadmin.local -q "xst -k /root/keytabs/kerberos/hadoop.keytab gpadmin@HADOOP.COM"
  • 为false时,新建凭证可以不是hadoop 安装用户。
    kadmin.local -q "xst -k /root/keytabs/kerberos/hadoop.keytab xx@HADOOP.COM"
验证:
klist -kt /root/keytabs/kerberos/hadoop.keytab
4.2 flink-conf.yaml 新增配置
security.kerberos.login.use-ticket-cache: true
security.kerberos.login.keytab: /home/gpadmin/hadoop.keytab
security.kerberos.login.principal: gpadmin@HADOOP.COM
security.kerberos.login.contexts: Client
4.3 认证测试
flink run -m yarn-cluster
-p 1
-yjm 1024
-ytm 1024
-ynm amp_zabbix
-c com.shsnc.fk.task.tokafka.ExtratMessage2KafkaTask
-yt /home/gpadmin/jar_repo/config/krb5.conf
-yD env.java.opts.jobmanager=-Djava.security.krb5.conf=krb5.conf
-yD env.java.opts.taskmanager=-Djava.security.krb5.conf=krb5.conf
-yD security.kerberos.login.keytab=/home/gpadmin/hadoop.keytab
-yD security.kerberos.login.principal=gpadmin@HADOOP.COM

$jarname
在提交到flink 任务参数里面加入红色部份认证配置,能正常提交到yarn 集群且日志没有相关认证报错信息,说明认证配置成功。


本文作者:长研架构小组(上海新炬王翦团队)

本文来源:“IT那活儿”公众号

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129142.html

相关文章

  • 数据开发系列五:kafka&amp; zookeeper 配置kerberos认证

    大数据开发系列五:kafka& zookeeper 配置kerberos认证 img{ display:block; margin:0 auto !important; width:100%; } body{ ...

    不知名网友 评论0 收藏2694
  • 魅族数据运维平台实践

    摘要:一大数据平台介绍大数据平台架构演变如图所示魅族大数据平台架构演变历程年底,我们开始实践大数据,并部署了测试集群。因此,大数据运维的目标是以解决运维复杂度的自动化为首要目标。大数据运维存在的问题大数据运维存在的问题包括部署及运维复杂。 一、大数据平台介绍 1.1大数据平台架构演变  showImg(https://segmentfault.com/img/bVWDPj?w=1024&h=...

    appetizerio 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<