“决胜云计算大数据时代”
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内存管理策略和压缩等算法 也是影响数据处理能力的非常大的因素;