配置 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目录

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

相关文章
|
6月前
|
运维 关系型数据库 MySQL
os-copilot安装_配置_功能测试全集
我是一位中级运维工程师,我平时工作会涉及到 各类服务器的 数据库 与 java环境配置 操作。 我顺利使用了OS Copilot的 -t -f | 功能,我的疑惑是不能在自动操作过程中直接给与脚本运行权限,必须需要自己运行一下 chmod 这个既然有了最高的权限,为什么就不能直接给与运行权限呢。 我认为 -t 功能有用,能解决后台运行基础命令操作。 我认为 -f 功能有用,可以通过task文件中撰写连续任务操作。 我认为 | 对文件理解上有很直接的解读,可以在理解新程序上有很大帮助。
234 86
|
6月前
|
人工智能 Ubuntu Linux
os-copilot使用之全面配置与使用测试
作为一名个人开发者,我主要从事云服务器架设工作。近期,我成功使用了OS Copilot的 `-t -f |` 功能,解决了执行语句、连续提问及快速理解文件的问题。我发现这些功能非常实用,特别是在使用Workbench时能快速调用AI助手。此外,建议将AI功能与xShell工具联动,进一步提升效率。文中详细记录了购买服务器、远程连接、安装配置OS Copilot以及具体命令测试的过程,展示了如何通过快捷键和命令行操作实现高效开发。
237 67
|
5月前
|
缓存 Java 测试技术
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
436 3
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
|
6月前
|
Dart 前端开发 Android开发
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
135 1
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
7月前
|
域名解析 弹性计算 监控
slb测试基本配置检查
slb测试基本配置检查
202 60
|
8月前
|
安全 应用服务中间件 网络安全
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
467 60
|
7月前
|
监控 负载均衡 容灾
slb测试配置
slb测试配置
156 5
|
10月前
|
资源调度 分布式计算 Hadoop
YARN(Hadoop操作系统)的架构
本文详细解释了YARN(Hadoop操作系统)的架构,包括其主要组件如ResourceManager、NodeManager和ApplicationMaster的作用以及它们如何协同工作来管理Hadoop集群中的资源和调度作业。
332 3
YARN(Hadoop操作系统)的架构
|
10月前
|
资源调度 分布式计算 Hadoop
使用YARN命令管理Hadoop作业
本文介绍了如何使用YARN命令来管理Hadoop作业,包括查看作业列表、检查作业状态、杀死作业、获取作业日志以及检查节点和队列状态等操作。
233 1
使用YARN命令管理Hadoop作业
|
11月前
|
资源调度 分布式计算 算法
【揭秘Yarn调度秘籍】打破资源分配的枷锁,Hadoop Yarn权重调度全攻略!
【8月更文挑战第24天】在大数据处理领域,Hadoop Yarn 是一种关键的作业调度与集群资源管理工具。它支持多种调度器以适应不同需求,默认采用FIFO调度器,但可通过引入基于权重的调度算法来提高资源利用率。该算法根据作业或用户的权重值决定资源分配比例,权重高的可获得更多计算资源,特别适合多用户共享环境。管理员需在Yarn配置文件中启用特定调度器(如CapacityScheduler),并通过设置队列权重来实现资源的动态调整。合理配置权重有助于避免资源浪费,确保集群高效运行,满足不同用户需求。
151 3