• Kerberos (二) --------- Hadoop Kerberos 配置



    一、创建 Hadoop 系统用户

    为 Hadoop 开启 Kerberos,需为不同服务准备不同的用户,启动服务时需要使用相应的用户。须在所有节点创建以下用户和用户组。

    User:GroupDaemons
    hdfs:hadoopNameNode, Secondary NameNode, JournalNode, DataNode
    yarn:hadoopResourceManager, NodeManager
    mapred:hadoopMapReduce JobHistory Server

    创建hadoop组

    [root@hadoop102 ~]# groupadd hadoop
    [root@hadoop103 ~]# groupadd hadoop
    [root@hadoop104 ~]# groupadd hadoop
    
    • 1
    • 2
    • 3

    创建各用户并设置密码

    [root@hadoop102 ~]# useradd hdfs -g hadoop
    [root@hadoop102 ~]# echo hdfs | passwd --stdin  hdfs
    
    [root@hadoop102 ~]# useradd yarn -g hadoop
    [root@hadoop102 ~]# echo yarn | passwd --stdin yarn
    
    [root@hadoop102 ~]# useradd mapred -g hadoop
    [root@hadoop102 ~]# echo mapred | passwd --stdin mapred
    
    [root@hadoop103 ~]# useradd hdfs -g hadoop
    [root@hadoop103 ~]# echo hdfs | passwd --stdin  hdfs
    
    [root@hadoop103 ~]# useradd yarn -g hadoop
    [root@hadoop103 ~]# echo yarn | passwd --stdin yarn
    
    [root@hadoop103 ~]# useradd mapred -g hadoop
    [root@hadoop103 ~]# echo mapred | passwd --stdin mapred
    
    
    [root@hadoop104 ~]# useradd hdfs -g hadoop
    [root@hadoop104 ~]# echo hdfs | passwd --stdin  hdfs
    
    [root@hadoop104 ~]# useradd yarn -g hadoop
    [root@hadoop104 ~]# echo yarn | passwd --stdin yarn
    
    [root@hadoop104 ~]# useradd mapred -g hadoop
    [root@hadoop104 ~]# echo mapred | passwd --stdin mapred
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    二、为 Hadoop 各服务创建 Kerberos 主体(Principal)

    主体格式如下:ServiceName/HostName@REALM,例如 dn/hadoop102@EXAMPLE.COM

    A、各服务所需主体如下

    环境:3台节点,主机名分别为hadoop102,hadoop103,hadoop104

    服务所在主机主体 (Principal)
    NameNodehadoop102nn/hadoop102
    DataNodehadoop102 dn/hadoop102
    DataNodehadoop103dn/hadoop103
    DataNodehadoop104dn/hadoop104
    Secondary NameNodehadoop104sn/hadoop104
    ResourceManagerhadoop103rm/hadoop103
    NodeManagerhadoop102nm/hadoop102
    NodeManagerhadoop103nm/hadoop103
    NodeManagerhadoop104nm/hadoop104
    JobHistory Serverhadoop102jhs/hadoop102
    Web UIhadoop102HTTP/hadoop102
    Web UIhadoop103HTTP/hadoop103
    Web UIhadoop104HTTP/hadoop104

    B、创建主体说明

    1.路径准备

    为服务创建的主体,需要通过密钥文件 keytab 文件进行认证,故需为各服务准备一个安全的路径用来存储 keytab 文件。

    [root@hadoop102 ~]# mkdir /etc/security/keytab/
    [root@hadoop102 ~]# chown -R root:hadoop /etc/security/keytab/
    [root@hadoop102 ~]# chmod 770 /etc/security/keytab/
    
    • 1
    • 2
    • 3

    2.管理员主体认证

    为执行创建主体的语句,需登录 Kerberos 数据库客户端,登录之前需先使用 Kerberos 的管理员用户进行认证,执行以下命令并根据提示输入密码。

    [root@hadoop102 ~]# kinit admin/admin
    
    • 1

    3.登录数据库客户端

    [root@hadoop102 ~]# kadmin
    
    • 1

    4.执行创建主体的语句

    kadmin:  addprinc -randkey test/test
    kadmin:  xst -k /etc/security/keytab/test.keytab test/test
    
    • 1
    • 2

    说明:

    addprinc test/test 作用是新建主体

    • addprinc:增加主体
    • -randkey:密码随机,因 hadoop 各服务均通过 keytab 文件认证,故密码可随机生成
    • test/test:新增的主体

    xst -k /etc/security/keytab/test.keytab test/test:作用是将主体的密钥写入keytab文件

    • xst:将主体的密钥写入keytab文件
    • -k /etc/security/keytab/test.keytab:指明keytab文件路径和文件名
    • test/test:主体

    为方便创建主体,可使用如下命令

    [root@hadoop102 ~]# kadmin -padmin/admin -wadmin -q"addprinc -randkey test/test"
    [root@hadoop102 ~]# kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/test.keytab test/test"
    
    • 1
    • 2

    说明:

    • -p:主体
    • -w:密码
    • -q:执行语句

    操作主体的其他命令,可参考官方文档,地址如下:

    http://web.mit.edu/kerberos/krb5-current/doc/admin/admin_commands/kadmin_local.html#commands

    C、创建主体

    在所有节点创建 keytab 文件目录

    [root@hadoop102 ~]# mkdir /etc/security/keytab/
    [root@hadoop102 ~]# chown -R root:hadoop /etc/security/keytab/
    [root@hadoop102 ~]# chmod 770 /etc/security/keytab/
    
    [root@hadoop103 ~]# mkdir /etc/security/keytab/
    [root@hadoop103 ~]# chown -R root:hadoop /etc/security/keytab/
    [root@hadoop103 ~]# chmod 770 /etc/security/keytab/
    
    [root@hadoop104 ~]# mkdir /etc/security/keytab/
    [root@hadoop104 ~]# chown -R root:hadoop /etc/security/keytab/
    [root@hadoop104 ~]# chmod 770 /etc/security/keytab/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    以下命令在 hadoop102 节点执行

    NameNode (hadoop102)

    [root@hadoop102 ~]# kadmin -padmin/admin -wadmin -q"addprinc -randkey nn/hadoop102"
    [root@hadoop102 ~]# kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/nn.service.keytab nn/hadoop102"
    DataNode (hadoop102)
    [root@hadoop102 ~]# kadmin -padmin/admin -wadmin -q"addprinc -randkey dn/hadoop102"
    [root@hadoop102 ~]# kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/dn.service.keytab dn/hadoop102"
    NodeManager (hadoop102)
    [root@hadoop102 ~]# kadmin -padmin/admin -wadmin -q"addprinc -randkey nm/hadoop102"
    [root@hadoop102 ~]# kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/nm.service.keytab nm/hadoop102"
    JobHistory Server (hadoop102)
    [root@hadoop102 ~]# kadmin -padmin/admin -wadmin -q"addprinc -randkey jhs/hadoop102"
    [root@hadoop102 ~]# kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/jhs.service.keytab jhs/hadoop102"
    Web UI (hadoop102)
    [root@hadoop102 ~]# kadmin -padmin/admin -wadmin -q"addprinc -randkey HTTP/hadoop102"
    [root@hadoop102 ~]# kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/spnego.service.keytab HTTP/hadoop102"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    以下命令在 hadoop103 执行

    ResourceManager (hadoop103)
    [root@hadoop103 ~]# kadmin -padmin/admin -wadmin -q"addprinc -randkey rm/hadoop103"
    [root@hadoop103 ~]# kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/rm.service.keytab rm/hadoop103"
    DataNode (hadoop103)
    [root@hadoop103 ~]# kadmin -padmin/admin -wadmin -q"addprinc -randkey dn/hadoop103"
    [root@hadoop103 ~]# kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/dn.service.keytab dn/hadoop103"
    NodeManager (hadoop103)
    [root@hadoop103 ~]# kadmin -padmin/admin -wadmin -q"addprinc -randkey nm/hadoop103"
    [root@hadoop103 ~]# kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/nm.service.keytab nm/hadoop103"
    Web UI (hadoop103)
    [root@hadoop103 ~]# kadmin -padmin/admin -wadmin -q"addprinc -randkey HTTP/hadoop103"
    [root@hadoop103 ~]# kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/spnego.service.keytab HTTP/hadoop103"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    以下命令在 hadoop104 执行

    DataNode(hadoop104)

    [root@hadoop104 ~]# kadmin -padmin/admin -wadmin -q"addprinc -randkey dn/hadoop104"
    [root@hadoop104 ~]# kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/dn.service.keytab dn/hadoop104"
    Secondary NameNode (hadoop104)
    [root@hadoop104 ~]# kadmin -padmin/admin -wadmin -q"addprinc -randkey sn/hadoop104"
    [root@hadoop104 ~]# kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/sn.service.keytab sn/hadoop104"
    NodeManager (hadoop104)
    [root@hadoop104 ~]# kadmin -padmin/admin -wadmin -q"addprinc -randkey nm/hadoop104"
    [root@hadoop104 ~]# kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/nm.service.keytab nm/hadoop104"
    Web UI (hadoop104)
    [root@hadoop104 ~]# kadmin -padmin/admin -wadmin -q"addprinc -randkey HTTP/hadoop104"
    [root@hadoop104 ~]# kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/spnego.service.keytab HTTP/hadoop104"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    D、修改所有节点 keytab 文件的所有者和访问权限

    [root@hadoop102 ~]# chown -R root:hadoop /etc/security/keytab/
    [root@hadoop102 ~]# chmod 660 /etc/security/keytab/*
    
    [root@hadoop103 ~]# chown -R root:hadoop /etc/security/keytab/
    [root@hadoop103 ~]# chmod 660 /etc/security/keytab/*
    
    [root@hadoop104 ~]# chown -R root:hadoop /etc/security/keytab/
    [root@hadoop104 ~]# chmod 660 /etc/security/keytab/*
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    三、修改 Hadoop 配置文件

    需要修改的内容如下,修改完毕需要分发所改文件。

    A、core-site.xml

    [root@hadoop102 ~]# vim /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml
    增加以下内容
    
    <property>
      <name>hadoop.security.auth_to_local.mechanismname>
      <value>MITvalue>
    property>
    
    
    <property>
      <name>hadoop.security.auth_to_localname>
      <value>
        RULE:[2:$1/$2@$0]([ndj]n\/.*@EXAMPLE\.COM)s/.*/hdfs/
        RULE:[2:$1/$2@$0]([rn]m\/.*@EXAMPLE\.COM)s/.*/yarn/
        RULE:[2:$1/$2@$0](jhs\/.*@EXAMPLE\.COM)s/.*/mapred/
        DEFAULT
      value>
    property>
    
    
    <property>
      <name>hadoop.security.authenticationname>
      <value>kerberosvalue>
    property>
    
    
    <property>
      <name>hadoop.security.authorizationname>
      <value>truevalue>
    property>
    
    
    <property>
      <name>hadoop.rpc.protectionname>
      <value>authenticationvalue>
    property>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    B、hdfs-site.xml

    [root@hadoop102 ~]# vim /opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml
    增加以下内容
    
    <property>
      <name>dfs.block.access.token.enablename>
      <value>truevalue>
    property>
    
    
    <property>
      <name>dfs.namenode.kerberos.principalname>
      <value>nn/_HOST@EXAMPLE.COMvalue>
    property>
    
    
    <property>
      <name>dfs.namenode.keytab.filename>
      <value>/etc/security/keytab/nn.service.keytabvalue>
    property>
    
    
    <property>
      <name>dfs.secondary.namenode.keytab.filename>
      <value>/etc/security/keytab/sn.service.keytabvalue>
    property>
    
    
    <property>
      <name>dfs.secondary.namenode.kerberos.principalname>
      <value>sn/_HOST@EXAMPLE.COMvalue>
    property>
    
    
    <property>
      <name>dfs.namenode.kerberos.internal.spnego.principalname>
      <value>HTTP/_HOST@EXAMPLE.COMvalue>
    property>
    
    
    <property>
      <name>dfs.web.authentication.kerberos.principalname>
      <value>HTTP/_HOST@EXAMPLE.COMvalue>
    property>
    
    
    <property>
      <name>dfs.secondary.namenode.kerberos.internal.spnego.principalname>
      <value>HTTP/_HOST@EXAMPLE.COMvalue>
    property>
    
    
    <property>
      <name>dfs.web.authentication.kerberos.keytabname>
      <value>/etc/security/keytab/spnego.service.keytabvalue>
    property>
    
    
    <property>
      <name>dfs.datanode.kerberos.principalname>
      <value>dn/_HOST@EXAMPLE.COMvalue>
    property>
    
    
    <property>
      <name>dfs.datanode.keytab.filename>
      <value>/etc/security/keytab/dn.service.keytabvalue>
    property>
    
    
    <property>
      <name>dfs.http.policyname>
      <value>HTTPS_ONLYvalue>
    property>
    
    
    <property>
      <name>dfs.data.transfer.protectionname>
      <value>authenticationvalue>
    property>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79

    C、yarn-site.xml

    [root@hadoop102 ~]# vim /opt/module/hadoop-3.1.3/etc/hadoop/yarn-site.xml
    增加以下内容
    
    <property>
      <name>yarn.resourcemanager.principalname>
      <value>rm/_HOST@EXAMPLE.COMvalue>
    property>
    
    
    <property>
      <name>yarn.resourcemanager.keytabname>
      <value>/etc/security/keytab/rm.service.keytabvalue>
    property>
    
    
    <property>
      <name>yarn.nodemanager.principalname>
      <value>nm/_HOST@EXAMPLE.COMvalue>
    property>
    
    
    <property>
      <name>yarn.nodemanager.keytabname>
      <value>/etc/security/keytab/nm.service.keytabvalue>
    property>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    D、mapred-site.xml

    [root@hadoop102 ~]# vim /opt/module/hadoop-3.1.3/etc/hadoop/mapred-site.xml
    增加以下内容
    
    <property>
      <name>mapreduce.jobhistory.keytabname>
      <value>/etc/security/keytab/jhs.service.keytabvalue>
    property>
    
    
    <property>
      <name>mapreduce.jobhistory.principalname>
      <value>jhs/_HOST@EXAMPLE.COMvalue>
    property>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    E、分发以上修改的配置文件

    [root@hadoop102 ~]# xsync /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml
    [root@hadoop102 ~]# xsync /opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml
    [root@hadoop102 ~]# xsync /opt/module/hadoop-3.1.3/etc/hadoop/yarn-site.xml
    [root@hadoop102 ~]# xsync /opt/module/hadoop-3.1.3/etc/hadoop/mapred-site.xml
    
    • 1
    • 2
    • 3
    • 4

    四、配置 HDFS 使用 HTTPS 安全传输协议

    A、生成密钥对

    Keytool 是 java 数据证书的管理工具,使用户能够管理自己的公/私钥对及相关证书。

    • -keystore 指定密钥库的名称及位置(产生的各类信息将存在.keystore文件中)
    • -genkey(或者-genkeypair) 生成密钥对
    • -alias 为生成的密钥对指定别名,如果没有默认是 mykey
    • -keyalg 指定密钥的算法 RSA/DSA 默认是 DSA

    生成 keystore 的密码及相应信息的密钥库

    [root@hadoop102 ~]# keytool -keystore /etc/security/keytab/keystore -alias jetty -genkey -keyalg RSA
    
    输入密钥库口令:  
    再次输入新口令: 
    您的名字与姓氏是什么?
      [Unknown]:  
    您的组织单位名称是什么?
      [Unknown]:  
    您的组织名称是什么?
      [Unknown]:  
    您所在的城市或区域名称是什么?
      [Unknown]:  
    您所在的省/市/自治区名称是什么?
      [Unknown]:  
    该单位的双字母国家/地区代码是什么?
      [Unknown]:  
    CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown是否正确?
      []:  y
    
    输入 <jetty> 的密钥口令
    (如果和密钥库口令相同, 按回车):  
    再次输入新口令:
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    B、修改 keystore文件的所有者和访问权限

    [root@hadoop102 ~]# chown -R root:hadoop /etc/security/keytab/keystore
    [root@hadoop102 ~]# chmod 660 /etc/security/keytab/keystore
    
    • 1
    • 2

    注意:

    • 密钥库的密码至少6个字符,可以是纯数字或者字母或者数字和字母的组合等等
    • 确保hdfs用户 (HDFS的启动用户) 具有对所生成 keystore 文件的读权限

    C、将该证书分发到集群中的每台节点的相同路径

    [root@hadoop102 ~]# xsync /etc/security/keytab/keystore
    
    • 1

    D、修改hadoop配置文件ssl-server.xml.example

    该文件位于 $HADOOP_HOME/etc/hadoop目录
    修改文件名为 ssl-server.xml

    [root@hadoop102 ~]# mv $HADOOP_HOME/etc/hadoop/ssl-server.xml.example $HADOOP_HOME/etc/hadoop/ssl-server.xml
    
    • 1

    修改以下内容

    [root@hadoop102 ~]# vim $HADOOP_HOME/etc/hadoop/ssl-server.xml
    
    • 1

    修改以下参数

    
    <property>
      <name>ssl.server.keystore.locationname>
      <value>/etc/security/keytab/keystorevalue>
    property>
    
    
    <property>
      <name>ssl.server.keystore.passwordname>
      <value>123456value>
    property>
    
    
    <property>
      <name>ssl.server.truststore.locationname>
      <value>/etc/security/keytab/keystorevalue>
    property>
    
    
    <property>
      <name>ssl.server.keystore.keypasswordname>
      <value>123456value>
    property>
    
    
    <property>
      <name>ssl.server.truststore.passwordname>
      <value>123456value>
    property>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    E、分发ssl-server.xml文件

    [root@hadoop102 ~]# xsync $HADOOP_HOME/etc/hadoop/ssl-server.xml
    
    • 1

    四、配置 Yarn 使用 LinuxContainerExecutor

    A、修改所有节点的container-executor所有者和权限

    要求其所有者为 root,所有组为 hadoop (启动 NodeManger 的 yarn 用户的所属组),权限为 6050。其默认路径为 $HADOOP_HOME/bin

    [root@hadoop102 ~]# chown root:hadoop /opt/module/hadoop-3.1.3/bin/container-executor
    [root@hadoop102 ~]# chmod 6050 /opt/module/hadoop-3.1.3/bin/container-executor
    
    [root@hadoop103 ~]# chown root:hadoop /opt/module/hadoop-3.1.3/bin/container-executor
    [root@hadoop103 ~]# chmod 6050 /opt/module/hadoop-3.1.3/bin/container-executor
    
    [root@hadoop104 ~]# chown root:hadoop /opt/module/hadoop-3.1.3/bin/container-executor
    [root@hadoop104 ~]# chmod 6050 /opt/module/hadoop-3.1.3/bin/container-executor
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    B、修改所有节点的 container-executor.cfg文件的所有者和权限

    要求该文件及其所有的上级目录的所有者均为 root,所有组为 hadoop(启动NodeManger 的 yarn 用户的所属组),权限为 400。其默认路径为$HADOOP_HOME/etc/hadoop

    [root@hadoop102 ~]# chown root:hadoop /opt/module/hadoop-3.1.3/etc/hadoop/container-executor.cfg
    [root@hadoop102 ~]# chown root:hadoop /opt/module/hadoop-3.1.3/etc/hadoop
    [root@hadoop102 ~]# chown root:hadoop /opt/module/hadoop-3.1.3/etc
    [root@hadoop102 ~]# chown root:hadoop /opt/module/hadoop-3.1.3
    [root@hadoop102 ~]# chown root:hadoop /opt/module
    [root@hadoop102 ~]# chmod 400 /opt/module/hadoop-3.1.3/etc/hadoop/container-executor.cfg
    
    [root@hadoop103 ~]# chown root:hadoop /opt/module/hadoop-3.1.3/etc/hadoop/container-executor.cfg
    [root@hadoop103 ~]# chown root:hadoop /opt/module/hadoop-3.1.3/etc/hadoop
    [root@hadoop103 ~]# chown root:hadoop /opt/module/hadoop-3.1.3/etc
    [root@hadoop103 ~]# chown root:hadoop /opt/module/hadoop-3.1.3
    [root@hadoop103 ~]# chown root:hadoop /opt/module
    [root@hadoop103 ~]# chmod 400 /opt/module/hadoop-3.1.3/etc/hadoop/container-executor.cfg
    
    [root@hadoop104 ~]# chown root:hadoop /opt/module/hadoop-3.1.3/etc/hadoop/container-executor.cfg
    [root@hadoop104 ~]# chown root:hadoop /opt/module/hadoop-3.1.3/etc/hadoop
    [root@hadoop104 ~]# chown root:hadoop /opt/module/hadoop-3.1.3/etc
    [root@hadoop104 ~]# chown root:hadoop /opt/module/hadoop-3.1.3
    [root@hadoop104 ~]# chown root:hadoop /opt/module
    [root@hadoop104 ~]# chmod 400 /opt/module/hadoop-3.1.3/etc/hadoop/container-executor.cfg
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    C、修改$HADOOP_HOME/etc/hadoop/container-executor.cfg

    [root@hadoop102 ~]# vim $HADOOP_HOME/etc/hadoop/container-executor.cfg
    内容如下
    yarn.nodemanager.linux-container-executor.group=hadoop
    banned.users=hdfs,yarn,mapred
    min.user.id=1000
    allowed.system.users=feature.tc.enabled=false
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    D、修改$HADOOP_HOME/etc/hadoop/yarn-site.xml文件

    [root@hadoop102 ~]# vim $HADOOP_HOME/etc/hadoop/yarn-site.xml
    增加以下内容
    
    <property>
      <name>yarn.nodemanager.container-executor.classname>
      <value>org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutorvalue>
    property>
    
    
    <property>
      <name>yarn.nodemanager.linux-container-executor.groupname>
      <value>hadoopvalue>
    property>
    
    
    <property>
      <name>yarn.nodemanager.linux-container-executor.pathname>
      <value>/opt/module/hadoop-3.1.3/bin/container-executorvalue>
    property>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    E、分发container-executor.cfg和yarn-site.xml文件

    [root@hadoop102 ~]# xsync $HADOOP_HOME/etc/hadoop/container-executor.cfg
    [root@hadoop102 ~]# xsync $HADOOP_HOME/etc/hadoop/yarn-site.xml
    
    • 1
    • 2
  • 相关阅读:
    MATLAB----矩阵求逆的123!
    基于单片机温湿度PM2.5报警系统
    [STM32学习]定时器实现码表(数码管显示)
    实验1 线性回归 实操项目1——糖尿病情预测
    spring的学习【3】
    八、词嵌入语言模型(Word Embedding)
    P8198 [传智杯 #4 决赛] 背单词的小智 —二分答案
    K8s有状态应用(StatefulSet)之Mysql集群
    如何将RAW格式的磁盘修改为NTFS?教给你三种操作方法
    20--Django-项目实战-博客开发之终章-文章评论、添加文章功能实现
  • 原文地址:https://blog.csdn.net/m0_51111980/article/details/127638432