`

hadoop-集群管理(2)——内存设置

阅读更多
 

1. 内存

hadoop为各个守护进程(namenode,secondarynamenode,jobtracker,datanode,tasktracker)统一分配的内存在hadoop-env.sh中设置,参数为HADOOP_HEAPSIZE,默认为1000M。

大部分情况下,这个统一设置的值可能并不适合。例如对于namenode节点,1000M的内存只能存储几百万个文件的数据块的引用。如果我想单独设置namenode的内存,可以通过HADOOP_NAMENODE_OPTS来设置。

同样的,可以通过HADOOP_SECONDARYNAMENODE_OPTS来设置secondrynamenode的内存,使得它与namenode保持一致。

当然,还有HADOOP_DATANODE_OPTS、HADOOP_BALANCER_OPTS、HADOOP_JOBTRACKER_OPTS变量供你使用。

此外,tasktracker启动独立的子JVM以运行map和reduce任务,分配给每个子JVM的内存量由mapred.child.java.opts属性(mapred-site.xml)控制,默认值为200M。

2. 最大map任务数

一个tasktracker能够同时运行最大map任务数,由mapred.tasktracker.map.tasks.maximum属性(mapred-site.xml)控制,默认为2。

3. 最大reduce任务数

一个tasktracker能够同时运行最大reduce任务数,由mapred.tasktracker.reduce.tasks.maximum属(mapred-site.xml)性控制,默认为2。

4. 小总结:计算节点的内存占用量。

默认情况下,一个同时运行了namenode,secondarynamenode和jobtracker的主节点,各自使用1000M内存,所以总计使用3000M。

默认情况下,一个从节点运行了如下守护进程:

  • 1个datanode:默认占用1000M内存。
  • 1个tasktracker:默认占用1000M内存。
  • 最多2个map任务:2*200M=400M。
  • 最多2个reduce任务:2*200M=400M。

即默认情况下,一个从节点需要使用2800M内存量。

在一个tasktracker上能够同时运行的任务数取决于这台机器上有多少个处理器。由于mapreduce作业通常是I/O-bound,因此将任务数设定为超出处理器数也有一定道理,可以获得更好的利用率。经验法则是任务总数(map任务数与reduce任务数之和)与处理器的比值在1和2之间。

例如,假设一台8个处理器的工作节点,每个处理器上运行2个进程,则可以将最大map任务数和最大reduce任务数分别设置成7(因为还有datanode和tasktracker进程,所以不能设置为8),各个JVM子任务可用内存设置为400M,则总内存开销=1000M(datanode)+1000M(tasktracker)+7*400M(map)+7*400M(reduce)=7600M

这样配置是否合理,还需要考虑是否给这台机器上的其他进程预留了足够内存,否则可能导致各进程在系统中不断切换,导致性能恶化。可以使用一些工具来监控集群的内存使用情况来进行优化,例如Ganglia工具。

hadoop也可以设置mapreduce操作所能使用的最大内存量,这是分别针对各项作业进行设置的。(详见《hadoop权威指南》117页的“shuffle和排序”小节)

分享到:
评论

相关推荐

    Apache Hadoop---Spark.docx

    Spark是一种与Hadoop相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使Spark在某些工作负载方面表现得更加优越,换句话说,Spark启用了内存分布数据集,除了能够提供交互式查询外,它...

    「大数据干货」基于Hadoop的大数据平台实施——整体架构设计.pdf

    基础设施层: 基础设施层由2部分组成:Zookeeper集群和Hadoop集群。它为基础平台层提供基础设施服务,⽐如命名服务、分布式⽂件系统、 MapReduce等。 (1)ZooKeeper集群⽤于命名映射,做为Hadoop集群的命名服务器,...

    Hadoop实战中文版.PDF

    91.6 用Hadoop统计单词——运行第一个程序 111.7 Hadoop历史 151.8 小结 161.9 资源 16第2章 初识Hadoop 172.1 Hadoop的构造模块 172.1.1 NameNode 172.1.2 DataNode 182.1.3 Secondary NameNode ...

    minicluster-mr2:用于 MR2 的 Hadoop MiniCluster

    minicluster-mr2 用于 MR2 的 Hadoop MiniCluster 该项目提供了使用 Hadoop MiniCluster 和 MR2 为 Hadoop 作业创建测试用例的完整示例。... 这会启动一个内存驻留集群,并允许对所有内容进行测试——这里没有模拟。

    singular:Apache YARN 之上的高级库

    例如您希望的内存和内核数量。 这个例子说明了一切—— 运行:hadoop jar single-1.0-SNAPSHOT.jar com.singular.example.random.RandomNumberJob 笔记: 目前它仅在非安全纱线集群中运行。未集成身份验证。 ...

    spark-3.5.1-bin-hadoop3.tgz

    Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询...

    spark-3.4.3-bin-hadoop3.tgz

    Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询...

    HDFS核心技术详解

    其中最底部就是HDFS,它被用来存储Hadoop集群中所有存储节点上的文件。hadoop的核心子项目——HDFS(分布式文件系统),下面将从HDFS的背景、基本概念 开始,步步深入了解HDFS的设计目标、HDFS的基本结构以及HDFS的...

    Spark大型集群上的快速和通用数据处理架构

    Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询...

    高可用性的HDFS:Hadoop分布式文件系统深度实践

    2.2 内存元数据结构 2.2.1 INode 2.2.2 Block 2.2.3 BlockInfo和DatanodeDescriptor 2.2.4 小结 2.2.5 代码分析——元数据结构 2.3 磁盘元数据文件 2.4 Format情景分析 2.5 元数据应用场景分析 第3章 Hadoop的元数据...

    Spark亚太研究院-Spark实战高手之路

    Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询...

    Spark原著中文版

    但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。 Spark 是一种与 Hadoop 相似的开源集群计

    大数据测试——精选推荐.pdf

    在性能测试前需要先初始化⼤数据集群环境 2. 梳理和设计⼤数据性能测试场景 3. 准备⼤数据性能测试脚本 4. 执⾏并分析测试结果(如果指标异常,则调优相应的组件并重新测试) 5. 优化配置 性能测试基础准备 性能...

    基于云计算的海量宽带业务运营数据分析系统

    就如同Java程序员可以不考虑内存泄露一样,MapReduce运行时系统会解决输入数据的并行分发,跨越机器集群的程序执行调度,处理服务器的失效,并且管理机器之间的通信请求。MapReduce计算框架允许程序员可以不需要并行...

    2013中国数据大会ppt(2)

    SQLAUTO——数据库SQL变更自动化管理.pdf Developer and DBA Guide to Whats New in MySQL 5.6.pdf 深入解析MySQL InnoDB引擎.pdf 秒杀场景下MySQL的低效–原因和改进.pdf InnoDB架构分析以及TNT引擎的优势分析.pdf ...

    spark 2.0 详解

    Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询...

    基于JavaEE的快速开发框架

    Tephra取火山灰之意,因为当初好像刚好有个火山喷发了,而且觉得火山灰是一个毁灭者,但同时又是一个创造者。他毁灭了旧的体系,然后开始用他自己的养分创造新的...hadoop——Hadoop访问支持。 *test——单元测试支持。

    Spark官方中文文档

    Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询...

Global site tag (gtag.js) - Google Analytics