一、初识Spark
- Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
- Spark与Hadoop的关系。Hadoop是集数据存储、运算、调度于一体的框架,使用HDFS进行分布式存储,MapReduce进行分布式计算,YARN进行资源调度。而Spark是基于内存的快速通用计算引擎,Spark不能取代Hadoop,只能取代MapReduce,事实上Spark会将HDFS作为其数据源或数据存储的系统,也会将其本身的资源调度工作交给YARN去完成,这就是Spark On YARN的部署模式。
二、Spark核心术语详讲
- Application :Spark的应用程序,其实就是用户基于Spark API开发的程序,一定是通过一个有main方法的类执行的,比如Java开发Spark程序或Scala开发的程序,在Eclipse或IDEA等开发工具里就是一个工程。
- Application Jar:就是把写好的spark工程,打包成一个jar包,其中包括了所有的第三方jar依赖包比如数据库的驱动等等。
- Driver Program:是指我们编写的Spark程序中main方法的里的逻辑,这也是driver&#