MapReduce缺陷

作为Hadoop的一个核心,MapReduce一直都是人们讨论的热点.而且,各类书籍上,往往也只是介绍了MapReduce的优点,其执行过程.对其缺陷,却并没有一个清晰的说明.包括你在百度,在Google上面用中文搜索"MapReduce"的局限性,都是得不到有价值的结果的.倒是有很多论文,专门讨论这个问题.

作为一项技术,缺陷肯定是有的.这不,今天在尝试比较深入的使用它的时候,就碰到了几个坑.之前只是尝试Tutorial中的WordCount那种例子,一直也没有认识到它的局限性.

我这里讨论的是,我们编程人员在直接使用MapReduce这种框架来编程的情况下,MapReduce的局限性.Hive,Pig等同样都是基于MapReduce,不也很方便吗?

缺陷

  • 如果需要进行复杂的计算,则需要流式的串行计算.MapReduce在运行的时候,是并行计算的,比如Map阶段和Reduce阶段.然而,MapReduce本身的这两个阶段,大多数情况下,是完成不了一次稍微复杂一些的运算的.比如说,我有一个日志文件,其中有用户的IP,访问的时间,以及访问的URL.如果我们想要计算用户的访问次数,并按值的顺序或者倒序来进行排列.是很费事的.我们需要现在一个MapReduce的Job中,统计出来用户的访问次数.在另一个MapReduce的Job中,将其按值的顺序排列.所以后面的那个MapReduce的Job,需要等待前面那个完成.当然,我们也可以实现一个Comporable接口,进行比较,这样就不需要实现两个Job.但是,这样程序的复杂度就提高了.
  • 开发时,调试起来困难.据说使用IDE的情况下,也是蛮轻松的.但是,我写MapReduce时,都是用的VIM.今天出现了一个问题,就是MapReduce跑完了,中间没有报任何错误,但是查看结果时,发现什么结果都没有.我尝试使用System.out.println语句输出,来定位一下问题.然而,这些语句都不起作用.Google了一下,发现是在运行这个Job时,由于是使用的hadoop -jar命令来运行的,所以任务直接是在Hadoop集群中跑的.Hadoop将这些语句的输出,都收集起来了,作为自己的输出,要看的话,需要到JobTracker的WebUI中,查看日志.StackOverflow上有人说,搭建一个本地的单实例模式,然后用正常运行Java程序的方式来运行,就能看到我们使用System.out.println输出的内容.
  • 只能进行简单的运算.这个缺陷我们在第一条中就说了.我用那个日志的数据集,想实现一个稍微复杂一些的运算,就得写好几个MapReduce.
  • 输出结果的形式单一.Reduce阶段的输出,就是一个<Key, Value>的键值对,然而,很多时候,我们的输出结果不是这么简单的.
  • 编程模型复杂.尽管MapReduce已经简化了我们的编程模型.但是,不可否认的是,还是很复杂.特别是一个任务需要使用多个MapReduce的Job来实现时.所以,很少有人直接就裸跑MapReduce.而是使用Hive,Pig等.
  • 不能写入到已经存在内容的目录.这实际上不算是MapReduce的缺陷,它是HDFS的一个特点.HDFS的特色就是修改数据不方便.所以,我在写MapReduce的程序的时候,不得不写一个脚本来负责清理输出目录,重新编译程序以及打包的操作.

这是目前我在尝试用MapReduce进行数据分析时,踩到的地雷.我们看一下Quora上有人对MapReduce的局限性的回答:

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

推荐阅读更多精彩内容