hadoop本身的计算模型决定了hadoop上所有的工作都要转化成map、shuffer和Reduce等核心阶段,由于每次计算都要从磁盘读或者写数据,同时整个计算模型都需要网络传输, 这就导致了越来越不能忍受的延迟性,同时在前一个任务未完成之前,后面的任务都要等待,这直接导致其无力支持交互式应用。
spark具备的优势: 快速 基于spark内存的计算速度比Hadoop MapReduce快100倍以上,基于磁盘的计算速度也快10倍以上。原因是spark有一个 dag有向无环图执行引擎,支持循环数据流和内存计算。
易用 提供多语言api(包括scala、java、python),能够快速实现应用,相比mapreducer有更简洁的代码。而且spark具备功能强大、齐全的rdd算子,可以轻松解决各种数据处理。
通用 提供了一个强大的技术栈,包括查询语言spark sql 、机器学习工具Mllib、实时流工具 spark Streaming 、图计算工具 graph,在同一个应该程序中可以无缝连接使用这些框架。 而hadoop的技术栈相对独立也较为复杂。
集成hadoop Spark可以运行在第二代hadoop集群管理yarn上,这使得spark可以读取hadoop任何数据。
|