`

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和排序”小节)

分享到:
评论

相关推荐

    hadoop集群配置之————flume安装配置(详细版)

    2. 内存:足够的内存,用于源(source)、通道(channel)或接收器(sink)使用的配置。 3. 磁盘空间:足够的磁盘空间用于通道或接收器使用的配置。 4. 目录权限:代理程序使用的目录的读/写权限。 Flume的架构图显示了其...

    CentOS下Hadoop-0.20.2集群配置文档

    在构建Hadoop集群时,选择CentOS作为操作系统是常见的选择,因为其稳定性和与开源软件的兼容性。本文将详细讲解如何在CentOS系统中配置一个由一个Namenode和两个Datanodes组成的Hadoop-0.20.2集群。 首先,我们需要...

    hadoop-native原始包-压缩-native-2.7.2-ct7.x.tgz

    此外,还需要测试Hadoop集群的功能,确保所有节点都能正确识别并加载这些原生库,以验证安装成功。 总的来说,"hadoop-native原始包-压缩-native-2.7.2-ct7.x.tgz" 是Hadoop的一个关键组件,用于提升其在特定环境下...

    hadoop-3.2.0.tar.gz

    配置文件则帮助我们定制和调整Hadoop集群;文档提供了详细的使用指南和技术参考;示例程序则有助于快速上手Hadoop编程。总的来说,Hadoop 3.2.0是一个强大且成熟的分布式计算平台,为大数据处理提供了高效、可靠的...

    hadoop-2.6.5【已配好windows版本,请按readme文件配置环境变量、放置dll】

    5. **格式化NameNode**:在首次启动Hadoop集群时,你需要对NameNode进行格式化。这一步会创建HDFS的元数据存储。使用`hadoop fs -format`命令进行操作,但要注意,一旦格式化,之前的数据将被清除。 6. **启动...

    native(hadoop-2.5.0-cdh5.3.2

    2. **libhadoop.so.1.0.0** 和 **libhadoop.so**:这是Hadoop的核心库,提供了与Hadoop集群通信的接口,包括文件系统操作、网络通信等。这些动态库是Java层与本地操作系统的桥梁。 3. **libhdfs.so.0.0.0**:这是...

    hadoop-windows本地库版

    "本地库版"可能解决了Windows平台特有的兼容问题,如路径处理、文件系统交互等,使得用户在Windows上可以更顺利地运行和管理Hadoop集群。这个版本可能包含了预编译的二进制文件、配置示例以及相关的安装和使用指南。...

    细细品味hadoop------

    除了HDFS和MapReduce,Hadoop生态还包括许多其他组件,如YARN(Yet Another Resource Negotiator),它是Hadoop的资源管理系统,负责调度集群中的计算资源。YARN取代了原本MapReduce中的JobTracker,提供更灵活的...

    hadoop-common

    文件`hadoop-common-2.2.0-bin-master.zip`和`hadoop-common-2.7.1-bin-master.zip`是这两个版本的二进制发行版,包含了所有必要的库文件和可执行程序,供Windows用户在本地环境搭建和运行Hadoop集群。解压这些文件...

    spark-3.2.0-bin-hadoop3-without-hive

    《Spark 3.2.0 与 Hadoop 3 的集成——无 Hive 版本解析》 Spark,作为大数据处理领域的重要工具,以其高效的内存计算和分布式数据处理能力备受青睐。Spark 3.2.0 是一个重要的版本更新,它在性能、稳定性和功能上...

    spark-2.4.0-bin-without-hadoop.tgz

    `spark-2.4.0-bin-without-hadoop.tgz` 文件是一个压缩包,其中包含了 Spark 2.4.0 版本的二进制文件,但不包括 Hadoop 相关依赖,这意味着你需要自行配置 Hadoop 集群环境或者连接到已有的 Hadoop 集群。...

    hadoop集群搭建——JDK的安装

    ### hadoop集群搭建——JDK的安装 #### 实验背景及目标 在部署Hadoop集群的过程中,第一步往往是安装Java Development Kit (JDK),因为Hadoop是基于Java开发的,因此在集群上的每个节点都需要安装JDK。本实验旨在...

    spark-3.0.0-bin-hadoop3.2

    在本场景中,我们讨论的是Spark的3.0.0版本,与Hadoop3.2相结合的二进制发行版——"spark-3.0.0-bin-hadoop3.2"。这个压缩包是为了在Windows操作系统下运行Spark而设计的,因此标签明确指出它是适用于Windows平台的...

    apache hadoop v2.7.0官方最新版

    YARN允许在Hadoop集群中运行多种计算框架,如Spark、Tez等,进一步增强了Hadoop的灵活性。 文件名`hadoop-2.7.0-src.tar.gz.asc`是一个GPG签名文件,用于验证下载的源代码包的完整性和真实性,确保未被篡改。`...

    hadoop2.7.1 hadoop.dll和winutils.exe window7 64bit 下载包

    尤其值得注意的是,winutils.exe还需要与Hadoop的HDFS配合,为Hadoop集群提供本地文件系统操作的支持。 在安装和配置Hadoop 2.7.1时,用户需要确保以下几点: 1. **Java环境**:Hadoop依赖Java运行时环境(JRE),...

    spark-3.5.1-bin-hadoop3.tgz

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

    hadoop2.7.7src包

    6. **性能优化和稳定性**:Hadoop 2.7.7相对于早期版本,进行了很多性能优化和稳定性改进,包括更高效的磁盘I/O、内存管理和网络通信,以及错误检测和恢复机制的增强。 通过深入学习和分析Hadoop 2.7.7的源代码,...

    Hadoop集群部署及测试实验(三).docx

    **实验描述:** 本次实验旨在通过JAVA API实现MapReduce的经典案例——倒排索引,进一步熟悉Hadoop集群的部署与测试流程。 **实验目的与要求:** - **学习JAVA API调用Hadoop接口:** 掌握如何利用JAVA编程语言编写...

    Hadoop高级编程- 构建与实现大数据解决方案

    9. **Hadoop集群的部署和管理**:掌握在单机、伪分布式和完全分布式模式下安装和配置Hadoop集群,以及使用Ambari等工具进行集群管理。 10. **案例研究**:通过实际的大数据解决方案案例,如日志分析、推荐系统、...

    win10编译过的hadoo2.6.4包括hadoop.dll和winutils.exe

    通过hadoop.dll和winutils.exe,用户可以在Win10系统上搭建和运行Hadoop集群,进行分布式计算和存储任务,享受Hadoop带来的强大功能。同时,这个版本的Hadoop也体现了社区对跨平台兼容性的持续努力,使得大数据技术...

Global site tag (gtag.js) - Google Analytics