hadoop 2.2.0 关于map和reduce的个数的设置
关于hadoop中的map过程,我的理解是每一个map系统会开启一个JVM进程来处理,map之间相互并行,map函数内串行。这样的想法是否正确?
由于想在hadoop集群上算一个初始输入数据不多,但是计算很复杂的程序,希望通过mapreduce来达到并行计算的目的。可以通过job.setNumReduceTasks(0);语句设置reduce个数为0,只使用map来计算。但是设置map的个数时遇到了问题:新的API中job没有类似setNumMapTasks()这样的方法; 在运行时加入参数-D mapreduce.map.tasks=2这样的参数也无效。
查过好多资料,好像是说map的个数取决于block_size、total_size等参数。但是都说的是1.x版本的设置,hadoop 2.2.0上并没有找到mapred.map.tasks、mapred.min.split.size等对应的设置方法。
由于我的输入文件只有一个文件,而且不算是“大数据”,只是单纯想在hadoop上实现并行,所以我希望能够设置一个最少的map数目,以便能在各个计算节点上并行。请问我应该如何设置?
事隔10天后无人回答,再次自问自答(— . —!)。最近看到一本书,上面介绍自定义InputFormat来控制map个数以及存储位置。稍微看了下FileInputFormat的接口,发现居然有setMaxInputSplitSize()这个静态方法。(自己以前怎么没发现!! 也怪自己懒,不愿意去找) 在run方法中加了这么一句FileInputFormat.setMaxInputSplitSize(job, 1048576), 再次运行貌似有效,程序生成了6个map来运行。
但感到没法解释的有两点:
1.此处设置的值为1048576(1M),我的输入文件有20.95MB,如果最大份片大小为1M的话应该有20多个map。其中必然有更细致的判断,还得研究以下相应处理的代码才能解决;
2. 6个map全在同一个节点上运行,没有分到不同节点上;
我的环境为hadoop 2.2.0,我曾经试过修改dfs.blocksize等配置参数,但是似乎都没有生效。不知道为什么会出现配置参数无效的情况。
补充:刚才了解到最终的分片大小splitSize受到maxsize、minsize以及blocksize的影响。设置FileInputFormat.setMinInputSplitSize(job, 1)后,map数果然达到了20。
hadoop 2.2.0 关于map和reduce的个数的设置的更多相关文章
- 如何确定 Hadoop map和reduce的个数--map和reduce数量之间的关系是什么?
1.map和reduce的数量过多会导致什么情况?2.Reduce可以通过什么设置来增加任务个数?3.一个task的map数量由谁来决定?4.一个task的reduce数量由谁来决定? 一般情况下,在 ...
- 如何确定Hadoop中map和reduce的个数--map和reduce数量之间的关系是什么?
一般情况下,在输入源是文件的时候,一个task的map数量由splitSize来决定的,那么splitSize是由以下几个来决定的 goalSize = totalSize / mapred.map. ...
- (转) hadoop 一个Job多个MAP与REDUCE的执行
http://blog.csdn.net/chaoping315/article/details/6221440 在hadoop 中一个Job中可以按顺序运行多个mapper对数据进行前期的处理,再进 ...
- hadoop中map和reduce的数量设置问题
转载http://my.oschina.net/Chanthon/blog/150500 map和reduce是hadoop的核心功能,hadoop正是通过多个map和reduce的并行运行来实现任务 ...
- Hadoop 中关于 map,reduce 数量设置
map和reduce是hadoop的核心功能,hadoop正是通过多个map和reduce的并行运行来实现任务的分布式并行计算,从这个观点来看,如果将map和reduce的数量设置为1,那么用户的任务 ...
- Hadoop 系统配置 map 100% reduce 0%
之前在本地配置了hadoop伪分布模式,hdfs用起来没问题,mapreduce的单机模式也没问题. 今天写了个程序,想在伪分布式上跑一下mapreduce,结果出现 map 100% reduce ...
- 【hadoop】如何向map和reduce脚本传递参数,加载文件和目录
本文主要讲解三个问题: 1 使用Java编写MapReduce程序时,如何向map.reduce函数传递参数. 2 使用Streaming编写MapReduce程序(C/C++ ...
- Hadoop map和reduce数量估算
Hadoop在运行一个mapreduce job之前,需要估算这个job的maptask数和reducetask数.首先分析一下job的maptask数,当一个job提交时,jobclient首先分析 ...
- Hadoop :map+shuffle+reduce和YARN笔记分享
今天做了一个hadoop分享,总结下来,包括mapreduce,及shuffle深度讲解,还有YARN框架的详细说明等. v\:* {behavior:url(#default#VML);} o\:* ...
随机推荐
- 【Zookeeper】源码分析之持久化--FileTxnLog
一.前言 前一篇已经分析了序列化,这篇接着分析Zookeeper的持久化过程源码,持久化对于数据的存储至关重要,下面进行详细分析. 二.持久化总体框架 持久化的类主要在包org.apache.zook ...
- Java开发工具箱-JDK的安装与配置
一.JDK.JRE 术语名 缩写 解释 Java Development Kit JDK Java程序员用的工具包 Java Runtime Enviroment JRE Java程序的运行环境 二. ...
- Linux系统下搭建DNS服务器——DNS原理总结
2017-01-07 整理 DNS原理 域名到IP地址的解析过程 IP地址到域名的反向域名解析过程 抓包分析DNS报文和具体解析过程 DNS服务器搭建和配置 这个东东也是今年博主参见校招的时候被很多公 ...
- 700多个PHP版本随时切换,PHPWAMP共生模式与多档位综合教程。
最近有学生向我咨询如何同时建立多个不同PHP版本站点,并自定义任意版本,软件是否可以多开,PHPWAMP如何设置才能与其他的环境同时使用等问题,本文将一一解决. 简单介绍一下PHPWAMP 你们应该会 ...
- 算法笔记_014:合并排序(Java)
1 问题描述 给定一组数据,使用合并排序得到这组数据的非降序排列. 2 解决方案 2.1 合并排序原理简介 引用自百度百科: 合并排序是建立在归并操作上的一种有效的排序算法.该算法是采用分治法(Div ...
- 一键安装Redmine
群英汇·项目管理系统:http://www.ossxp.com/HelpCenter/00040_Redmine 其中包含中文说明及管理手册 一键安装下载:http://bitnami.org/sta ...
- 【转】关于JVM CPU资源占用过高的问题排查
http://my.oschina.net/shipley/blog/520062 一.背景: 先执行一个java程序里面开了两个线程分别都在while循环做打印操作. ? 1 # java -cp ...
- 用js使得输入框input只能输入数字
JS判断只能是数字和小数点1.文本框只能输入数字代码(小数点也不能输入)<input onkeyup="this.value=this.value.replace(/\D/g, ...
- windows环境自动获取SVN仓库当前版本
如果我们的软件能够自动引入SVN修订号(仓库版本号),那么我们开发软件的时候就能快速定位bug出自哪个SVN版本.那么如何让软件直接自动生成并引用SVN版本号呢? 我们可以使用SVN info命令,在 ...
- 逃出克隆岛 (codevs 2059)
较普通的走迷宫的题 传送门 :codevs 2059 逃出克隆岛 思路 :BFS 即可 PS :传送门 不必重复使用 #include <iostream> #include < ...