分布式的大数据框架里,Spark的迭代式计算挺有意思的,速度快不说,代码也还算好上手。尤其是内存计算这块,省了不少 I/O 等待,搞机器学习啥的合适。
内存为主的计算模型,是Spark的一大优势。你写完逻辑丢进去,它自己就把任务拆分、分发,跑在多个节点上,完再自动聚合,嗯,挺省心。
如果你用过 Hadoop MapReduce,会觉得Spark响应更快,尤其迭代任务不用一遍遍写磁盘,体验上差距挺大。像模型训练、图计算这类多轮次任务,它比较拿手。
不过用的时候要注意,内存不够的时候,它也会退到磁盘上运行,虽然不会挂,但性能会掉一点。建议资源紧张的时候做下缓存策略调优。
如果你对分布式计算还不太熟,下面这几个链接也可以瞄一眼,蛮有的:
▶ Apache Spark 内存计算与分布式框架
▶ Spark 分布式计算框架
▶ Apache Spark 分布式计算框架的特定版本 Spark-2.0.2-bin-hadoop2.6
▶ Storm 蓝图:分布式实时计算模式
如果你是第一次接触Spark,建议先跑个 WordCount,理解一下RDD
的流程,再慢慢上手 DataFrame 和 SQL 部分,会更顺一点。