Spark目前正处理火热的发展中,过去的一年社区活跃度一直不减,那么进入2015年之后,Spark有了很明显的变化,从最新架构图就可以一展端倪
Spark未来的工作:
如上图所示,Spark的技术栈比之前有了很大的变化,未来Spark将在以下几个方面有重大突破:
一:Spark Core:
1. 扩展以及plugable APIs
Data Source API
Pipelines API:①特征提取,模式过滤,测试,validation
②提供可复用的组件,描述工作流语言
③提供重量级的RDD交互方式
ReciveAPI
Spark Packages
2. 通信延迟:基于 RDD 模拟任意分布式系统的一个主要缺点是,它需要额外的延迟去同步每一个步骤以使得计算是确定性的。未来会在两个方面改进;
第一个是系统方面的挑战,利用基于内存集群计算系统降低延时,另外就是代码的优化
第二个工作是在 RDDs 中使用延迟隐藏技术通过将工作划分为不同的区块或是推测其它机器的响应时间来实现的
3. 新的通信模式:RDDs 目前只在通信节点之间提供了点对点的 shuffle 模式,未来将提供广播或者多对一的聚和。
4. 异步:虽然基于 RDD 的计算是同步和确定性的,未来提供适用于在模型内执行异步计算步骤,同时在这些步骤之间提供故障恢复保障。
5. 细粒度的更新:RDDs 擅长于粗粒度和数据并行的操作,如读写一个键值对数据时,通过将这些操作分组来批量执行,进行细粒度的操作。
6. 正确性调试:分布式应用的调试和正确性测试是复杂的,尤其是操作大量的,没有对比
的数据集。一个想法是使用RDDs 的依赖关系信息高效地重现调试应用程序的一部分,还可以在第二次运行时修改lineage图,比如,在用户的函数中添加日志记录或增加错误跟踪记录。
7. 调度策略:虽然 RDD 模型非常灵活的支持运行时细粒度任务的调度,并且 RDD 已被用于实现了一些调度机制,如公平共享调度,但是在用这种模型编写的应用中找到一个正确的调度策略仍然是一个有挑战的问题
8. 内存管理:取决于应用程序
定义的优先级和使用模式。因为有不同的“层次”的存储,需要权衡内存大小与访问速度。可以考虑,在内存中的数据能够被压缩,这可能使它需要更大的计算开销,但所需的内存更少;或者数据也可以被换出到 SSD 中,或者是磁盘上。
二:MLlib
1. MLlib pipline API
2. 随机森林,梯度提升决策树
3. Python API
4. 性能提升方面
5. Model import/export
6. Topic modeling:Gaussan mixture model、multinomial logistic regresion、distribute linear algbra、better ALS、Better k-means、Hierarchical k-means、Neural networks、feature selection、adaboost、association rule learning、lsotonic regression、A/B testing、localing-sensitive hashing
三:其他方面
1. Succinct:一种面解压查询技术,支持不建索引情况下做多中查询,包括radom,Access,count arbitrary,string,可以减少16-126倍的数据。
2. Velox:融合OLAP,OLTP。使Spark与生产系统结合,数据获取以及模型应用
Sample clean:基于脏数据上做近似查询