yarn

Spark On YARN内存分配

风格不统一 提交于 2019-12-18 04:26:42
本文转自:http://blog.javachen.com/2015/06/09/memory-in-spark-on-yarn.html?utm_source=tuicool 此文解决了Spark yarn-cluster模式运行时,内存不足的问题。 Spark yarn-cluster模式运行时,注意yarn.app.mapreduce.am.resource.mb的设置。默认为1G Spark On YARN内存分配 本文主要了解Spark On YARN部署模式下的内存分配情况,因为没有深入研究Spark的源代码,所以只能根据日志去看相关的源代码,从而了解“为什么会这样,为什么会那样”。 说明 按照Spark应用程序中的driver分布方式不同,Spark on YARN有两种模式: yarn-client 模式、 yarn-cluster 模式。 当在YARN上运行Spark作业,每个Spark executor作为一个YARN容器运行。Spark可以使得多个Tasks在同一个容器里面运行。 下图是yarn-cluster模式的作业执行图,图片来源于网络: 关于Spark On YARN相关的配置参数,请参考 Spark配置参数 。本文主要讨论内存分配情况,所以只需要关注以下几个内心相关的参数: spark.driver.memory :默认值512m spark

YARN架构设计详解

我怕爱的太早我们不能终老 提交于 2019-12-18 04:26:30
一、 YARN基本服务组件 YARN是Hadoop 2.0中的资源管理 系统 ,它的基本设计思想是将MRv1中的JobTracker拆分成了两个独立的服务:一个全局的资源管理器ResourceManager和每个应用程序特有的ApplicationMaster。其中ResourceManager负责整个 系统 的资源管理和分配,而ApplicationMaster负责单个应用程序的管理。 YARN总体上仍然是master/slave结构,在整个资源管理框架中,resourcemanager为master,nodemanager是slave。Resourcemanager负责对各个nademanger上资源进行统一管理和调度。当用户提交一个应用程序时,需要提供一个用以跟踪和管理这个程序的ApplicationMaster,它负责向ResourceManager申请资源,并要求NodeManger启动可以占用一定资源的任务。由于不同的ApplicationMaster被分布到不同的节点上,因此它们之间不会相互影响。 YARN的基本组成结构,YARN主要由ResourceManager、NodeManager、ApplicationMaster和Container等几个 组件 构成。 ResourceManager是Master上一个独立运行的进程,负责集群统一的资源管理、调度、分配等等

YARN 内存参数终极详解

送分小仙女□ 提交于 2019-12-18 04:26:19
很多朋友在刚开始搭建和使用 YARN 集群的时候,很容易就被纷繁复杂的配置参数搞晕了:参数名称相近、新老命名掺杂、文档说明模糊 。特别是那几个关于内存的配置参数,即使看好几遍文档也不能完全弄懂含义不说,配置时一不小心就会张冠李戴,犯错误。 如果你同样遇到了上面的问题,没有关系,在这篇文章中,我就为大家梳理一下 YARN 的几个不易理解的内存配置参数,并结合源码阐述它们的作用和原理,让大家彻底清楚这些参数的含义。 一、YARN 的基本架构 介绍 YARN 框架的介绍文章网上随处都可以找到,我这里就不做详细阐述了。之前我的文章“YARN环境中应用程序JAR包冲突问题的分析及解决”中也对 YARN 的一些知识点做了总结,大家可以在TheFortyTwo 后台回复编号 0x0002 获得这篇文章的推送。下面附上一张 YARN 框架图,方便引入我们的后续内容: 图 1: YARN 架构图 二、内存相关参数梳理 YARN 中关于内存配置的参数呢,乍一看有很多,其实主要也就是那么几个(如果你感觉实际接触到的比这更多更混乱,是因为大部分的配置参数都有新命名和旧命名,我后面会分别解释),我已经整理出来列在了下表中。大家先看一下,对于表中各列的意义,我会在本节后面详细说明;而对于每个参数的意义,我会放在下节进行详细解释。 图 2: 内存参数整理图 下面我们解释一下表中的各列: 配置对象

Hadoop YARN中内存的设置

巧了我就是萌 提交于 2019-12-18 04:26:07
在YARN中,资源管理由ResourceManager和NodeManager共同完成,其中,ResourceManager中的调度器负责资源的分配,而NodeManager则负责资源的供给和隔离。ResourceManager将某个NodeManager上资源分配给任务(这就是所谓的“资源调度”)后,NodeManager需按照要求为任务提供相应的资源,甚至保证这些资源应具有独占性,为任务运行提供基础的保证,这就是所谓的资源隔离。 基于以上考虑,YARN允许用户配置每个节点上可用的物理内存资源,注意,这里是“可用的”,因为一个节点上的内存会被若干个服务共享,比如一部分给YARN,一部分给HDFS,一部分给HBase等,YARN配置的只是自己可以使用的,配置参数如下: (1)yarn.nodemanager.resource.memory-mb 表示该节点上YARN可使用的物理内存总量,默认是8192(MB),注意,如果你的节点内存资源不够8GB,则需要调减小这个值,而YARN不会智能的探测节点的物理内存总量。 (2)yarn.nodemanager.vmem-pmem-ratio 任务每使用1MB物理内存,最多可使用虚拟内存量,默认是2.1。 (3) yarn.nodemanager.pmem-check-enabled 是否启动一个线程检查每个任务正使用的物理内存量

MapReduce优化参数

心已入冬 提交于 2019-12-18 04:25:49
资源相关参数 /*在MapReduce 应用程序中配置就可以生效*/ (1) mapreduce.map.memory.mb: 一个 Map Task 可使用的内存上限(单位 :MB ),默认为 1024 。如果 Map Task 实际使用的资源量超过该值,则会被强制杀死。 (2) mapreduce.reduce.memory.mb: 一个 Reduce Task 可使用的资源上限(单位 :MB ),默认为 1024 。如果 Reduce Task 实际使用的资源量超过该值,则会被强制杀死。 (3) mapreduce.map.cpu.vcores : 每个 Maptask 可用的最多 cpu core 数目 , 默认值 : 1 (4) mapreduce.reduce.cpu.vcores : 每个 Reducetask 可用最多 cpu core 数目默认值 : 1 (5) mapreduce.map.java.opts: Map Task 的 JVM 参数,你可以在此配置默认的 java heap size 等参数, 例如:“-Xmx1024m -verbose:gc -Xloggc:/tmp/@taskid@.gc” ( @taskid@ 会被 Hadoop 框架自动换为相应的 taskid ) , 默认值 : “” (6) mapreduce.reduce.java

Hadoop2配置详解

天大地大妈咪最大 提交于 2019-12-18 04:25:20
配置文件 hadoop的配置是由两种重要类型的配置文件进行驱动的: 默认是只读的配置: core-default.xml, hdfs-default.xml, yarn-default.xml and mapred-default.xml。 特殊节点配置: conf/core-site.xml, conf/hdfs-site.xml, conf/yarn-site.xml and conf/mapred-site.xml。 此外,你可以通过分布的bin/文件夹下的hadoop脚本conf/hadoop-env.sh和yarn-env.sh。通过设置设定值进行控制。 节点配置: 要配置Hadoop集群,你需要配置在Hadoop运行的环境中配置环境变量以及为Hadoop守护进程的配置参数。 Hadoop启动进程是NameNode/DataNode and ResourceManager/NodeManager。 配置Hadoop运行环境 管理员可以使用的conf/hadoop-env.sh 和 conf/yarn-env.sh脚本做的Hadoop运行的进程环境中的特定节点的配置。至少你应该正确配置集群远程节点上的JAVA_HOME 。 在大多数情况下,你也应该设置HADOOP_PID_DIR 和 HADOOP_SECURE_DN_PID_DIR

hadoop入门手册1:hadoop【2.7.1】【多节点】集群配置【必知配置知识1】

两盒软妹~` 提交于 2019-12-18 04:24:17
问题导读 1.说说你对集群配置的认识? 2.集群配置的配置项你了解多少? 3.下面内容让你对集群的配置有了什么新的认识? 目的 目的1: 这个文档描述了如何安装配置hadoop集群,从几个节点到上千节点。为了学习hadoop,你可能先从单节点入手 (查看 Single Node Setup).这里有中文版 hadoop2.7【单节点】单机、伪分布、分布式安装指导 http://www.aboutyun.com/thread-12798-1-1.html 这个文档不包括:hadoop在安全模式下配置和HA【高可用配置】,后面在更新 目的2: 我们看了很多集群配置文档,你是否静下心来,想集群配置到底是怎么一回事。 准备 1.安装Java 2.下载hadoop包 ################################## 包集合: hadoop家族、strom、spark、Linux、flume等jar包、安装包汇总下载(持续更新) http://www.aboutyun.com/thread-8178-1-1.html ################################## 安装 安装hadoop集群包括:解压包,配置hadoop,划分主节点和子节点。 集群中可以将namenode和ResourceManager分布在不同的机器上,这些称之为 master

hadoop2.x整合手册【1】--hadoop2.x安装与配置

自闭症网瘾萝莉.ら 提交于 2019-12-18 04:23:33
前置工作 此处阅读需要曾经有1.x版本的安装部署经验 ssh无密码配置如同1.X版本和防火墙需要关闭,而需要的java环境也要准备好 将hadoop集群进行网络隔离,服务请求以及数据请求不要直接访问hadoop集群 安装步骤 一、核心配置文件以及配置(此处配置来源于官网) conf/core-site.xml Parameter Value Notes fs.defaultFS NameNode URI hdfs://host:port/ io.file.buffer.size 131072 Size of read/write buffer used in SequenceFiles. conf/hdfs-site.xml Configurations for NameNode: Parameter Value Notes dfs.namenode.name.dir Path on the local filesystem where the NameNode stores the namespace and transactions logs persistently. If this is a comma-delimited list of directories then the name table is replicated in all of the

hadoop2.2分布式环境搭建

你离开我真会死。 提交于 2019-12-18 04:22:44
hadoop2.2的分布式环境需要配置的参数更多。但是需要安装的系统软件和单节点环境是一样的。 运行hadoop在非安全环境 hadoop的配置文件有两类: 1:只读的默认配置文件: core-default.xml,hdfs-default.xml,yarn-default.xml mapred-default.xml 2: 可配置的配置文件: core-site.xml,hdfs-site.xml,yarn-site.xml,mapred-site.xml 除此之外,还可以修改bin目录下面的shell脚本,或者是hadoop-env.sh,yarn-env.sh。 为了配置集群,需要配置hadoop进程运行需要的环境参数。hadoop的守护进程为NameNode/DataNode和ResourceManager 配置hadoop进程的环境 参数 管理员需要使用conf/hadoop-env.sh和conf/yarn-env.sh脚本来定制化hadoop进程的环境。最少也要配置JAVA_HOME环境。大多数情况下需要制定HADOOP_PID_DIR和HADOOP_SECURE_DIR来指定目录,改目录是启动hadoop进程的用户可以写入的。 例如:export HADOOP_NAMENODE_OPTS="-XX:+UseParallelGC ${HADOOP_NAMENODE

Hadoop: Hadoop Cluster配置文件

折月煮酒 提交于 2019-12-18 04:22:31
Hadoop配置文件 Hadoop的配置文件: 只读的默认配置文件: core-default.xml , hdfs-default.xml , yarn-default.xml 和 mapred-default.xml 站点特定的配置文件: etc/hadoop/core-site.xml , etc/hadoop/hdfs-site.xml , etc/hadoop/yarn-site.xml 和 etc/hadoop/mapred-site.xm Hadoop环境变量配置文件: etc/hadoop/hadoop-env.sh 、 etc/hadoop/mapred-env.sh 和 etc/hadoop/yarn-env.sh 管理员用户可以修改etc/hadoop/hadoop-env.sh 、 etc/hadoop/mapred-env.sh 和 etc/hadoop/yarn-env.sh 脚本来自定义站点特定的配置,修改这些脚本就是配置Hadoop后台进程用到的环境变量,比如,配置JAVA_HOME。 通过修改下面配置参数,管理员可以设置单独的Hadoop后台进程 Daemon Environment Variable NameNode HADOOP_NAMENODE_OPTS DataNode HADOOP_DATANODE_OPTS Secondary