配置 YARN 并启动测试|学习笔记

简介: 快速学习配置 YARN 并启动测试

开发者学堂课程【快速掌握 Hadoop 集成 Kerberos 安全技术YARN 并启动测试】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/708/detail/12567


YARN 并启动测试


配置 YARN

1.配置 YARN 相关的 Kerberos 账户

(1)配置 cdho

#在 root 用户下执行

kadmin #进入 kerberos admin 后台

首先回到 cdh0的操作平台,回到 root 账户看一下目前还是托管着 admin 权限的,输入 kadmin 后台,输入他的密码。

#添加 resourcemanager 的账户

addprinc -randkeyrm/cdheitcast.cnITCAST.CN

输入 cd /etc/security/keytabs/,会发现已经添加好。

#添加 job historvserver 的账户

addprinc -randkeyjhs/cdhitcastnITCASTCN

执行 kadmin,输入密码,添加 job historvserver 账户

#添加 rm 账户的本地 keytab

ktadd -k/etc/security/keytabs/rmservicekeytab rm/cdhitcast.cn@ITCAST.CN

ktadd -k/etc/security/keytabs/ihs.servicekeytabhs/cdhitcast.cn@ITCAST.CN

将以上代码执行并添加,没有问题后会发现多了 jhs.service keytabhs

# 将得到的 rm.service.keytab 改权限

chmod 400rm.service kevtab

chown yarn:hadoop rm.service.keytab

#将得到的 ihs.service.kevtab 改权限

chmod 400 ihs.service.kevtab

chown mapred:hadoop ihs.service.keytab

先改一下400,再改一下所属,

# 得到

[root@cdhe keytabs]# 11

total 20mapred hadoop 412 Sep 26 14:20 jhsservicekeytab

-r--------- 1 hdfs hadoop 406 Sep 26 11:11 nnservicekeytab

-r--------1

-r---------1yarn hadoop 406 Sep 26 14:09 m.service.keytab

-r-------- 1 hdfs hadoop 486 Sep 26 11:13snservicekeytab

-r-------- 1 hdfs hadoop 418 Sep 26 12:20 spnego.service.keytab

(2)配置 cdh1

#在 root 用户下执行

kadmin#进 Akerberos admin 后台

进入到 cd/ect/security/keytabs

#添加 nodemanager 的账户

addprinc-randkeynm/cdh1iteastnITCAST.CN

#添加 nm 账户的本地 keytab

ktadd -k/etc/security/keytabs/nm.servicekeytabnm/cdh1itcastcn@ITCAST.CN

# 将得到的 nm.service.keytab 改权限

chmod 400 nm.service kevtab

chown yarn:hadoop nm.service.keytab

# 得到

[rootecdh1 keytabs]#11

total 12

-r-------- 1 hdfs hadoop 406 Sep 26 11:18 dn.service.keytab

-r-------- 1 yarn hadoop 406 Sep 26 14:14nmservicekeytab

-r-------- 1 hdfs hadoop 418 Sep 26 12:22 spnegoservicekeytab

(3)配置 cdh2

#在 root 用户下执行

kadmin #进入kerberos admin后台

#添加 nodemanager 的账户

addprinc -randkeynm/cdh2iteastcnITCAST.CN

#添加 nm 账户的本地 keytab

ktadd -k/etc/security/keytabs/nmservicekeytabnm/cdh2itcast.cn@ITCASTCN

#将得到的 nm.service.kevtab 改权限 chmod 400 nm.service keytab

chown yarn:hadoopnm.service.keytab

# 得到

rootecdh1 kevtabs # 11

total 12

-r-------- 1 hdfs hadoop 406 Sep 26 11:18 dn.service.keytab

-r-------- 1 varn hadoop 406 Sep 2614:14nmservicekevtab

-r-------- 1 hdfs hadoop 418 Sep 26 12:22 spnego.service.keytab

检查时会发现 nmservicekevtab 已经创建好了

2、配置 yarn-site.xml

<?xml version="1.0"?>

<!--

Licensed under the Apache License,Version 2.0(the"License");you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing. softwaredistributed under the License is distributed on an"AS IS" BASIS.WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND. either express orimplied.See the License for the specific language governing permissionsand

limitations under the License. See accompanying LICENSE file.

-->

<confiauration>

<property>

<name>yarn.log.server.url</name>

<value>https://cdh0.itcast.cn:19890/jobhistory/logs</value><description></description>

</property>

首先是配置 jobhistory 的 ul 路径

<propertyx

<name>yarn.acl.enable</name>

<value>false</value>

<description>lnable ACLs? Defaults to false.</description>

</property>

这里配置 acl.,这里没有开启 sl

所有的配置大多数都是 yarn 本身的配置。

<property>

<name>yarn.resourcemanager.principal</name>

<value>rm/_HOST@ITCAST.CN</value>

</property>

<property>

<name>yarn.resourcemanager.keytab</name>

<value>/etc/security/keytabs/rm.service.keytab</value>

</property>

这里 resourcemanager 对应账户,_HOST 来转换成主题名,同时对应 keytabs 文件转化在哪里

这里还有个 webapp 对应的是 true,同样是 manager 账户是哪一个,对应的 keytab 存放在那个路径下。

还有一些 timeline,这里并没有使用 timeline,在这个示例里面用不到。

还是需要对 yarn 实行一些 ssl,开启 httpsonly,只允许使用 https

有个关键配置 linux-container-executor.要首先给他个 group,用 Hadoop 作为他的管理者

这里有个执行的 class,这里配置为这样一个 class:org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor.

3、配置 mapred.xml

<?xml version="1.0"?>

e?xml-stylesheettype="text/xsl"hrefconfiquration xsl"?>

<!--Licensed under the Apache License, Version 2.e (the “License").you may not use this file except in compliance with the License.You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0Unless required by apolicable lam or agreed to in writing, software

distributed under the License is distributed on an"AS IS" BASIS.WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND. either express orimplied.See the License for the specific languace coverning permissionsand

limitations under the License. See accompanying LICENSE file.

--->

<!-- Put site specifie property overrides in this file.-->

<property>

<name>mapreduce.framework.name</name><value>yarn</value>(这里是 mapreduce 的框架登录)

<description></description></property>

<!--

<property>

<name>mapreduce.map.memory.mb</nam><value>1024</value>

<description>Larger resource limit for maps.

</description>

</property>

<property>

<name>mapreduce.mapjava.opts</name><value>-Xmx768M</value>

<description></description></property>

<property>

<name>mapreduce.reduce.memory.mb</name><value>1024</value>

<description></description></property>

<property>

<name>mapreduce.reduce.java.opts</name><value>-Xmx2000M</value>

<description></description></property>

<property>

<name>mapreduce.task.io.sort.mb</name><value>256</value>

<description></description></property>

I

<property>

<name>mapreduce.task.io.sort.factor</name><value>50</value>

<description></descliption></property>

<property>

<name>mapreduce.reduce.shuffle.parallelcopies</name><value>25</value><description>Higher number of parallel copies run by reduces tofetch outputs from very large number of maps.</description>

</property>

<property>

<name>mapreduce.jobhistory.webapp.address</name><value>cdh0.itcast.cn:19888</value><description></description></property>

<property>

<name>mapreduce.jobhistory.intermediate-done-dir</name><value>/mr-data/mr-history/tmp</value><description></description></property>

<property>

<name>mapreduce.jobhistory.done-dir</name><value>/mr-data/mr-history/done</value><description></description></property>

<property> I

<name>mapreduce.obhistorykeytab</name>

<value>/etc/security/keytabs/ihs.servicekeytab</value></property><property>

<name>mapreduce.jobhistory.principal</name><value>jhs/_HOST@ITCAST.CN</value></property>

<property>

<name>mapreduce.jobhistory.webapp.spnego-principal</name><value>HTTP/_HOST@ITCAST.CN</value></property><property>(他要使用的账户在哪里)

<name>mapreduce.jobhistory.webapp.spnego-keytab-file</name>

<value>/etc/security/keytabs/spnego.servicekeytab</value>

</property>

<property>

<name>mapreduce.jobhistory.http.policy</name><value>HTTPS_ONLY</value>

</property>

</configuration>

将以上代码复制,保存即可

添加操作如图:

image.png

4、配置 container-executor.cfg

以 root 账户编辑

yarn.nodemanager.local-dirs=/data/nm-local

yarn.nodemanagerlog-dirs=/data/nm-1og

yarnnodemanager.linux-container-executor.group-hadoop

#configured value of yarn.nodemanager.linux-container-executor. Group

banned.users bin

#comma separated list of users who can not run applications

min.user.id=100

#Prevent other super-users

allowed.system.users=root,yarn,hdfs,mapred,hive,dev t

##comma separated list of system users who can run applications

将以上进行复制,首先定义 yarn 两个路径,banned.users bin 是不允许提交 yarn 的容器的,如果不想某个账户提交,就把这个账户放在这里面这些对应的账户它就没有权限去创建对应的容器,有一个最小的 user.id 设置为100,因为某些 superu id 就是他的 ID 是很小的,低于100是不允许执行的,还有一个叫做允许的系统用户,比如说 root,yarn,hdfs,mapred,hive,dev t,这些用户它是可以有权限去提交 yarn 任务的。

5.将配置文件复制到其他机器

scp container-executor.cfg mapred-site.xml yarn-site.xml cdh1:/bigdata/hadoop-2.6.0 cdh5.14.4/etc/hadoop/

scp container-executor.cfg mapred-site.xml yarn-site.xml cdh2:/bigdata/hadoop-2.6.0 cdh5.14.4/etc/hadoop/

6.启动 HistoryServer

在 cdho 机器,切换到 mapred 账户

执行: kinit -kt /etc/security/keytabs/jhs.service.keytab jhs/cdh0.itcast.cn@ITCAST.CN(授权)

执行: mr-jobhistory-daemon.sh start historyserver,会发现正常运行

浏览器打开:https://cdh0:19890

image.png

7.启动 resourcemanager

在 cdho 机器,切换到 yarn 账户

执行:kinit -kt /etc/securitv/kevtabs/rm.service keytab rm/cdhe.itcast.cneITCAST.CN(授权)

执行: yarn-daemon.sh start resource manager,(启动)正常运行,查看日志,没有问题

浏览器打开:https://cdho:8090

没有问题同样启动 cdh1、cdh2。操作步骤相同,打开浏览器页面如下:

image.png

image.png

8.提交 MR 程序测试

在 cdho 机器上:

1. su-yirn

2. kinit -kt /etc/security/kevtabs/rm.service.kevtab rm/cdh0.itcast.cneITCAST.CN(注册)

3.hadoopiar/biadata/hadoop-2.6.0-cdh5.14.4/share/hadoop/mapreduce/hadoon-mapreduce-examples-2.6.0-cdh5.14.4 iar wordcount /readme txt /tmp/wd-outputi(运行)

这个异常一般忽略就可以:

image.png

Job 已经运行成功了,再切换到 hdfs 账户,运行会发现有/tmp/wd-output1目录

以上所有步骤操作完后,会发现都可以正常执行了。

相关文章
|
3月前
|
Java 测试技术 数据安全/隐私保护
通过yaml文件配置自动化测试程序
通过yaml文件可以将自动化测试环境,测试数据和测试行为分开,请看一下案例
127 4
|
4月前
|
XML Ubuntu Java
如何在Ubuntu系统上安装和配置JMeter和Ant进行性能测试
进入包含 build.xml 的目录并执行:
244 13
|
11月前
|
运维 关系型数据库 MySQL
os-copilot安装_配置_功能测试全集
我是一位中级运维工程师,我平时工作会涉及到 各类服务器的 数据库 与 java环境配置 操作。 我顺利使用了OS Copilot的 -t -f | 功能,我的疑惑是不能在自动操作过程中直接给与脚本运行权限,必须需要自己运行一下 chmod 这个既然有了最高的权限,为什么就不能直接给与运行权限呢。 我认为 -t 功能有用,能解决后台运行基础命令操作。 我认为 -f 功能有用,可以通过task文件中撰写连续任务操作。 我认为 | 对文件理解上有很直接的解读,可以在理解新程序上有很大帮助。
349 86
|
11月前
|
人工智能 Ubuntu Linux
os-copilot使用之全面配置与使用测试
作为一名个人开发者,我主要从事云服务器架设工作。近期,我成功使用了OS Copilot的 `-t -f |` 功能,解决了执行语句、连续提问及快速理解文件的问题。我发现这些功能非常实用,特别是在使用Workbench时能快速调用AI助手。此外,建议将AI功能与xShell工具联动,进一步提升效率。文中详细记录了购买服务器、远程连接、安装配置OS Copilot以及具体命令测试的过程,展示了如何通过快捷键和命令行操作实现高效开发。
411 67
|
10月前
|
缓存 Java 测试技术
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
1354 3
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
|
域名解析 弹性计算 监控
slb测试基本配置检查
slb测试基本配置检查
312 60
|
11月前
|
Dart 前端开发 Android开发
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
365 1
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
11月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
6月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1050 23
|
8月前
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
1281 24