范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

我们并没有觉得MapReduce速度慢,直到Spark出现

  Hadoop MapReduce 虽然已经可以满足大数据的应用场景,但是其执行速度和编程复杂度并不让人们满意。于是 UC Berkeley 的 AMP Lab 推出的 Spark 应运而生,Spark 拥有更快的执行速度和更友好的编程接口,在推出后短短两年就迅速抢占 MapReduce 的市场份额,成为主流的大数据计算框架。
  读到这里请你先停一下,请给这段看似"没毛病"的引子找找问题。
  不知道你意识到没有,我在这段开头说的,"Hadoop MapReduce 虽然已经可以满足大数据的应用场景,但是其执行速度和编程复杂度并不让人们满意",这句话其实是错误的。这样说好像可以让你更加清晰地看到事物发展的因果关系,同时也可以暗示别人自己有洞察事物发展规律的能力。然而,这种靠事后分析的因果规律常常是错误的,往往把结果当作了原因。
  事实上,在 Spark 出现之前,我们并没有对 MapReduce 的执行速度不满,我们觉得大数据嘛、分布式计算嘛,这样的速度也还可以啦。至于编程复杂度也是一样,一方面 Hive、Mahout 这些工具将常用的 MapReduce 编程封装起来了;另一方面,MapReduce 已经将分布式编程极大地简化了,当时人们并没有太多不满。
  真实的情况是,人们在 Spark 出现之后,才开始对 MapReduce 不满。原来大数据计算速度可以快这么多,编程也可以更简单。而且 Spark 支持 Yarn 和 HDFS,公司迁移到 Spark 上的成本很小,于是很快,越来越多的公司用 Spark 代替 MapReduce。也就是说,因为有了 Spark,才对 MapReduce 不满;而不是对 MapReduce 不满,所以诞生了 Spark。真实的因果关系是相反的。
  这里有一条关于问题的定律分享给你:我们常常意识不到问题的存在,直到有人解决了这些问题。
  当你去询问人们有什么问题需要解决,有什么需求需要被满足的时候,他们往往自己也不知道自己想要什么,常常言不由衷。但是如果你真正解决了他们的问题,他们就会恍然大悟:啊,这才是我真正想要的,以前那些统统都是"垃圾",我早就想要这样的东西(功能)了。
  所以顶尖的产品大师(问题解决专家),并不会拿着个小本本四处去做需求调研,问人们想要什么。而是在旁边默默观察人们是如何使用产品(解决问题)的,然后思考更好的产品体验(解决问题的办法)是什么。最后当他拿出新的产品设计(解决方案)的时候,人们就会视他为知己:你最懂我的需求(我最懂你的设计)。
  乔布斯是这样的大师,Spark 的作者马铁也是这样的专家。
  说了那么多,我们回到 Spark。Spark 和 MapReduce 相比,有更快的执行速度。下图是 Spark 和 MapReduce 进行逻辑回归机器学习的性能比较,Spark 比 MapReduce 快 100 多倍。
  除了速度更快,Spark 和 MapReduce 相比,还有更简单易用的编程模型。使用 Scala 语言在 Spark 上编写 WordCount 程序,主要代码只需要三行。
  不熟悉 Scala 语言没关系,我来解释一下上面的代码。
  第 1 行代码:根据 HDFS 路径生成一个输入数据 RDD。
  第 2 行代码:在输入数据 RDD 上执行 3 个操作,得到一个新的 RDD。
  第 3 行代码:将这个 RDD 保存到 HDFS。
  RDD 是 Spark 的核心概念,是弹性数据集(Resilient Distributed Datasets)的缩写。RDD 既是 Spark 面向开发者的编程模型,又是 Spark 自身架构的核心元素。
  我们先来看看作为 Spark 编程模型的 RDD。我们知道,大数据计算就是在大规模的数据集上进行一系列的数据计算处理。MapReduce 针对输入数据,将计算过程分为两个阶段,一个 Map 阶段,一个 Reduce 阶段,可以理解成是面向过程的大数据计算。我们在用 MapReduce 编程的时候,思考的是,如何将计算逻辑用 Map 和 Reduce 两个阶段实现,map 和 reduce 函数的输入和输出是什么,这也是我们在学习 MapReduce 编程的时候一再强调的。
  而 Spark 则直接针对数据进行编程,将大规模数据集合抽象成一个 RDD 对象,然后在这个 RDD 上进行各种计算处理,得到一个新的 RDD,继续计算处理,直到得到最后的结果数据。所以 Spark 可以理解成是面向对象的大数据计算。我们在进行 Spark 编程的时候,思考的是一个 RDD 对象需要经过什么样的操作,转换成另一个 RDD 对象,思考的重心和落脚点都在 RDD 上。
  所以在上面 WordCount 的代码示例里,第 2 行代码实际上进行了 3 次 RDD 转换,每次转换都得到一个新的 RDD,因为新的 RDD 可以继续调用 RDD 的转换函数,所以连续写成一行代码。事实上,可以分成 3 行。
  RDD 上定义的函数分两种,一种是转换(transformation)函数,这种函数的返回值还是 RDD;另一种是执行(action)函数,这种函数不再返回 RDD。
  RDD 定义了很多转换操作函数,比如有计算map(func)、过滤filter(func)、合并数据集union(otherDataset)、根据 Key 聚合reduceByKey(func, [numPartitions])、连接数据集join(otherDataset, [numPartitions])、分组groupByKey([numPartitions]) 等十几个函数。
  我们再来看看作为 Spark 架构核心元素的 RDD。跟 MapReduce 一样,Spark 也是对大数据进行分片计算,Spark 分布式计算的数据分片、任务调度都是以 RDD 为单位展开的,每个 RDD 分片都会分配到一个执行进程去处理。
  RDD 上的转换操作又分成两种,一种转换操作产生的 RDD 不会出现新的分片,比如 map、filter 等,也就是说一个 RDD 数据分片,经过 map 或者 filter 转换操作后,结果还在当前分片。就像你用 map 函数对每个数据加 1,得到的还是这样一组数据,只是值不同。实际上,Spark 并不是按照代码写的操作顺序去生成 RDD,比如这样的代码并不会在物理上生成一个新的 RDD。物理上,Spark 只有在产生新的 RDD 分片时候,才会真的生成一个 RDD,Spark 的这种特性也被称作惰性计算。
  另一种转换操作产生的 RDD 则会产生新的分片,比如,来自不同分片的相同 Key 必须聚合在一起进行操作,这样就会产生新的 RDD 分片。实际执行过程中,是否会产生新的 RDD 分片,并不是根据转换函数名就能判断出来的,具体我们下一期再讨论。
  总之,你需要记住,Spark 应用程序代码中的 RDD 和 Spark 执行过程中生成的物理 RDD 不是一一对应的,RDD 在 Spark 里面是一个非常灵活的概念,同时又非常重要,需要认真理解。
  当然 Spark 也有自己的生态体系,以 Spark 为基础,有支持 SQL 语句的 Spark SQL,有支持流计算的 Spark Streaming,有支持机器学习的 MLlib,还有支持图计算的 GraphX。利用这些产品,Spark 技术栈支撑起大数据分析、大数据机器学习等各种大数据应用场景。
  我前面提到,顶尖的产品设计大师和问题解决专家,不会去询问人们想要什么,而是分析和观察人们的做事方式,从而思考到更好的产品设计和问题解决方案。
  但是这种技巧需要深邃的观察力和洞察力,如果没有深度的思考,做出的东西就会沦为异想天开和自以为是。要知道大众提出的需求虽然也无法触及问题的核心,但是好歹是有共识的,大家都能接受,按这种需求做出的东西虽然平庸,但是不至于令人厌恶。
  而缺乏洞见的自以为是则会违反常识,让其他人本能产生排斥感,进而产生对立情绪。这种情绪之下,设计没有了进一步改进的基础,最后往往成为悲剧。这两年在所谓互联网思维的鼓吹下,一些缺乏专业技能的人,天马行空创造需求,受到质疑后公开批评用户,也是让人倍感惊诧。
  我们在自己的工作中,作为一个不是顶尖大师的产品经理或工程师,如何做到既不自以为是,又能逐渐摆脱平庸,进而慢慢向大师的方向靠近呢?
  有个技巧可以在工作中慢慢练习:不要直接提出你的问题和方案,不要直接说"你的需求是什么?""我这里有个方案你看一下"。
  直向曲中求,对于复杂的问题,越是直截了当越是得不到答案。迂回曲折地提出问题,一起思考问题背后的规律,才能逐渐发现问题的本质。通过这种方式,既能达成共识,不会有违常识,又可能产生洞见,使产品和方案呈现闪光点。
  思考题
  你在工作、生活中通过提问发现问题背后的本质、现象背后的规律的例子有哪些?或者你观察到同事、朋友这样的例子有哪些?
  欢迎你写下自己的思考或疑问,与我和其他同学一起讨论。
  -----点击上方关注持续收听面试干货
  私信 "888" 索要大数据相关学习资料

华为于周四发布下一代数据中心产品,这家公司为华为提供核心设备热点前瞻华为将于5月26日举行下一代数据中心发布会华为数字能源官方消息,华为将在5月26日于东莞举行下一代数据中心发布会,分享行业发展的最新趋势和创新成果,发布华为下一代数据中心及季节性过敏的克星!米家4Pro空气净化器毫不夸张地说,我已经小半个月没出门了,每天就蹲在家里面。也不是因为口罩的原因,主要是我的季节性过敏太严重了,鼻腔痒得要命,还不停的打喷嚏。可能有兄弟会说有这么夸张吗?真就这么夸张!提醒中国卖家购买这些服务有美国法律风险本文来自微信公众号InternetLawReview(IDInternetlawreview),作者张宁(美国加利福尼亚州和佐治亚州执业律师海外运营服务平台Flatfeecorp。如何买一部真正适合自己的手机?都看明白的,也算是半个内行了很多人私信问买手机的时候怎么买,确实,现在手机市场上手机种类太多,作为消费者的我们,选购手机的时候有时候确实不知道该怎么选,小编今天就带大家来看一下。重视性能,看这几点随着手机游戏最快1小时充满,最高续航220公里,这2款电动车很适合外卖员使用您在阅读前请点击上面的关注二字,后续会为您提供更多有价值的相关内容,感谢您的支持。在道路上骑行的电动车,有这样一群比较特殊的电动车,它们的驾驶人多为穿着蓝色黄色制服,每天的工作就是女孩子学电子商务专业的话,好不好就业呢?我比较看好电子商务专业,特别是对女生来说尤其适合。尽管电子商务专业今后就业竟争非常激烈,但只要学好扎实的专业基础知识,就业市场还是比较宽的。实在找工作有难度,还。适合个体就业。电子小鹏汽车名称被吐槽,文化不自信还是太过接地气小鹏汽车创始人何小鹏先生近期针对网友表示小鹏品牌的名称太土一事。坚决回应不会将公司改名。因为网友认为小鹏汽车小鹏的名称过于衔接地气。难以做成国家化的大品牌,不利于企业长远发展,更难拼多多推广受限怎么解除?哪些因素导致的?对于拼多多商家来说,需要做的事情有很多,其中就包括了拼多多推广,有很多的拼多多商家发现自己被限制推广了,拼多多为什么限制推广了?下面的内容中为大家进行相关的介绍。原因1若店铺出现虚亚马逊调整休息时间任务政策批评者此前称该政策限制上厕所时间据外媒CNET报道,随着亚马逊为6月21日开始的PrimeDay活动做准备,该公司表示,它将减轻其仓库中一个有争议的雇佣做法的负担。亚马逊将改变跟踪工人执行休息时间任务的方式,例如内蒙古现代能源区域科技服务团入选2022年科创中国区域科技服务团示范项目近日,中国科协公布了2022年科创中国科技服务团示范项目评审结果。经项目申报资格审查专家评审,共评选出科技服务团示范项目144个,其中产业科技服务团项目85项区域科技服务团项目29新能源汽车免税政策有望第三次延长资讯近日,节能与新能源汽车产业发展部际联席会议召集人工信部部长肖亚庆主持召开了部际联席会议2022年度工作会议。会议要求,2022年要大力推动新能源汽车产业高质量发展,尽早研究明确
首款搭载CTB技术的e平台3。0车型海豹开启预售5月20日,比亚迪发布了CTB电池车身一体化技术及首款搭载了CTB技术的e平台3。0车型海豹。海豹当天开启预售,预售价格为21。2828。98万元。比亚迪海豹是全球首款搭载CTB技随时随地上网课!国家开放大学终身教育平台上线课程全免费近日,国家开放大学终身教育平台正式上线,向社会免费提供388所名校课程资源10个头部平台的特色课程,共计50万门课程。除了学科性的课程之外,还有大量使用技能课程,例如计算机烹饪和缝联发科发布天玑1050芯片,旗下首款支持5G毫米波的移动平台5月23日消息,联发科今日宣布推出旗下首款支持5G毫米波的移动平台天玑1050。但除此之外,它只是现有天玑1100SoC的低配版。简单来说,天玑900系列的继任者是1050,天玑8平台经济为何会被重提?最近促进平台经济发展又在政策层面被提了出来,前段时间整体在互联网领域的高压监管势头应该会做一定调整,希望互联网平台在促进整体经济活力上进一步发挥积极作用。这也证明了互联网平台已经与奥迪Q4etron开启预售基于MEB平台,先享版33。738。25万元IT之家5月22日消息,一汽奥迪正式宣布旗下全新纯电动中型SUV奥迪Q4etron开启预售,预售区间为30万38万元,共有4款车型可供选择。而且先享版率先上市,两个版本分别为33。多条件求和就用sumifs函数Excel常用函数(3)用Excel进行数据表格计算,相信是多数人在工作中经常会碰到的一个事情。常用的数据统计函数有很多,Sumifs是用的最多的函数之一。今天我们就来学习下,Sumifs函数在多条件区间Spring基础知识spring核心要点IOC(容器,控制反转)将对象的创建权交给SringDI(依赖注入)由spring控制对象的注入过程AOP(切面编程)为多个方法添加统一的处理流程核心模块核心模新旧能源势力的造车路线之争新能源汽车正在逐渐成为汽车市场的主力军,这个趋势和渗透率都表明这样的观点,传统燃油车和新能源汽车并存的时期已经来临,虽然新能源的产销还是存在一定的低位,但是在不远的将来,新能源汽车普华永道聚创新势力,探寻数字化设计新生态一新程式数字化体验管理体系在全链路的能力输出过程中,无论是在设计的调研实施还是验收阶段,普华永道发现对体验质量的理解,随角色和场景的变化而不同。因此,产品和服务的评估标准存在着难以想让手机健康用上三五年?这些不良习惯要改掉,不用年年换新机现如今智能手机与我们的生活联系越来越紧密,几乎人手一台。手机能提供给我们生活的帮助越来越多,相应的我们对手机的依赖也越来越高。但根据不同的使用习惯,即使是相同的手机,每个人手中使用将Bean放入Spring容器中的五种方式我们知道平时在开发中使用Spring的时候,都是将对象交由Spring去管理,那么将一个对象加入到Spring容器中,有哪些方式呢,下面我就来总结一下1ConfigurationB