大数据的日常里,Spark 生态系统算是个比较常用的家伙了,挺全能的,批、流都能上。Spark Core负责底层调度,Spark SQL管结构化数据,MLlib搞机器学习,GraphX玩图计算,几乎啥都有。
RDD 的 RDD概念是基础,它是弹性分布式数据集,说白了就是能并行运算的大块数据。你写的任务都会先被切片,丢给各个 Executor 跑,Driver 就像个调度员,负责发号施令,Cluster Manager 就像物业,分配房间(资源)用的。
实际用下来,Spark Streaming实时数据也挺不错,比如日志监控、实时推荐系统这些都靠它撑着。MLlib呢,虽说不算最先进,但拿来训练一些基础模型也还可以,像逻辑回归、决策树这些都支持。
学 Spark 你要是零基础,推荐你先看下这份思维导图,结构清晰,逻辑也顺。可以去啃啃RDD 的入门资料,弄懂数据是怎么分区、怎么执行的。
源码党可以去挖Spark SQL 源码,不过建议先熟再深。还有分布式计算入门也可以顺便看看,对理解 Executor 分布式跑任务挺有。
如果你是搞机器学习的,Spark 虽然没那么花哨,但在大规模训练数据这块还蛮靠谱的。喜欢流的,Spark Streaming 响应也快,代码也简单。如果你数据多、任务重,又不想折腾太多底层配置,Spark 会是个不错的选择。