开发者学堂课程【Oozie 知识精讲与实战演练:Apache Oozie一 实战操作一修改hadoop 资源分配属性】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/716/detail/12786
Apache Oozie一 实战操作一修改 hadoop 资源分配属性
内容介绍
一、Apache Oozie 实战
总结
一、Apache Oozie 实战
oozie 安装好了之后,需要测试 oozie 的功能是否完整好使,官方已经自带各种测试案例,可以通过官方提供的各种案例来学习 oozie 的使用,后续也可以把这些案例作为模板在企业实际中使用,做一些相关的修改。
(1)先把官方提供的各种案例给解压出来。来到服务器上
首先 cd /export/servers/oozie-4.1.0-cdh5.14.0 安装包根目录
会发现 tar -zxvf oozie-examples.tar.gz,这里就是各种案例的模板
直接复制解压,解压后发现多了叫 examples 的文件夹,面是各种案例方便后面的学习。
(2)再去创建统一的工作目录,便于集中管理 oozie。企业中可任意指定路径。这里直接在 oozie 的安装目录下面创建工作目录。
cd /export/servers/oozie-4.1.0-cdh5.14.0
mkdir oozie works 直接创建,依旧在安装包的根目录下,这样就可以统一的在 oozie works 进行相关的配置。
1.优化更新 hadoop 相关配置
1.1.yarn 容器资源分配性
yarn-site.xml:
这一步在企业实际生产环境当中特别重要,因为一旦没有修改配置,服务器环境不一样的话,就可能在执行 oozie 的时候报错。
第一部分是跟压容器资源分配相关的,像作为集群的资源管理者,默认会去管理机上的 CPU 和内存,问题就在于内存实际多少并不知道,比如这里采用的是虚拟机来运行的,虚拟机可能给他分配两个 g 四个 g,但是 yarn 相当中默认最大内存这个节点属性的默认是 8G,这个时候就会产生问题,所以这个属性上去修改一下,要指定该节点最大的物理可用内存,必须要结合你的实际物理内存来调整,比如这台机器是 100G 的配置,那就给他配置为100或配置为99,要留一些内存给其他服务来使用,所以这一块就是修改。
yarn.nodemanager.resourcememory-mb
3072
下面部分是每个容器申请内存的最大值和最小值,在他没有配置的时候,最小值是1024,最大是 8G,这里结合物理情况来做个调整,给他分配的每台机器上最大的可用内存呢只给分配了 3G。
使用free-h 命令,可以看到当前机器最高是 3.7G,最高上限3072
yarn.schedulerminimum-allocation-mb
1024
yarn.schedulermaximum-allocation-mb
3072
yarn.resourcemanager.schedulerclass
,默认调度叫做schedulerclass 容量调度
org.apache.hadoop.yarnserverresourcemanagerschedulerfairFairScheduler
schedulerclass
容量调度默认是单线程的调度,前面的执行完后,后面再执行,这样就会出现任务的等待问题,比如前面的程序没有执行完,后面的就在等待,所以需要把这个调度改为 FairScheduler 公平调度动态调整资源,公平调度底层是多线程执行的模式,A 执行的同时 B 也可以执行,资源不足的呢可以开始抢占。
yarn.scheduler.fair.preemption
true
yarn.schedulerfairpreemptioncluster-utilization-threshold
1.0
1.2.mapreduce 资源申请配置
Oozie 的各种类型的任务都是由 mr 程序提交的,会首先启动一个程序,在这个 mr程序当中再去提交各种类型的应用。
在当中需要申请资源,但默认情况下如果不配置,也会报错,资源请求不合法,最小内存是负一,最大是 8G,这时候需要去指定一下 mapreduce mapmemorymb内存是多少,mapreducereducememorymb 内存是多少,治理同意分配成102417,可以根据物理实际情况、业务来做相关的修改,必须要修改如果不修改有报错,修改完成这两篇文件后把配置文件拷贝给其他的机器,然后做集群的重启。
设置 mapreduce mapme morymb 和 mapreducere duceme morymb 配置。
否则 Oozie 读取的默认配置-1,提交给 yarn 的时候会抛异常 Invalid resource request, requested memory max configured Requested Memory=-1maxMemory=8192
mapred-site.xml
mapreducemapmemorymb
1024
mapreduce.reduce.memorymb
1024
验证:CD 到 export server 在 hdoop-ETC 路径下,我这台机器呢因为以及之前配置好了,我们这边来做验证,首先去 vrm 一个叫做 yarn-site.Xml,可以发现在最下面这里,指定了使用的资源,机器最高可使用 3072,3G,最小 1G,然后下面是指定调度的策略,保持一致,没有问题,保存。
另外配置文件,叫做 vim mapred-site.xml,在这里配置两个参数,每个 mr 程序当中 map 可以申请1024到内存 1G,然后 reduc 一样,也是1024 1g,必须要配置,否则的话会见到这个错误负一,如果不配置的话,出错的时候,可以通过以上代码来做验证,看看是不是这样类型的错误,配置修改后一定要注意把配置分配给其他集区,做重启操作,这样就完成了我们使用 oozie 之前的前置工作。
二、总结
oozie 实战
1.解压出官方自带的案例 里面封装了各种类型任务的配置模板
2.优化更新 hadoop 环境资源配置
(1)yarn 资源相关的申请资源的上下限 yarn 调度策略 (fair 多线程执行模式)
(2)mapreduce 申请资源相关的 maptaskreducetask 申请内存的大小
(3)scp 给其他机器重启集群 (hadoop)oozie