文档章节

Yarn配置kerberos认证

PeanutLike
 PeanutLike
发布于 2016/09/05 16:39
字数 1184
阅读 318
收藏 2

1、环境说明

系统环境:

  • 操作系统:centos6.6
  • Hadoop版本:CDH5.5
  • JDK版本:1.7.0_67

集群各节点Yarn的角色规划为:

172.16.57.74   bd-ops-test-74    ResourceManager  NodeManager
172.16.57.75   bd-ops-test-75    ResourceManager  NodeManager
172.16.57.76   bd-ops-test-76    NodeManager JobHistoryServer yarn-proxyserver
172.16.57.77   bd-ops-test-77    NodeManager   

2、生成keytab

在 74 节点,即 KDC server 节点上执行下面命令:

cd /var/kerberos/krb5kdc/

kadmin.local -q "addprinc -randkey yarn/bd-ops-test-74@BIGDATA.COM "
kadmin.local -q "addprinc -randkey yarn/bd-ops-test-75@BIGDATA.COM "
kadmin.local -q "addprinc -randkey yarn/bd-ops-test-76@BIGDATA.COM "
kadmin.local -q "addprinc -randkey yarn/bd-ops-test-77@BIGDATA.COM "

kadmin.local -q "addprinc -randkey mapred/bd-ops-test-74@BIGDATA.COM "
kadmin.local -q "addprinc -randkey mapred/bd-ops-test-75@BIGDATA.COM "
kadmin.local -q "addprinc -randkey mapred/bd-ops-test-76@BIGDATA.COM "
kadmin.local -q "addprinc -randkey mapred/bd-ops-test-77@BIGDATA.COM "

kadmin.local -q "xst  -k yarn.keytab  yarn/bd-ops-test-74@BIGDATA.COM"
kadmin.local -q "xst  -k yarn.keytab  yarn/bd-ops-test-75@BIGDATA.COM "
kadmin.local -q "xst  -k yarn.keytab  yarn/bd-ops-test-76@BIGDATA.COM "
kadmin.local -q "xst  -k yarn.keytab  yarn/bd-ops-test-77@BIGDATA.COM "

kadmin.local -q "xst  -k mapred.keytab  mapred/bd-ops-test-74@BIGDATA.COM "
kadmin.local -q "xst  -k mapred.keytab  mapred/bd-ops-test-75@BIGDATA.COM "
kadmin.local -q "xst  -k mapred.keytab  mapred/bd-ops-test-76@BIGDATA.COM "
kadmin.local -q "xst  -k mapred.keytab  mapred/bd-ops-test-77@BIGDATA.COM "

拷贝 yarn.keytab 和 mapred.keytab 文件到其他节点的 /etc/hadoop/conf 目录

scp yarn.keytab mapred.keytab bd-ops-test-xx:/etc/hadoop/conf

并设置权限,在各节点上执行:

# cd /etc/hadoop/conf/;chown yarn:hadoop yarn.keytab;chown mapred:hadoop mapred.keytab ;chmod 400 *.keytab

由于 keytab 相当于有了永久凭证,不需要提供密码(如果修改 kdc 中的 principal 的密码,则该 keytab 就会失效),所以其他用户如果对该文件有读权限,就可以冒充 keytab 中指定的用户身份访问 hadoop,所以 keytab 文件需要确保只对 owner 有读权限(0400)

3. 修改 YARN 配置文件

修改 yarn-site.xml,添加下面配置:

<property>
  <name>yarn.resourcemanager.keytab</name>
  <value>/etc/hadoop/conf/yarn.keytab</value>
</property>
<property>
  <name>yarn.resourcemanager.principal</name> 
  <value>yarn/_HOST@BIGDATA.COM</value>
</property>

<property>
  <name>yarn.nodemanager.keytab</name>
  <value>/etc/hadoop/conf/yarn.keytab</value>
</property>
<property>
  <name>yarn.nodemanager.principal</name> 
  <value>yarn/_HOST@BIGDATA.COM</value>
</property> 
<property>
  <name>yarn.nodemanager.container-executor.class</name>  
  <value>org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor</value>
</property> 
<property>
  <name>yarn.nodemanager.linux-container-executor.group</name>
  <value>yarn</value>
</property>

<property>
   <name>yarn.web-proxy.keytab</name>
   <value>/etc/hadoop/conf/yarn.keytab</value>
</property>

<property>
    <name>yarn.web-proxy.principal</name>
    <value>yarn/_HOST@BIGDATA.COM</value>
</property>

修改 mapred-site.xml,添加如下配置:

<property>
  <name>mapreduce.jobhistory.keytab</name>
  <value>/etc/hadoop/conf/mapred.keytab</value>
</property> 
<property>
  <name>mapreduce.jobhistory.principal</name> 
  <value>mapred/_HOST@BIGDATA.COM</value>
</property>

/etc/hadoop/conf 目录下创建 container-executor.cfg 文件,内容如下:

#configured value of yarn.nodemanager.linux-container-executor.group
yarn.nodemanager.linux-container-executor.group=yarn
#comma separated list of users who can not run applications
banned.users=bin
#Prevent other super-users
min.user.id=0
#comma separated list of system users who CAN run applications
allowed.system.users=root,nobody,impala,hive,hdfs,yarn

设置该文件权限:

# chown root:yarn container-executor.cfg
# chmod 400 container-executor.cfg

# ll container-executor.cfg
-r-------- 1 root yarn 354 11-05 14:14 container-executor.cfg

注意:

  • container-executor.cfg 文件读写权限需设置为 400,所有者为 root:yarn
  • yarn.nodemanager.linux-container-executor.group 要同时配置在 yarn-site.xml 和 container-executor.cfg,且其值需要为运行 NodeManager 的用户所在的组,这里为 yarn。
  • banned.users 不能为空,默认值为 hfds,yarn,mapred,bin
  • min.user.id 默认值为 1000,在有些 centos 系统中,用户最小 id 为500,则需要修改该值
  • 确保 yarn.nodemanager.local-dirsyarn.nodemanager.log-dirs 对应的目录权限为 755

设置 /usr/lib/hadoop-yarn/bin/container-executor 读写权限为 6050 如下:

# chown root:yarn /usr/lib/hadoop-yarn/bin/container-executor
# chmod 6050 /usr/lib/hadoop-yarn/bin/container-executor

# ll /usr/lib/hadoop-yarn/bin/container-executor
---Sr-s--- 1 root yarn 333 11-04 19:11 container-executor

测试是否配置正确:

# /usr/lib/hadoop-yarn/bin/container-executor --checksetup

如果提示错误,则查看 NodeManger 的日志,然后对照 YARN ONLY: Container-executor Error Codes 查看错误对应的问题说明。

关于 LinuxContainerExecutor 的详细说明,可以参考 http://hadoop.apache.org/docs/r2.5.0/hadoop-project-dist/hadoop-common/SecureMode.html#LinuxContainerExecutor

记住将修改的上面文件同步到其他节点,并再次一一检查权限是否正确。

# cd /etc/hadoop/conf/

# scp yarn-site.xml mapred-site.xml container-executor.cfg  bd-ops-test-xx:/etc/hadoop/conf/

# cd /etc/hadoop/conf/; chown root:yarn container-executor.cfg ; chmod 400 container-executor.cfg
# cd /etc/hadoop/conf/; chown root:yarn container-executor.cfg ; chmod 400 container-executor.cfg

4、启动服务

启动 ResourceManager

resourcemanager 是通过 yarn 用户启动的,故在 74,75 上先获取 yarn 用户的 ticket 再启动服务:

$ kinit -k -t /etc/hadoop/conf/yarn.keytab yarn/bd-ops-test-xx@BIGDATA.COM
# service hadoop-yarn-resourcemanager start

然后查看日志,确认是否启动成功。

2016-09-05 13:40:11,190 INFO org.apache.hadoop.yarn.server.resourcemanager.RMAuditLogger: USER=yarn	OPERATION=transitionToActive	TARGET=RMHAProtocolService	RESULT=SUCCESS

启动 NodeManager

resourcemanager 是通过 yarn 用户启动的,故在各节点上先获取 yarn 用户的 ticket 再启动服务:

kinit -k -t /etc/hadoop/conf/yarn.keytab yarn/bd-ops-test-xx@BIGDATA.COM ;service hadoop-yarn-nodemanager start

观察日志成功信息:

2016-09-05 13:50:37,869 INFO org.apache.hadoop.security.UserGroupInformation: Login successful for user yarn/bd-ops-test-76@BIGDATA.COM using keytab file /etc/hadoop/conf/yarn.keytab

启动 MapReduce Job History Server

resourcemanager 是通过 mapred 用户启动的,故在 76节点 上先获取 mapred 用户的 ticket 再启动服务:

$ kinit -k -t /etc/hadoop/conf/mapred.keytab mapred/bd-ops-test-75@BIGDATA.COM
# service hadoop-mapreduce-historyserver start

观察日志成功信息:

16/09/05 13:55:49 INFO security.UserGroupInformation: Login successful for user mapred/bd-ops-test-76@BIGDATA.COM using keytab file /etc/hadoop/conf/mapred.keytab

启动 yarn-proxyserver

# service hadoop-yarn-proxyserver start

观察日志成功信息:

2016-09-05 16:28:24,569 INFO org.apache.hadoop.security.UserGroupInformation: Login successful for user yarn/bd-ops-test-76@BIGDATA.COM using keytab file /etc/hadoop/conf/yarn.keytab

5. 测试

运行一个 mapreduce 的例子:

hadoop jar /usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 10 10000

如果没有报错,则说明配置成功。最后运行的结果为:

Job Finished in 45.007 seconds
Estimated value of Pi is 3.14120000000000000000

 

 

© 著作权归作者所有

PeanutLike
粉丝 43
博文 22
码字总数 34274
作品 0
徐汇
技术主管
私信 提问
Cloudera Apache Hadoop 管理员培训

本次培训将于2017年12月28日至31日在上海举办,Cloudera Apache Hadoop 管理员培训报名平台活动家。 Cloudera 大学为期4 天的Hadoop 管理员培训将帮助学员综合理解并全 面掌握通过Cloudera ...

活动家
2017/10/13
0
0
北京Cloudera Apache Hadoop 管理员培训

本次培训将于9月18日在北京开班,北京Cloudera Apache Hadoop 管理员培训报名平台活动家。报名猛戳上面“立即报名” Cloudera Apache Hadoop 管理员培训 Cloudera Apache Hadoop 培训及认证帮...

活动家
2017/08/02
0
0
上海Cloudera Apache Hadoop 管理员培训(CCA131)

Cloudera 大学为期4 天的Hadoop 管理员培训将帮助学员综合理解并全 面掌握通过Cloudera Manager对Hadoop机群的运维管理,包括:安装,配置、 负载平衡及性能调优等。通过该培训,Hadoop 系统...

活动家
2017/08/01
0
0
Yarn Secure Container Executor配置简介

前面我们简单介绍了Hadoop资源管控简介,提到了目录的空间大小,目录文件个数,yarn任务内存等等资源的管控,如果我们想要对cpu进行控制就需要用到linux系统本身的cgroup。这时候就需要设置Y...

叁金
2018/06/26
0
0
预警:黑客利用Hadoop Yarn未授权访问漏洞

  【IT168 评论】4月30日,阿里云发现,俄罗斯黑客利用Hadoop Yarn资源管理系统REST API未授权访问漏洞进行攻击。   Hadoop是一款由Apache基金会推出的分布式系统框架,它通过著名的 Ma...

云栖社区
2018/05/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

八、RabbitMQ的集群原理

集群架构 写在前面 RabbitMQ集群是按照低延迟环境设计的,千万不要跨越WAN或者互联网来搭建RabbitMQ集群。如果一定要在高延迟环境下使用RabbitMQ集群,可以参考使用Shovel和Federation工具。...

XuePeng77
今天
1
0
mac系统下,brew 安装mysql,用终端可以连接,navicat却连接不上?

问题: 1.报错? 2059 - Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(../Frameworks/caching_sha2_password.so, 2): image not found 2.自己通过设置,已经把密......

写bug的攻城狮
昨天
2
0
老生常谈,HashMap的死循环

问题 最近的几次面试中,我都问了是否了解HashMap在并发使用时可能发生死循环,导致cpu100%,结果让我很意外,都表示不知道有这样的问题,让我意外的是面试者的工作年限都不短。 由于HashMap...

群星纪元
昨天
4
0
拉普拉斯算子

拉普拉斯算子是二阶微分算子。 我们知道,一维离散信号一阶微分公式如下: 相应的,一维离散信号二阶微分公式如下: 由于图像有x和y两个方向,因此图像信号属于二维离散信号。其在x,y两个...

yepanl
昨天
3
0
记录"正则表达式"

详细请查看我的博客:https://blog.enjoytoshare.club/article/RegularExpression.html 1 写在前面 正则表达式(Regular Expression)在代码中常常简写为regex。正则表达式通常被用来检索、替...

wugenqiang
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部