MR作为一个最早的基于磁盘解决需求的计算框架,它本该发展的非常辉煌,但是现在它应用的非常局限,一般只有在清洗数据或者是做一些轻度操作时才会用
有很多人说是因为它耗费的资源太高,也有人说它编写麻烦,但是其实啊,我个人觉得还是因为它本身有着实现需求不完全的不足之处,这里也是给大家分享一个亲身经历
我曾经处理一份数据标准需求的时候,针对数据元,做标准字典数据元时,希望达到的目的是同组且组内按照特定字段有序,但是我在用MR清洗的时候发现,原来我有序的数据,在一个只拼接的MR之后,拼接的目的是达到了,但是数据的顺序乱了
我又做了一个二级排序的操作,但是最后发现没ruan用,MR基于磁盘每一次只是读取了上一次的结果,数据之间的关联性没那么强,我之后也想了好多方法,甚至我想过在reduce开面排个序,但是我最后吃饭的时候一想,我干嘛钻牛角尖啊,明明一个spark的sorkByKey就可以解决的事情,我浪费时间在MR上干什么
最后是使用了spark因为spark可以链式开发,就是说数据之间联系较强,存在血缘关系,举个形象的例子就好像造房子一样,MR相当于没有给你图纸,直接上手,操作之间没有太大联系,操作之间关联比较牵强,spark就相当于提前看了图纸,脑海里已经有个大概的流程了,这的时候就可以一步到位了