Spark Learning Overview
Spark学习可以看一些书获取一些基本知识。不过spark官网已经提供了足量的涵盖各个方面的学习资料,更重要的是这些内容都非常新,这一点是书本没法比的。大致汇总、概述一下官网上要看的资料,方便学习:
官网
docs下的链接
- overview:也是其他各类文档的汇集处
- overview:https://spark.apache.org/docs/latest/index.html,
- programming guides:主要就三篇和spark、rdd、spark sql、DataFrame、Dataset相关的
- quick start:https://spark.apache.org/docs/latest/quick-start.html
- rdd:https://spark.apache.org/docs/latest/rdd-programming-guide.html
- spark SQL + DataFrame + Dataset:https://spark.apache.org/docs/latest/sql-programming-guide.html
- spark streaming,kafka通过spark streaming落地到hdfs等,需要的时候可以看:https://spark.apache.org/docs/latest/streaming-programming-guide.html
- api:主要是scala的,pyspark用的不多
- scala:http://spark.apache.org/docs/latest/api/scala/org/apache/spark/index.html
- pyspark:https://spark.apache.org/docs/latest/api/python/pyspark.html
- Deploying:任务提交、spark运行模式等。这个下面的文章都挺重要的,基本都要看。给个入口,其他的不一一列举了
- cluster:https://spark.apache.org/docs/latest/cluster-overview.html
- submitting applications: http://spark.apache.org/docs/latest/submitting-applications.html
- standalone mode: http://spark.apache.org/docs/latest/spark-standalone.html
- yarn: http://spark.apache.org/docs/latest/running-on-yarn.html
- More:拓展阅读,关于spark的配置、调优、监控、安全等,也都应该看一下。同样只给个入口
- spark configuration:https://spark.apache.org/docs/latest/configuration.html
非docs下的有用链接
- example:https://spark.apache.org/examples.html
- 有用的开发工具等:https://spark.apache.org/developer-tools.html
spark的论文、分享:
- spark架构分享:https://www.slideshare.net/AGrishchenko/apache-spark-architecture
- MapReduce和Spark分享:https://cs.stanford.edu/~matei/courses/2015/6.S897/slides/mr-and-spark.pdf
- rdd论文:https://cs.stanford.edu/~matei/papers/2012/nsdi_spark.pdf
其他
- 一套看起来貌似还可以的spark教程:https://data-flair.training/blogs/spark-tutorial/
总结
spark的学习主要分以下几部分:
- spark SQL,即RDD/DataFrame/Dataset的操作:
- groupBy,聚合等,主要结合api学习;
- RDD/DataFrame/Dataset之间的转换;
- spark的IO,读写各种格式的文件:
input file -> SparkSession -> (DataFrameReader) -> DataFrame -> (DataFrameWriter) -> output file
;
- spark任务的部署:
- 使用的cluster,cluster manager,主要是yarn;
- 任务提交spark-submit的一些参数;
- 关于spark的配置、安全认证等,深入了解之后才能进行spark调优;
这应该是第二次比较多的接触spark。上次接触应该是一年多之前,就像新接触一个复杂的东西一样,有点儿忙乱,总感觉没深入进去,也对整体没有把握,一种“这不是我要/能用到的技术”的感觉。最近一个月才算是真正地了解了spark,包括系统学习spark等。当然也只能算是应用层次的深入。spark的确复杂,之后应该就可以逐渐深入了解其内部原理了。期待!
本文由作者按照 CC BY 4.0 进行授权