[Hadoop] Yarn & k8s
写在前面
一、大数据全栈
头两节讲完HDFS & MapReduce,这一部分聊一聊它们之间的“人物关系”。
其中也讨论下k8s的学习必要性。
Ref: [Distributed ML] Yi WANG's talk
二、知识点
容器技术与Kubernetes
Goto: 3 万容器,知乎基于Kubernetes容器平台实践
Goto: 如何学习、了解kubernetes?
Goto: 选K8S是对的,但是用不好就是你的不对了
Yarn资源管理
一、重要概念
- ResouceManager
- ApplicationMaster
- NodeManager
- Container
- JobHistoryServer
- Timeline Server
JobHistoryServer
所有node启动如下命令,能记录mapreduce应用程序的记录。(对作业信息进行记录)
mr-jobhistory-daemon.sh start historyserver
Timeline Server
写与第三方结合的日志服务数据(比如spark等),是更细粒度的信息记录。。
任务在哪个队列中运行;
运行任务时设置的用户是哪个用户;
二、启动流程
Ref: 实战案例玩转Hadoop系列11--运行Map Reduce程序
在真实的生产环境中,MAP REDUCE程序应该提交到Yarn集群上分布式运行,这样才能发挥出MAP REDUCE分布式并行计算的效果。
MAP REDUCE程序提交给Yarn执行的过程如下:
1、客户端代码中设置好MAP REDUCE程序运行时所要使用的Mapper类、Reducer类、程序Jar包所在路径、Job名称、Job输入数据的切片信息、Configuration所配置的参数等资源,统一提交给Yarn所指定的位于HDFS上的Job资源提交路径;
2、客户端向Yarn中的Resource Manager请求运行Jar包中MRAppMaster进程的资源容器Container;
分配application id、输出是否存在、输入 --> split(一个分片对应一个map task)
3、Yarn将提供Container的任务指派给某个拥有空闲资源的 Node Manager节点,Node Manager接受任务后创建资源容器(即所谓的Container);
容器所需分配的“资源描述信息” ---> 某个空闲的Node Manager节点 ---> 启动一个contrainer
4、客户端向创建好容器的Node Manager发送启动MRAppMaster进程的shell脚本命令,启动MRAppMaster;
5、MRAppMaster启动后,读取 job相关配置及程序资源,向Resource Manager请求N个资源容器来启动若干个Map Task进程和若干个Reduce Task进程,并监控这些Map Task进程和Reduce Task进程的运行状态;
6、当整个Job的所有Map Task进程和Reduce Task进程任务处理完成后,整个Job的所有进程全部注销,Yarn则销毁Container,回收运算资源。
三、Yarn调度器
FIFO Scheduler
Capacity Scheduler
Fair Scheduler
新建一个capacity-scheduler.xml,也要同步拷贝到其他node中。
<configuration> <property> <name>yarn.scheduler.capacity.root.queues</name> <value>prod,dev</value> </property> <property> <name>yarn.scheduler.capacity.root.dev.queues</name> <value>hdp,spark</value> </property> <property> <name>yarn.scheduler.capacity.root.prod.capacity</name> <value>40</value> </property> <property> <name>yarn.scheduler.capacity.root.dev.capacity</name> <value>60</value> </property> <property> <name>yarn.scheduler.capacity.root.dev.maximum-capacity</name> <value>75</value> </property> <property> <name>yarn.scheduler.capacity.root.dev.hdp.capacity</name> <value>50</value> </property> <property> <name>yarn.scheduler.capacity.root.dev.spark.capacity</name> <value>50</value> </property> </configuration>
MR程序中添加代码:
Configuration configuration = new Configuration();
configuration.set("mapreduce.job.queuename", "hdp")
Job job = Job.getInstance(configuration, WordCountMain.class.getSimpleName());
Cluster UI在运行的MR查看:
Kubernetes
Ref:Big Data: Google Replaces YARN with Kubernetes to Schedule Apache Spark
Ref: Running Spark on Kubernetes
The Kubernetes scheduler is currently experimental. In future versions, there may be behavioral changes around configuration, container images and entrypoints. - 2019/10/28
既然这样,暂时不提。
End.
[Hadoop] Yarn & k8s的更多相关文章
- Hadoop YARN 100-1知识点
0 YARN中实体 资源管理者(resource manager, RM) 长时间运行的守护进程,负责管理集群上资源的使用 节点管理者(node manager, NM) 长时间运行的守护进程,在集群 ...
- hadoop yarn running beyond physical memory used
老是报物理内存越界,kill container,然后把yarn.scheduler.minimum-allocation-mb设成2048就好了 跟这个yarn.nodemanager.pmem-c ...
- Hadoop YARN配置参数剖析—RM与NM相关参数
注意,配置这些参数前,应充分理解这几个参数的含义,以防止误配给集群带来的隐患.另外,这些参数均需要在yarn-site.xml中配置. 1. ResourceManager相关配置参数 (1) ...
- Hadoop Yarn内存资源隔离实现原理——基于线程监控的内存隔离方案
注:本文以hadoop-2.5.0-cdh5.3.2为例进行说明. Hadoop Yarn的资源隔离是指为运行着不同任务的“Container”提供可独立使用的计算资源,以避免它们之间相互干扰.目 ...
- hadoop错误org.apache.hadoop.yarn.exceptions.YarnException Unauthorized request to start container
错误: 14/04/29 02:45:07 INFO mapreduce.Job: Job job_1398704073313_0021 failed with state FAILED due to ...
- hadoop Yarn 编程API
客户端编程库: 所在jar包: org.apache.hadoop.yarn.client.YarnClient 使用方法: 1 定义一个YarnClient实例: private YarnClien ...
- MapReduce扩展:应用程序如何运行于Hadoop Yarn之上
1. 背景 “应用程序运行于Hadoop Yarn之上”的需求来源于微博运维数据平台中的调度系统,即调度系统中的任务需要运行于Hadoop Yarn之上.这里的应用程序可以简单理解为一个普通的进程 ...
- Hadoop yarn配置参数
参照site:http://hadoop.apache.org/docs/r2.6.0/hadoop-yarn/hadoop-yarn-common/yarn-default.xml 我们在配置yar ...
- Hadoop YARN ERROR 1/1 local-dirs are bad *, 1/1 log-dirs are bad *
转 http://blog.csdn.net/u012303571/article/details/46913471 查看 nodemanager 日志发下 如下信息 2015-07-16 1 ...
随机推荐
- 十三:MVC-HTML辅助方法-输出表单
ASP.NET MVC框架内置多个表单相关的HTML辅助方法 HTML辅助方法 说明 Html.BeginForm() 输出<form>标签 Html.CheckBox() 输出<i ...
- .NET SignalR中长连接与HUB连接的使用方式以及区别
1 using Microsoft.AspNet.SignalR; 2 using System; 3 using System.Collections.Generic; 4 using System ...
- 【TCP】连接管理
TCP连接管理 本节将介绍一条TCP连接是如何建立和拆除的.此处假设客户机A上面的一个进程想要和服务 器B上的一个进程建立一条TCP连接.本文前面介绍的是比较正常的连接和拆除,特殊的会在后面介绍. ...
- C# 之 .net core -- 创建项目
一.新建一个Web 的 应用程序 二.选择项目的基本信息(.net coer 2.2 和带有试图控制器的程序) 这个是类似以MVC的模式,也可以用其他的,总之需要什么选什么 三. 然后既可以看到这样一 ...
- CF15E Triangles
思路 有四种方法,L,R,L->R,只走上面的小三角形 然后组合方案数\(2f^2+8f+10\) 然后求f,递推一下就好啦(其实是太麻烦了) 时间和空间复杂度都是\(O(n)\) 代码 #in ...
- 【洛谷P4430】小猴打架
题目大意:求带标号 N 个点的生成树个数,两棵生成树相同当且仅当两棵树结构相同且边的生成顺序相同. 题解:学会了 prufer 序列. prufer 序列是用来表示带标号的无根树的序列. 每种不同类型 ...
- 埋点(Event Tracking)vs 无埋点(Codeless Tracking) vs 可视化埋点(Visual Event Tracking)
在理解什么是埋点之前,首先需要了解一些基础知识:(以下摘自:http://www.chinawebanalytics.cn/auto-event-tracking-good-bad-ugly/) 我们 ...
- Java多线程断点下载文件
Java实现断点续传+多线程下载 如下代码所示,每一步都有注解 思路: 通过URL连接到服务器上要下载的文件,得到文件的大小: 算出每条线程下载的开始位置和结束位置,例如,有两条线程下载100Byte ...
- Codeforces Round #587 (Div. 3) A. Prefixes
链接: https://codeforces.com/contest/1216/problem/A 题意: Nikolay got a string s of even length n, which ...
- windows——celery
celery 4.0版本以后放弃对Windows的支持 GITHUB_issues(https://github.com/celery/celery/issues/4178) 替代解决方案: 安装:p ...