2014年9月17日,第六届中国系统架构师大会SACC 2014在北京五洲皇冠国际酒店隆重召开。本次大会以“发现架构之美”为主题,大会三天来自百度、腾讯、阿里巴巴、京东、淘宝、天猫、网易、58同城、奇虎360、爱奇艺、美团、唯品会、滴滴、银行等知名互联网企业与初创企业的资深架构师与IT大牛将在悉数到场,探讨最具前瞻性的行业趋势与技术热点,分享架构在企业中的非常好的实践,共同领略架构之美。
9月17日下午专场3,来自皮皮网数据平台经理陈超为我们发表了主题为《Spark生态系统与内核剖析》的精彩演讲。Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。
在本次演讲中,陈超为我们讲解了Spark的优势与亮点,他表示,中国已经成为了Spark一个非常强有力的推动者。Spark是一种快速和通用引擎,用于大规模数据处理。Spark目前的发展理念是通过一个计算框架集合SQL、Machine Learning、Graph Computing、Streaming Computing等多种功能于一个项目中,SparkSQL就是一个例子。Spark周边的一些项目,像Tachyon、SparkR、BlinkDB、RDD等也在快速发展中,陈超分别为我们讲解了这些项目。
RDD是Spark最核心的东西,它表示已被分区,不可变的并能够被并行操作的数据集合,不同的数据集格式对应不同的RDD实现。RDD必须是可序列化的。RDD可以cache到内存中,每次对RDD数据集的操作之后的结果,都可以存放到内存中,下一个操作可以直接从内存中输入,省去了MapReduce大量的磁盘IO操作。这对于迭代运算比较常见的机器学习算法, 交互式数据挖掘来说,效率提升比较大。
Spark Streaming是大规模流式数据处理的新贵,将流式计算分解成一系列短小的批处理作业。这里的批处理引擎是Spark,也就是把Spark Streaming的输入数据按照batch size(如1秒)分成一段一段的数据,每一段数据都转换成Spark中的RDD,然后将Spark Streaming中对DStream的Transformation操作变为针对Spark中对RDD的Transformation操作,将RDD经过操作变成中间结果保存在内存中。整个流式计算根据业务的需求可以对中间的结果进行叠加,或者存储到外部设备。
Shuffle是MapReduce框架中的一个特定的phase,介于Map phase和Reduce phase之间,当Map的输出结果要被Reduce使用时,输出结果需要按key哈希,并且分发到每一个Reducer上去,这个过程就是shuffle。由于shuffle涉及到了磁盘的读写和网络的传输,因此shuffle性能的高低直接影响到了整个程序的运行效率。通常shuffle分为两部分:Map阶段的数据准备和Reduce阶段的数据拷贝。首先,Map阶段需根据Reduce阶段的Task数量决定每个Map Task输出的数据分片数目,有多种方式存放这些数据分片。
最后,嘉宾和我们谈到BlinkDB,它 是一个用于在海量数据上运行交互式 SQL 查询的大规模并行查询引擎。它允许用户通过权衡数据精度来提升查询响应时间,其数据的精度被控制在允许的误差范围内。BlinkDB通过独特的采用优化技术实现了比Hive快百倍的速度,同时能把误差控制在2-10%。
更多大会详情,请查看大会官网: