前言
spark作为大数据计算引擎,为大数据的计算提供了一套新的底层模型;从存储角度,它借助内存作为首选方式,比hadoop快百倍。记录下一些重点感悟。
几大特点
- 快 - 100*hadoop运行
- 易用 - 搭好框架之后,支持Java, Scala, Python, R, and SQL.
- 通用 - sql、流式计算、复杂分析
- 灵活运行 - hadoop集群,mesos、k8s等有广泛集成
使用体验
在接触spark之前,对hadoop、hive有一定了解,hadoop的编程模式还是以java代码,生成jar包的执行方式;hive对hadoop做了一层封装,以支持HQL(类SQL)的方式对用户提供大数据分析方式。
而在spark中,由于spark的精简模型,结合对scala、python的支持,基本几行代码就可以做分析,所见即所得,能很快的得到反馈。
在spark 低版本中,以RDD为核心模型,操作相对底层,支持“告诉框架怎么做”的编程模式。在spark高版本中,以DataFrame、DataSet的更高层模型支持“告诉框架做什么”的编程模式。
执行模式
两类操作:转换:transformation和行动:action
与java的stream类似,在没有遇到terminal之前,不会真正执行具体操作。在遇到action之后,会做逻辑优化后执行。
对于SQL类型语句,底层会基于hive做逻辑计划、物理计划做编排后执行。
集群搭建
和hadoop类似,从思路