`
samuschen
  • 浏览: 398280 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

hadoop中每个节点map和reduce个数的设置调优

阅读更多

map red.tasktracker.map.tasks.maximum 这个是一个task tracker中可同时执行的map的最大个数,默认值为2,看《pro hadoop》:it is common to set this value to the effective number of CPUs on the node

 

把Job分割成map和reduce

合理地选择Job中 Tasks数的大小能显著的改善Hadoop执行的性能。增加task的个数会增加系统框架的开销,但同时也会增强负载均衡并降低任务失败的开销。一个极 端是1个map、1个reduce的情况,这样没有任务并行。另一个极端是1,000,000个map、1,000,000个reduce的情况,会由于 框架的开销过大而使得系统资源耗尽。

Map任务的数量

Map的数量经常 是由输入数 据中的DFS块的数量来决定的。这还经常会导致用户通过调整DFS块大小来调整map的数量。正确的map任务的并行度似乎应该是10-100 maps/节点,尽管我们对于处理cpu运算量小的任务曾经把这个数字调正到300maps每节点。Task的初始化会花费一些时间,因此最好控制每个 map任务的执行超过一分钟。

实际上控制map任务的个数是很 精妙的。mapred.map.tasks参数对于InputFormat设 定map执行的个数来说仅仅是一个提示。InputFormat的 行为应该把输入数据总的字节值分割成合适数量的片段。但是默认的情况是DFS的块大小会成为对输入数据分割片段大小的上界。一个分割大小的下界可以通过一 个mapred.min.split.size参数来设置。因此,如果你有一个大小是10TB的输入数据,并设置DFS块大小为 128M,你必须设置至少82K个map任务,除非你设置的mapred.map.tasks参数比这个数还要大。最终InputFormat 决定了map任务的个数。

Map任务的个数也能通过使用JobConf 的 conf.setNumMapTasks(int num)方法来手动地设置。这个方法能够用来增加map任务的个数,但是不能设定任务的个数小于Hadoop系统通过分割输入数据得到的值。

Reduce任务的个数

正 确的reduce任务的 个数应该是0.95或者1.75 ×(节点数 ×mapred.tasktracker.tasks.maximum参数值)。如果任务数是节点个数的0.95倍,那么所有的reduce任务能够在 map任务的输出传输结束后同时开始运行。如果任务数是节点个数的1.75倍,那么高速的节点会在完成他们第一批reduce任务计算之后开始计算第二批 reduce任务,这样的情况更有利于负载均衡。

目前reduce任务的数量 由于输出文件缓冲区大小(io.buffer.size × 2 ×reduce任务个数 << 堆大小),被限制在大约1000个左右。直到能够指定一个固定的上限后,这个问题最终会被解决。

Reduce任务的数量同时也控制着输出目录下输出文件的数量,但是通常情况下这并不重要,因为下一阶段的 map/reduce任务会把他们分割成更加小的片段。

Reduce任务也能够与 map任务一样,通过设定JobConf 的conf.setNumReduceTasks(int num)方法来增加任务个数。

分享到:
评论

相关推荐

    大数据与云计算技术 Hadoop概论和快速入门 共40页.ppt

    Hadoop, Apache开源的分布式框架。源自Google GFS,BigTable,MapReduce 论文。 == HDFS == HDFS (Hadoop Distributed File System),Hadoop 分布式文件系统。...TaskTracker,启动和管理Map和Reduce子任务的节点。

    hadoop map reduce 案例

    所以需要通过 `shuffling` 将相同 `key` 值的数据分发到同一个节点上去合并,这样才能统计出最终的结果,此时得到 `K2` 为每一个单词,`List(V2)` 为可迭代集合,`V2` 就是 Mapping 中的 V2; 5. Reducing : 这里的...

    hadoop 1.2.1 api 最新chm 伪中文版

    Map/Reduce框架由一个单独的master JobTracker 和每个集群节点一个slave TaskTracker共同组成。master负责调度构成一个作业的所有任务,这些任务分布在不同的slave上,master监控它们的执行,重新执行已经失败的任务...

    EasyHadoop实战手册

    1.Hadoop,Apache开源的分布式框架。2.HDFS,hadoop的分布式文件系统3....6.TaskTracker,hadoop调度程序,负责Map,Reduce 任务的具体启动和执行。7.Fuse,多文件系统内核程序,可将不同的文件系统mount成linux可读写模式

    Hadoop权威指南 第二版(中文版)

     map阶段和reduce阶段  横向扩展  合并函数  运行一个分布式的MapReduce作业  Hadoop的Streaming  Ruby版本  Python版本  Hadoop Pipes  编译运行 第3章 Hadoop分布式文件系统  HDFS的设计  HDFS的概念 ...

    Hadoop权威指南(中文版)2015上传.rar

    map阶段和reduce阶段 横向扩展 合并函数 运行一个分布式的MapReduce作业 Hadoop的Streaming Ruby版本 Python版本 Hadoop Pipes 编译运行 第3章 Hadoop分布式文件系统 HDFS的设计 HDFS的概念 数据块 namenode和...

    Apress - Pro Hadoop

    这两个函数由程序员提供给系统,下层设施把Map和Reduce操作分布在集群上运行,并把结果存储在GFS上。  3、BigTable。一个大型的分布式数据库,这个数据库不是关系式的数据库。像它的名字一样,就是一个巨大的表格...

    大数据云计算技术 优酷网Hadoop及Mapreduce入门教程(共35页).pptx

    Hadoop Map-reduce Job Scheduler Resources Hadoop, Why? 数据太多了,需要能存储、快速分析Pb级数据集的系统 单机的存储、IO、内存、CPU有限,需要可扩展的集群 使用门槛低,数据分析是个庞杂的问题,MPI太复杂 ...

    map_reduce_hadoop:使用HadoopMapReduce

    为了实现前者,还使用了Apache Hadoop和Map Reduce技术。 此外,相同的问题已解决了许多次,其中Hadoop集群的节点数与其他执行相比有所不同。 记录下每次执行所需的时间,并将其打印到图表中进行比较以及各种分析。...

    大数据云计算技术 Hadoop应用浅析(共16页).pptx

    一:IZP Hadoop集群现状 集群规模 共大、小 2个集群:数据中心和实验室集群 数据中心: 1台NameNode, 1台SecondNameNode, 1台JobTracker,100来台DataNode 共...槽位分配:每台机器十多个Map槽位,四至六个Reduce槽位

    hadoop-2.6.5.zip

    Hadoop得以在大数据处理应用中广泛应用得益于其自身在数据提取、变形和加载...Hadoop的MapReduce功能实现了将单个任务打碎,并将碎片任务(Map)发送到多个节点上,之后再以单个数据集的形式加载(Reduce)到数据仓库里。

    KMeans:KMeans 算法的 Map Reduce 实现。 程序在单多节点Hadoop集群上运行,并在亚马逊Elastic Map Reduce多节点集群上进行了测试

    K均值 KMeans 算法的 Map Reduce 实现。 该程序在单/多节点 Hadoop 集群上运行,并在 AMazon Elastic Map Reduce 多节点集群上进行了测试。

    云计算与大数据技术-Hadoop分布式大数据系统.ppt

    6.4 实现Map/Reduce的C语言实例 6.5 建立Hadoop开发环境 6.5.1 相关准备工作 6.5.2 JDK的安装配置 6.5.3 下载、解压Hadoop, 配置Hadoop环境变量 6.5.4 修改Hadoop配置文件 6.5.5 将配置好的Hadoop文件复制到...

    【大数据】批处理与Hadoop.pdf

    批处理 × Hadoop Hadoop的批处理功能来⾃MapReduce引擎,MapReduce的处理技术符合使⽤键值对的map、shuffle、reduce算法要求。基本处理过 程包括: 1. 从HDFS⽂件系统读取数据集 2. 将数据集拆分成⼩块并分配给...

    论文研究-基于数据局部性的推测式Hadoop任务调度算法研究.pdf

    该算法通过计算节点上Map和Reduce任务时长比例,结合不同节点上数据的局部特性,采用了比现有算法更精确的任务进度探测方式找出快慢节点,在快节点上启动剩余时间最长的落后任务的备份任务,用移动计算代替移动数据...

    Hadoop权威指南(第2版).

    下面是此集群的相关数据: · 4000 节点 · 2 x quad core Xeons@2.5ghz per 节点 · 4 x 1TB SATA Disk per 节点 · 8G RAM per 节点 · 千兆带宽 per 节点 · 每机架有40个节点 · 每个机架有4千兆以太网上行链路 ...

    RF_map_reduce_R:R中具有mapReduce函数的hadoop流中的半可扩展随机森林选择

    R中具有mapReduce函数的hadoop流中的半可扩展随机森林选择随机森林是由 Leo Breiman 和 Adele Cutler 开发的机器学习模型和特征选择。 按照他们网站上的描述( ): “我们假设用户知道单个分类树的构造。随机森林...

    IMDBMovieBigData:一个应用Hadoop map-reduce从IMDB电影数据中导出一些统计数据的大数据项目

    大数据分析 – IMDb 数据集使用 Map-Reduce 和 Hadoop 框架,通过在六节点集群上运行链式 map-reduce 作业,从超过一百万部电影的 IMDB 数据集中导出前 10 部电影、某一类型电影的数量等统计数据##安装这个库有...

    Hadoop-MapReduce:一个使用Hadoop分析大数据的应用程序

    Java中的Map Reduce程序通过读取S3存储桶中的csv数据来计算平均每月和每年的温度以及季节性温度。 在HDFS的单节点和多节点群集上都实现了Mapper和reducer。 使用不同数量的映射器和化简器进行时间和性能分析。 使用...

    论文研究-基于和声算法异构Hadoop集群资源分配优化.pdf

    异构Map-Reduce环境中资源分配策略直接影响其响应时间,如何利用有效的策略将计算任务分配到计算资源是亟待解决的问题。利用和声搜索算法对异构Hadoop集群中的计算资源分配问题进行优化。对问题进行建模时考虑了异构...

Global site tag (gtag.js) - Google Analytics