分享

hadoop入门-第二章common:第四节安全模式说明

pig2 2016-1-22 20:07:47 发表于 连载型 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 13068
问题导读



1.什么是Kerberos Principal?
2.Hadoop守护进程是否使用不同的用户?
3.各个守护进程keytab 文件各有什么特点?区别在什么地方?




说明
本文档介绍了如何配置验证Hadoop的安全模式。默认hadoop运行在非安全模式下,没有实际的身份验证要求。使用hadoop服务,每一个用户和服务都需要Kerberos身份验证。Hadoop的安全功能,包括身份验证,服务级授权,Web控制台认证和数据保密。
身份验证(http://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-common/SecureMode.html#Authentication
服务级授权(http://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-common/ServiceLevelAuth.html
Web控制台认证(http://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-common/HttpAuthentication.html
数据保密(http://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-common/SecureMode.html#Data_confidentiality


身份认证

终端用户帐户
当打开服务级别授权,终端用户使用hadoop安全模式需要Kerberos身份验证。最简单的方式认证是使用kinit Kerberos命令
【注释:kinit 命令:

用途
获得或更新 Kerberos 票据授权票据(ticket-granting ticket)。

描述
kinit 命令获得或更新 Kerberos 票据授权票据。如果不在命令行上指定一个票据标志,则使用由在 Kerberos 配置文件(kdc.conf )中的 [kdcdefault] 和 [realms] 指定的密钥分发中心(KDC)选项。




Hadoop守护进程用户帐户
确保HDFS和YARN守护进程运行不同的Unix用户,例如hdfs 和 yarn.同样确保MapReduce JobHistory server运行不同的用户比如mapred。
建议让它们共享Unix组,比如hadoop。详细查看 “Mapping from user to group”

User:Group
Daemons
hdfs:hadoop
NameNode, Secondary NameNode, JournalNode, DataNode
yarn:hadoop
ResourceManager, NodeManager
mapred:hadoop
MapReduce JobHistory Server

Kerberos Principal   hadoop守护进程和用户
运行hadoop守护进程服务在安全模式下, Kerberos principals是需要的。每个服务读取身份认证信息保存在keytab文件【有相应的权限】HTTP web-consoles服务于来自不同的RPC的 sprincipal【原文:HTTP web-consoles should be served by principal different from RPC’s one.】
下面部分给出了Hadoop服务凭证的例子。

注释:
【Kerberos协议术语解释【此部分是为帮助理解额外附加内容】
Principal:在Kerberos中,Principal是参加认证的基本实体。一般来说有两种,一种用来表示Kerberos数据库中的用户, 另一种用来代表某一特定主机,也就是说Principal是用来表示客户端和服务端身份的实体, Principal的格式采用ASN.1标准,即Abstract Syntax Notation One,来准确定义),Principal是由三个部分组成:名字(name),实例(instance),REALM(域)。比如一个标准的 Kerberos的用户是:name/instance@REALM 。
Name:第一部分。在代表客户方的情况,它是一个用户名;在代表主机的情况,它是写成host。
Instance:第二部分。对name的进一步描述,例如name所在的主机名或name的类型等,可省略。它与第一部分之间用‘ / ’分隔,但是作为主机的描述时写成host/Instance。
Realm:第三部分。是Kerberos在管理上的划分,在 KDC中所负责的一个域数据库称作为Realm。这个数据库中存放有该网络范围内的所有Principal和它们的密钥,数据库的内容被Kerberos 的认证服务器AS和票据授权服务器TGS所使用。Realm通常是永远是大写的字符,并且在大多数Kerberos系统的配置中,一般Realm和该网络环境的DNS域是一致的。与第二部分之间用‘@’分隔,缺省为本地的Realm。


HDFS
NameNode keytab 文件,在NameNode主机,应该是下面样子
[mw_shl_code=bash,true]$ klist -e -k -t /etc/security/keytab/nn.service.keytab
Keytab name: FILE:/etc/security/keytab/nn.service.keytab
KVNO Timestamp Principal
4 07/18/11 21:08:09 nn/full.qualified.domain.name@REALM.TLD (AES-256 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 nn/full.qualified.domain.name@REALM.TLD (AES-128 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 nn/full.qualified.domain.name@REALM.TLD (ArcFour with HMAC/md5)
4 07/18/11 21:08:09 host/full.qualified.domain.name@REALM.TLD (AES-256 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 host/full.qualified.domain.name@REALM.TLD (AES-128 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 host/full.qualified.domain.name@REALM.TLD (ArcFour with HMAC/md5)[/mw_shl_code]

Secondary NameNode keytab 文件,应该是下面样子
[mw_shl_code=bash,true]$ klist -e -k -t /etc/security/keytab/sn.service.keytab
Keytab name: FILE:/etc/security/keytab/sn.service.keytab
KVNO Timestamp Principal
4 07/18/11 21:08:09 sn/full.qualified.domain.name@REALM.TLD (AES-256 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 sn/full.qualified.domain.name@REALM.TLD (AES-128 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 sn/full.qualified.domain.name@REALM.TLD (ArcFour with HMAC/md5)
4 07/18/11 21:08:09 host/full.qualified.domain.name@REALM.TLD (AES-256 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 host/full.qualified.domain.name@REALM.TLD (AES-128 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 host/full.qualified.domain.name@REALM.TLD (ArcFour with HMAC/md5)[/mw_shl_code]

DataNode   keytab 文件,应该是下面样子
[mw_shl_code=bash,true]$ klist -e -k -t /etc/security/keytab/dn.service.keytab
Keytab name: FILE:/etc/security/keytab/dn.service.keytab
KVNO Timestamp Principal
4 07/18/11 21:08:09 dn/full.qualified.domain.name@REALM.TLD (AES-256 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 dn/full.qualified.domain.name@REALM.TLD (AES-128 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 dn/full.qualified.domain.name@REALM.TLD (ArcFour with HMAC/md5)
4 07/18/11 21:08:09 host/full.qualified.domain.name@REALM.TLD (AES-256 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 host/full.qualified.domain.name@REALM.TLD (AES-128 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 host/full.qualified.domain.name@REALM.TLD (ArcFour with HMAC/md5)[/mw_shl_code]

YARN

ResourceManager    keytab 文件,在ResourceManager客户端,应该是下面样子

[mw_shl_code=bash,true]$ klist -e -k -t /etc/security/keytab/rm.service.keytab
Keytab name: FILE:/etc/security/keytab/rm.service.keytab
KVNO Timestamp Principal
4 07/18/11 21:08:09 rm/full.qualified.domain.name@REALM.TLD (AES-256 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 rm/full.qualified.domain.name@REALM.TLD (AES-128 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 rm/full.qualified.domain.name@REALM.TLD (ArcFour with HMAC/md5)
4 07/18/11 21:08:09 host/full.qualified.domain.name@REALM.TLD (AES-256 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 host/full.qualified.domain.name@REALM.TLD (AES-128 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 host/full.qualified.domain.name@REALM.TLD (ArcFour with HMAC/md5)[/mw_shl_code]

NodeManager    keytab 文件,在每个客户端,应该是下面样子
[mw_shl_code=bash,true]$ klist -e -k -t /etc/security/keytab/nm.service.keytab
Keytab name: FILE:/etc/security/keytab/nm.service.keytab
KVNO Timestamp Principal
4 07/18/11 21:08:09 nm/full.qualified.domain.name@REALM.TLD (AES-256 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 nm/full.qualified.domain.name@REALM.TLD (AES-128 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 nm/full.qualified.domain.name@REALM.TLD (ArcFour with HMAC/md5)
4 07/18/11 21:08:09 host/full.qualified.domain.name@REALM.TLD (AES-256 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 host/full.qualified.domain.name@REALM.TLD (AES-128 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 host/full.qualified.domain.name@REALM.TLD (ArcFour with HMAC/md5)[/mw_shl_code]

MapReduce JobHistory Server

MapReduce JobHistory Server  keytab 文件,应该是下面样子
[mw_shl_code=bash,true]$ klist -e -k -t /etc/security/keytab/jhs.service.keytab
Keytab name: FILE:/etc/security/keytab/jhs.service.keytab
KVNO Timestamp Principal
4 07/18/11 21:08:09 jhs/full.qualified.domain.name@REALM.TLD (AES-256 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 jhs/full.qualified.domain.name@REALM.TLD (AES-128 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 jhs/full.qualified.domain.name@REALM.TLD (ArcFour with HMAC/md5)
4 07/18/11 21:08:09 host/full.qualified.domain.name@REALM.TLD (AES-256 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 host/full.qualified.domain.name@REALM.TLD (AES-128 CTS mode with 96-bit SHA-1 HMAC)
4 07/18/11 21:08:09 host/full.qualified.domain.name@REALM.TLD (ArcFour with HMAC/md5)[/mw_shl_code]


从Kerberos principal映射用户帐户

hadoop映射Kerberos principal到操作系统用户帐户,使用由hadoop.security.auth_to_local指定的规则。它是同样的工作方式在Kerberos配置文件(krb5.conf    http://web.mit.edu/Kerberos/krb5-latest/doc/admin/conf_files/krb5_conf.html)作为auth_to_local。额外,hadoop auth_to_local映射支持 /L 标记,小写字母返回名称。

默认,如果领域匹配到default_realm,它选择principal名称第一个组件(通常定义在/etc/krb5.conf)。例如host/full.qualified.domain.name@REALM.TLD 映射host为默认规则.
定制规则使用hadoop kerbname命令来测试。这个命令允许指定一个principal和使用Hadoop的当前auth_to_local规则集。输出什么身份验证,hadoop将使用它的用法。

从用户到组的映射

尽管hdfs文件是有用户和组的,但是hadoop自己没有定义组,用户到组的映射是由操作系统或LDAP来做。改变映射的方式由 hadoop.security.group.mapping 的值提供映射名称。查看Permissions Guide for details.实际上你需要管理SSO环境使用Kerberos和LDAP的Hadoop的安全模式。

代理用户

一些产品比如Apache Oozie,它代表终端用户访问hadoop访问需要能够代理终端用户。详细查看 HDFS Permissions Guidehttp://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-hdfs/HdfsPermissionsGuide.html

datanode安全
因为datanode传输数据协议不需要使用hadoop RPC框架,DataNode 必须使用特权端口验证自己的身份,端口由 dfs.datanode.addressdfs.datanode.http.address指定。验证基于这样的假设,攻击者将无法获得根权限。
当你使用root用户执行hdfs datanode命令,服务器进程首先绑定特权端口,然后放弃特权,由HADOOP_SECURE_DN_USER 指定的用户帐户来运行。启动进程使用jsvc安装到JSVC_HOME。你必须指定HADOOP_SECURE_DN_USERJSVC_HOME 作为环境变量(在 hadoop-env.sh文件中)。

2.6.0版,SASL可以用来验证数据传输协议。这样的配置,不在需要安全集群以root用户使用jsvc和绑定特权端口启动datanode.为了启用数据传输协议SASL,需要设置hdfs-site.xml文件中的 dfs.data.transfer.protection ,对于dfs.datanode.address 设置一个非特权端口,为HTTPS_ONLY设置 dfs.http.policy和确定HADOOP_SECURE_DN_USER 环境变量没有定义。需要注意的是,如果dfs.datanode.address 设置特权端口,使用SASL数据传输协议是不可能的。这是必需的向后兼容的原因。

为了迁移集群,使用root身份认证开始使用SASL 来代替。首先确保是版本2.6.0或则后面版本,部署集群节点跟外部应用程序一样需要连接集群。仅2.6.0版本或则2.6.0以后版本HDFS客户端可以连接DataNode使用数据传输协议SASL,因此至关重要的是在迁移前有一个正确的版本。

2.6.0版本或则以后版本已经部署,更新任何外部应用程序启用SASL认证配置。如果一个HDFS客户端启用了SASL,然后它即可以使用root身份认证,也可以使用SASL身份认证连接DataNode。所有客户端的配置改变保障随后的DataNode配置改变不影响应用程序。最后每一个独立的DataNode可以被迁移,修改它的配置和重启。可以有一个混合的,有的DataNodes运行使用root身份验证,有的是用SASL 身份验证,在迁移期间暂时这是被允许的。因为HDFS客户端启用SASL可以连接二者。


数据保密性

RPC数据加密

hadoop的服务和客户端之间传送的数据。设置hadoop.rpc.protection为"privacy"在 core-site.xml 文件中激活数据加密


Block 数据传输的数据加密

DataNode数据传输协议加密激活,需要设置  dfs.encrypt.data.transfer为true.可选,你需要设置 dfs.encrypt.data.transfer.algorithm 为 “3des” 或则 “rc4”,选择指定的算法。如果没有指定,系统默认使用配置JCE,通常是3DES。
设置 dfs.encrypt.data.transfer.cipher.suites 为 AES/CTR/NoPadding 激活 AES encryption. 默认,如果没有指定,不使用AES。什么时候使用AES,由dfs.encrypt.data.transfer.algorithm 指定,它仍然在初始密钥交换时使用。AES密钥位长度可以被配置,设置dfs.encrypt.data.transfer.cipher.key.bitlength为128,192或则256,默认128.AES提供了最大的加密强度和最佳的性能。于此同时,3DES 和 RC4 被经常用于hadoop集群。

HTTP数据加密
用于hadoop集群。
在Web-console 和 clients 之间传输数据由SSL保护.

配置

HDFS 和本地文件系统二者的权限

下面表格列出了HDFS不同的路径和本地文件系统(所有节点)和推荐权限


Filesystem
Path
User:Group
Permissions
local
dfs.namenode.name.dir
hdfs:hadoop
drwx------
local
dfs.datanode.data.dir
hdfs:hadoop
drwx------
local
$HADOOP_LOG_DIR
hdfs:hadoop
drwxrwxr-x
local
$YARN_LOG_DIR
yarn:hadoop
drwxrwxr-x
local
yarn.nodemanager.local-dirs
yarn:hadoop
drwxr-xr-x
local
yarn.nodemanager.log-dirs
yarn:hadoop
drwxr-xr-x
local
container-executor
root:hadoop
--Sr-s--*
local
conf/container-executor.cfg
root:hadoop
r-------*
hdfs
/
hdfs:hadoop
drwxr-xr-x
hdfs
/tmp
hdfs:hadoop
drwxrwxrwxt
hdfs
/user
hdfs:hadoop
drwxr-xr-x
hdfs
yarn.nodemanager.remote-app-log-dir
yarn:hadoop
drwxrwxrwxt
hdfs
mapreduce.jobhistory.intermediate-done-dir
mapred:hadoop
drwxrwxrwxt
hdfs
mapreduce.jobhistory.done-dir
mapred:hadoop
drwxr-x---


通用配置
为了开启hadoop rcp 身份验证,设置hadoop.security.authentication 属性值为 "kerberos"。设置下面列出的安全相关设置。下面属性在集群所有节点core-site.xml



参数
说明
hadoop.security.authentication
kerberos
简单:没有身份验证。(默认):启用Kerberos认证协议。
hadoop.security.authorization
true
hadoop.rpc.protection
authentication
authentication : 仅身份验证 (默认)  
integrity : 完整性检查除了身份验证
privacy : 数据加密除了完整性
hadoop.security.auth_to_local
RULE:exp1 RULE:exp2 DEFAULT
这个字符串值包含新的一行字符
hadoop.proxyuser.superuser.hosts

逗号分隔host,host超级用户允许代理(这里理解感觉不是太准确,贴出原文提供参考:comma separated hosts from which superuser access are allowd to impersonation)
  *表示通配符
hadoop.proxyuser.superuser.groups

逗号分隔组,组的用户由超级用户代理(这里理解感觉不是太准确,贴出原文提供参考:comma separated groups to which users impersonated by superuser belongs.)  *表示通配符


NameNode
参数
说明
dfs.block.access.token.enable
true
为了安全操作,启用 HDFS block 访问令牌
dfs.https.enable
true
这个值被弃用. 使用 dfs.http.policy
dfs.http.policy
HTTP_ONLY or HTTPS_ONLY orHTTP_AND_HTTPS
HTTPS_ONLY 关闭 http access. 这个选项优先于弃用配置dfs.https.enable和hadoop.ssl.enabled。 如果使用数据传输协议SASL,代替DataNode root和使用特权端口,这个属性必须设置HTTPS_ONLY保障HTTP servers身份认证。(查看dfs.data.transfer.protection.)
dfs.namenode.https-address
nn_host_fqdn:50470

dfs.https.port
50470

dfs.namenode.keytab.file
/etc/security/keytab/
nn.service.keytab
NameNode Kerberos keytab 文件 .
dfs.namenode.kerberos.principal
  NameNode Kerberos principal 名字.
dfs.namenode.kerberos.internal.spnego.principal
NameNode HTTP Kerberos principal 名字  .

Secondary NameNode
参数
说明
dfs.namenode.secondary.http-address
c_nn_host_fqdn:50090

dfs.namenode.secondary.https-port
50470

dfs.secondary.namenode.keytab.file
/etc/security/keytab/
sn.service.keytab
Secondary NameNode Kerberos keytab 文件 .
dfs.secondary.namenode.kerberos.principal
Secondary NameNode Kerberos principal 名字.
dfs.secondary.namenode.kerberos.internal.spnego.principal
Secondary NameNode HTTP Kerberos principal 名字 .

DataNode
参数
说明
dfs.datanode.data.dir.perm
700

dfs.datanode.address
0.0.0.0:1004
DataNode安全必须使用特权端口,为了确保server安全启动。这意味着server必须通过jsvc启动。另外,如果使用数据传输协议SASL身份验证,必须设置一个非特权端口
(查看 dfs.data.transfer.protection.)
dfs.datanode.http.address
0.0.0.0:1006
DataNode安全必须使用特权端口,确保server安全启动。意味着server必须通过jsvc启动
dfs.datanode.https.address
0.0.0.0:50470

dfs.datanode.keytab.file
/etc/security/keytab
/dn.service.keytab
DataNode Kerberos keytab 文件
dfs.datanode.kerberos.principal
DataNode Kerberos principal 名称
dfs.encrypt.data.transfer
false
当使用数据加密时,设置为true
dfs.encrypt.data.transfer.algorithm

当使用数据加密来控制加密算法时,可选设置为3des或则rc4
dfs.encrypt.data.transfer.cipher.suites

当使用数据加密,可选设置 AES/CTR/NoPadding,激活AES 数据加密
dfs.encrypt.data.transfer.cipher.key.bitlength

当使用AES数据加密时,设置 128, 192 或则 256 to 控制 key 位长度
dfs.data.transfer.protection

authentication : 仅仅身份验证
integrity : 除了身份验证,还有完整性验证
privacy : 除了完整性验证,还有数据加密
此属性未指定默认值。设置这个属性启用SASL数据传输协议身份验证。如果这个启用了,然后dfs.datanode.address必须使用非特权端口,dfs.http.policy必须设置为HTTPS_ONLY 和HADOOP_SECURE_DN_USER环境变量必须未指定,当启动DataNode进程

WebHDFS
参数
说明
dfs.web.authentication.kerberos.principal
WebHDFS Kerberos principal 名称.
dfs.web.authentication.kerberos.keytab
/etc/security/keytab/http.service.keytab
WebHDFS Kerberos keytab文件 .

ResourceManager
参数
说明
yarn.resourcemanager.keytab
/etc/security/keytab/
rm.service.keytab
ResourceManager Kerberos keytab 文件.
yarn.resourcemanager.principal
ResourceManager Kerberos principal 名称

NodeManager
参数
说明
yarn.nodemanager.keytab
/etc/security/keytab/nm.service.keytab
NodeManager Kerberos keytab 文件
yarn.nodemanager.principal
NodeManager Kerberos principal 名称
yarn.nodemanager.container-executor.class
org.apache.hadoop.yarn.server.
nodemanager.LinuxContainerExecutor
使用 LinuxContainerExecutor.
yarn.nodemanager.linux-container-executor.group
hadoop
NodeManager 的Unix 组
yarn.nodemanager.linux-container-executor.path
/path/to/bin/container-executor
容器执行器可执行程序的路径。

配置  WebAppProxy
WebAppProxy提供了一个由应用程序和最终用户输出代理端口,在web应用程序之间。如果安全启用,他将警告用户,在访问可能非安全的web应用程序。身份验证和授权使用代理处理就像任何其他特权的web应用程序。



参数
说明
yarn.web-proxy.address
WebAppProxy host:port    AM web apps 代理
host:port  如果跟 yarn.resourcemanager.webapp.address 一样或则它没有定义ResourceManager 将运行代理,否则一个独立的代理服务器将需要启动。
yarn.web-proxy.keytab
/etc/security/keytab/web-app.service.keytab
WebAppProxy Kerberos keytab文件.
yarn.web-proxy.principal
WebAppProxy Kerberos principal 名称 .

LinuxContainerExecutor
Yarn框架使用ContainerExecutor,Yarn框架定义了容器的启动和控制,一下是hadoop yarn可用的:

ContainerExecutor
描述
DefaultContainerExecutor
默认执行器,Yarn用来管理容器的执行。容器的进程NodeManager与Linux用户相同
LinuxContainerExecutor
仅支持GNU/Linux,这个executor运行容器即可以作为YARN用户提交应用程序(当完整安全性启用)也可以作为一个专用用户(默认nobody),当完整的安全性未启用。当完整安全性启用,这个executor需要创建所有用户,在集群节点容器启动时。它使用一个setuid执行文件,包括在Hadoop分布中。NodeManager使用该可执行程序来启动和杀死容器。setuid执行切换到用户提交和启动应用程序或杀死容器。为了最大限度的安全,这个executor设置严格的权限,和本地文件和目录的用户/组所有者,比如共享的objects, jars, 中间文件, 日志文件等. 需要需要说明的是,因为这,除了应用程序所有者和NodeManager,没有其它用户可以访问任何的本地文件/目录包括这些本地化的分布式缓存的部分。

要构建LinuxContainerExecutor可执行文件运行:
[mw_shl_code=bash,true] $ mvn package -Dcontainer-executor.conf.dir=/etc/hadoop/[/mw_shl_code]

路径 -Dcontainer-executor.conf.dir应该是集群节点上的路径,它的setuid可执行文件的配置文件被定位,可执行文件应安装在 $HADOOP_YARN_HOME/bin.
可执行文件必须有特定的权限: 6050 或则--Sr-s---允许用户拥有root权限(超级用户)和组拥有专用组(比如hadoop),NodeManager Unix 用户是它的组成员和不是普通的应用程序用户。

LinuxTaskController需要包括路径和由 yarn.nodemanager.local-dirs 和 yarn.nodemanager.log-dirs指定的目录,如上表所述对目录设置的权限,设置为755.

  • conf/container-executor.cfg
可执行文件需要配置文件称之为 container-executor.cfg,现在在配置文件目录传递给上述提到的mvn target。
配置文件必须由拥有的用户运行NodeManager(上述例子的yarn用户),任何人拥有的组,和应该有权限 0400 或则r-------- .

可执行文件需要下面配置项,现在在 conf/container-executor.cfg文件中。该配置项被提及为简单的键=值对,每行一个:



参数
说明
yarn.nodemanager.linux-container-executor.group
hadoop
NodeManager Unix 组.container-executor的二进制所属组应该属于这个组,应该是跟NodeManager 配置的值相同.这个配置需要验证访问container-executor 二进制的安全.
banned.users
hdfs,yarn,mapred,bin
禁止用户
allowed.system.users
foo,bar
允许系统用户
min.user.id
1000
防止其他超级用户。

下面是本地系统文件权限,需要相关的LinuxContainerExecutor不同的路径

文件系统
路径
用户:组
权限
local
container-executor
root:hadoop
--Sr-s--*
local
conf/container-executor.cfg
root:hadoop
r-------*
local
yarn.nodemanager.local-dirs
yarn:hadoop
drwxr-xr-x
local
yarn.nodemanager.log-dirs
yarn:hadoop
drwxr-xr-x

MapReduce JobHistory Server
参数
说明
mapreduce.jobhistory.address
MapReduce JobHistory Server host:port
默认端口是 10020.
mapreduce.jobhistory.keytab
/etc/security/keytab/jhs.service.keytab
MapReduce JobHistory Server Kerberos keytab文件
mapreduce.jobhistory.principal
MapReduce JobHistory Server. Kerberos principal名称



相关文章

hadoop入门-第一章General:第一节单节点伪分布

hadoop入门-第一章General:第二节集群配置

hadoop入门-第一章General:第三节Hadoop初级入门之命令指南

hadoop入门-第一章General:第四节文件系统shell

hadoop入门-第一章General:第五节hadoop的兼容性说明

hadoop入门-第一章General:第六节开发人员和用户接口指南:hadoop接口分类

hadoop入门-第一章General:第七节Hadoop 文件系统 API :概述

hadoop入门-第二章common:第一节hadoop 本地库 指南

hadoop入门-第二章common:第二节hadoop代理用户 -超级用户代理其它用户

hadoop入门-第二章common:第三节机架智能感知

hadoop入门-第二章common:第四节安全模式说明

hadoop入门-第二章common:第五节服务级别授权指南

hadoop入门-第二章common:第六节Hadoop HTTP web-consoles认证机制

hadoop入门-第二章common:第七节Hadoop Key管理服务器(KMS) - 文档集

hadoop入门:第三章HDFS文档概述(一)

hadoop入门:第三章HDFS文档概述(二)

hadoop入门:第四章mapreduce文档概述

hadoop入门:第五章MapReduce REST APIs文档概述

hadoop入门:第六章YARN文档概述

hadoop入门:第七章YARN REST APIs

hadoop入门:第八章hadoop兼容文件系统

hadoop入门:第九章hadoop认证

hadoop入门:第十章hadoop工具

hadoop入门:第十一章hadoop配置

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条