“决胜云计算大数据时代”

 

Spark亚太研究院100期公益大讲堂 【第一期互动问答分享】

 

 

Q1:“能否延伸想象一下,Hadoop后续版本会不会通过设计调整,具备 Spark目前所具备的优势?”

A1

  • Hadoop这几年的改进基本停留在代码层次,也就是修修补补的事情,这就导致了Hadoop现在具有深度的“技术债务”,负载累累;

  • Hadoop本身的计算模型决定了Hadoop上的所有工作都要转化成Map、Shuffle和Reduce;

  • 等核心阶段,由于每次计算都要从磁盘读或者写数据,同时真个计算模型需要网络传输,

  • 这就导致了越来越不能忍受的延迟性,同时在前一个任务运行完之前,任何一个任务都不 可以运行,这直接导致了其无力支持交互式应用;

  • 那么,为什么不全部重新写一个更好的Hadoop呢?答案是Spark的出现使得没有必要这 样做了。

 

Q2:“Spark会不会取代Hadoop?”

A2

  • Hadoop的HDFS存储系统目前公认的分布式大数据的首选存储系统,会继续倍使用;但 在大数据计算框架上Spark会取代Hadoop;

  • 原先支持Hadoop的四大商业机构纷纷宣布支持Spark;

  • Yahoo!、淘宝、优酷土豆、网易、Baidu、腾讯等已经使用Spark技术等;

  • Mahout前一阶段表示从现在起他们将不再接受任何形式的以MapReduce形式实现的 算法,另外一方面,Mahout宣布新的算法基于Spark;

  • Cloudera的机器学习框架Oryx的执行引擎也将由Hadoop的MapReduce替换成Spark;

  • Google已经开始将负载从MapReduce转移到Pregel和Dremel上;

  • FaceBook则将负载转移到Presto上;

  • 2014年5月30日Spark 1.0发布,版本稳定 ,生态系统晚上,可以放心使用

 

 Q3:Hadoop是否只会作为大数据的存储系统存在下去?”

A3:     

  • Hadoop的HDFS已经是云计算大数据领域公认的数据存储系统,会成为云计算大数据 存储的基石;

  • Yarn也会成为一个集群资源管理的标准;

  • 在对速度处理时间长度没有特定要求,而又数据量特别大的场景使用Hadoop的MapReduce计算模型进行计算也是可以考虑的;

Q4:“现在都是大型公司在使用Spark,好像中型公司用的不多,比如做电信、 金融的,是这种情况么?比Storm有哪些优势?”

A4

  • 现在,Yahoo!、淘宝、优酷土豆、网易、Baidu、腾讯等已经在商业生产环境下使用Spark技术等;

  • Intel、IBM、Linkin、Twwitter等都在大力支持Spark;

  • Spark由于其设计的时候的“One Stack to rule them all”的特性,特别适合于中小公司 部署使用,是中小公司处理数据的福音; 中型公司基于Spark大约有5个人的团队即可在Spark之上做数据分析统计、机器学习、 实施流处理计算等;

 

 Q5:“Spark现在不稳定吧,小公司的技术维护较为困难吧”

A5

  • Spark由于其设计的时候的“One Stack to rule them all”的特性,特别适合于中小公司

  • 部署使用,是中小公司处理数据的福音;

  • 小公司三五个人的团队即可使用和维护几十台的Spark集群;

  • DataBricks公司正在和Cloudera等公司合作推出简易使用的商业发行版本;

 

Q6:“Spark是基于内存的分布式计算框架,相比Hadoop处理效率更好, 但是相比硬盘,内存还是贵的,整理性价比如何?能否对比说明一下?”

 

A6

  • 相比硬盘,内存确实是规定,但Spark确实目前云计算大数据领域具有最高性价比的

  • 大数据处理框架。

  • Spark是继Hadoop之后,成为替代Hadoop的下一代云计算大数据核心技术,目前SPARK已经构建了自己的整个大数据处理生态系统,如流处理、图技术、机器学习、NoSQL查询 等方面都有自己的技术,并且是Apache顶级Project,可以预计的是2014年下半年到2015年在社区和商业应用上会有爆发式的增长。

  • Spark的“One stack to rule them all”的特性,使用一个技术堆栈即可解决数据分

析、流处理、图技术、机器学习等

  • 关于技术团队,如果使用Hadoop来完成数据分析、流处理、图技术、机器学习等就

需要至少4个技术团队分别负责具体的领域,而使用Spark只需要一个技术团队即可完成;

Q7:“如果数据量无法全部加在进内存(内存太小),这个在机器学习算法里

比较常见,这时候Spark如何处理” ?

 

A7

  • 内存太小对于任何一个系统而言都是一个永恒的问题,对Spark也是如此;

  • 因为机器学习中有很多迭代计算,所以对内存要求确实很大;

  • Spark有自己相对完善的内存管理策略,对于正在进行的计算肯定是要放在内存中的,

  • 但是可以根据LRU等算法把不是太活跃的数据可以物化起来;

  • 另外我们可以使用Google等公司的优秀的压缩算法来提高内存的使用,当然在压缩

  • 和解压缩的时候需要消耗CPU

Q8:“Spark存在哪些性能瓶颈点”

A8:

  • 内存是一个很大的限制,设想一下,如果单台机器的内存很轻易的达到1T的话,肯定

  • 可以极大的提高性能;

  • 另外一个性能瓶颈就是不同机器之间共享数据的问题,即分布式集群中的机器如何

  • 共享内容,推荐大家关注和使用Tachyon。

  • 集群中的网速也是一问题,但这是一个通用的问题;

 

 Q9:“规模为10左右,内存32g的集群能支持多大的数据量” ?

A9

  • 现在淘宝、Yahoo!等公司的Spark集群的配置一般内存为200g或300g左右,CPU

  • 一般都在8颗以上;

  • 规模为10左右,内存32g的集群能够处理多大的数据,取决于当前需要计算的数据量,

  • 例如在进行实施流程处理的时候就能够一直不断的处理数据;

  • 规模为10左右,内存32g的集群,其硬盘配置 以及Spark内存管理策略和压缩等算法 也是影响数据处理能力的非常大的因素;