Hadoop仿真器的演进

转载注明出处 [过把火]:https://www.jianshu.com/p/b9ba99a4daad

可能全网搜到Hadoop最多的就是安装配置教程或是使用方法(当然我也写过类似博文),今天主要围绕Hadoop的仿真器进行一次全面的总结。[参考高性能计算发展与应用]

Simulator?

Hadoop仿真器是干什么用的?
回归到 “仿真器” 一词的本质:

百度百科:仿真器(emulator)以某一系统复现另一系统的功能。与计算机模拟系统(Computer Simulation)的区别在于,仿真器致力于模仿系统的外在表现、行为,而不是模拟系统的抽象模型。

维基百科:模拟器(Emulator),也有译作仿真器,是指主要通过硬件或软件使得一台计算机系统(称作主host)在行为上类似于另一台计算机系统(称作客户guest)。模拟器一般允许在主系统上运行给客户系统设计的软件或者外设。模拟**(emulation)是指在一台电子设备或一个计算机程序能够模拟(emulateor imitate)另外一台设备或程序。例如:很多制造商生产的打印机模拟惠普LaserJet打印机,使得大量设计给惠普打印机的软件也能在这些品牌打印机上使用;在PC上运行虚拟机执行其他操作系统或者电视游戏;虚拟光驱;一些基于FPGA的硬件模拟器。

显然维基百科是解释的要清楚些,那么以Hadoop仿真为例,其含义就是利用某种数学或是统计方法来对整个Hadoop-MapReduce的流程进行模拟,并且能够以输出某种指标为目的来走完整个模拟流程。例如当下最广泛的就是以仿真时间,或者用个diaodiao的词,那就是预测

仿真难点

对于MapReduce流程的仿真理论上不算困难,因为MR的执行原理很固定,并且每一阶段最关键的数据流的改变方式也是固定的,无非加上一些Hadoop的参数影响,但是总归是有章可循。
真正的难点在于,需要考虑真实场景下的资源竞争或是其他资源因素导致的Task延时。我们都知道并行计算的总时间由最后一个Task的执行时间来决定,因此,实际场景下的Task并行并不会跟理想情况下一模一样。那么仿真器如何去完成这些延时的仿真呢?目前大多是基于统计规律的仿真,这样的统计规律一定程上依赖于你获取样本的集群配置,没有哪家公司愿意投入成千上万的集群去做这样的事情,所以,目前的研究成果并不能完全适用于大规模集群。

Hadoop1仿真器

1 Mumak

Mumak是Apache官方原生的Hadoop时间模拟器。它为Hadoop MapReduce 调度器高负载运行的情况下,建立一个连续的事件模拟环境,Mumak由下面这些组件组成:客户端模拟器、Job Tracker模拟器,Task Tracker模拟器和模拟器引擎。模拟器引擎在实际运行中维持一个事件队列,管理所有的事件和内部组件。当系统程序运行
事件发生后,会触发执行相应的处理程序。HeartBeat Event是多种多样的(心跳事件是指Task Tracker发送给Job Tracker的一种特殊事件),TaskCompletion Event(任务完成事件表征了发送给Task Tracker的Map 任务或者Reduce任务的成功或失败),JobSubmission Event(作业提交事件是指Job Client向Job Tracker提交了一份作业)。Job Tracker模拟器接收所有的Task Tracker发送来的心跳信息,它跟踪当前作业进度,将调度器的调度信息进行合并,然后做出作业调度的决策。下图展示了Mumak的基本架构。



目前,Mumak只能根据最近完成的任务日志信息来进行模拟。然而,在模拟过程中,一些系统设置,比如说,节点数量、每个节点的处理能力,这些是不能被改变的。它只能在当前设置下进行调试和模拟。所以,它可以模拟的环境非常有限。总而言之,Mumak不支持不同数量的节点,不能模拟网络负载,磁盘负载和shuffle阶段。

2 MRPerf

MRPerf在有些论文中也叫他MRPrf,反正pref就是代表performance的意思。
MRPerf的目标是在MapReduce子阶段层提供一个细粒度的模拟。MRPerf有两个简单的假设:第一,一个节点的资源在同时进行的任务之间是公平共享的;第二,它不能模拟操作系统层指令的异步预取。
MRPerf采用包级别的模拟,它的主要工作是给map和reduce任务建模,管理它们相关的输入、输出数据,做出调度决策,模拟磁盘和CPU负载。为了使用模拟器,使用者必须提供四个文件:节点说明文件、集群拓扑文件、数据分布文件和任务描述文件。得到的输出信息是各个层的执行跟踪信息,它提供了任务执行时间、传输数据量和任务每个阶段所用时间的一个排序等等。MRPerf的基本结构如下图所示。



目前,MRPerf仅限于模拟每个节点只有单独的存储设备,并且输入数据只有一个副本的情况。它不能模拟推测执行,推测执行是目前执行效果很好一种优化方法。模拟器不支持一些高级异常,比如:一个节点工作得比其它节点慢或者是任务的部分失效等问题。

3 SimMR

SimMR,它可以为Job Tracker的决策和任务槽在多个并发任务间的分配进行建模。
SimMR工作过程如下。首先,它通过存储在Job Tracker上每个作业的末尾的处理计数器和日志来产生作业跟踪信息,然后把他们存储在跟踪数据库中,跟踪信息可以反映出在特定集群中MapReduce任务的工作负载。然后模拟器引擎从数据库中读取作业跟踪信息,并在模拟周期中管理所有的具体事件,运行反馈事件处理器。SimMR是在任务一级来模拟作业,不像MRPerf那样模拟Task Tracker的细节。
SimMR的重点是调度策略。它可以使用不同的调度和资源分配策略,但是, 就像
Mumak,它的使用受限于已完成任务的日志信息。同样,给定一个任务,在不同的工作负载的情况下,SimMR的工作效果还是不足够好。此外,它不支持网络拓扑。

4 MRSim

MRS im是一个基于特定事件的模拟器, 它旨在Hadoop环境中模拟数据挖掘算法。它使用SimJava来精确的模拟在集群中不同实体间的交互。MRSim使用GridSim作为基础工具来模拟网络拓扑和网络负载,但是它只在本地机架上模拟数据分片的位置和各个数据分片的备份,这限制了它的使用。在开始模拟之前,MRSim需要两个文件:集群拓扑文件和作业说明文件。前者通过键值对记录了拓扑信息,后者记录了一些MapReduce任务的参数。例如:map任务槽数,reduce任务槽数等。所以,它可以让用户设计最好的配置来在具体的算法上获得最佳性能。

5 SimMapReduce

这个成果还是我的小老板留学期间的成果,做的也是非常好的。
SimMapReduce被设计成为一个方便被其他包所使用的工具箱,它考虑了数据本地性以及map与reduce之间的一些依赖关系,例如Hash决定的shuffle阶段的数据copy路径。但是其唯一不足是忽略对网络性能的仿真。

Hadoop2仿真器

YARNSim

Hadoop2的重大革命在于资源调度组建被YARN所取代,至此,Hadoop成为真正意义上的大数据存储与处理的利器。
对于YARN的仿真,目前最为出名的就是YARNSim,这是伊利诺伊理工大学孙贤和老师团队的成果。孙贤和教授是IEEE的院士,孙教授一生致力于计算性能的提升及优化,博士论文提出的CPU三级缓存颠覆了计算机界,暑期有幸在清华跟着孙老师完成暑期学校的学习。
YARN模式下的调度变得更为复杂,使得仿真难度加大。YARNSim是Task级别的仿真,其最大特点是能够灵活修改参数以匹配各个阶段,但是对于Shuffle阶段的网络传输部分,依旧存在缺陷。

目前为止,成果发表在较为顶级的会议及期刊的模型也就上述几个,且对于Hadoop2的仿真寥寥无几,我个人猜测是Spark的出现让人们的目光出现转移。已有的成果中,基本都缺乏对网络传输的仿真,原因也很简单,实验所用的集群过小,即使存在交换机,但其负载并没有很显著,因此该部分得不到有效的观测。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,923评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,154评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,775评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,960评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,976评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,972评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,893评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,709评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,159评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,400评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,552评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,265评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,876评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,528评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,701评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,552评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,451评论 2 352