1.Spark环境的安装

Spark环境的安装


一、 Spark简介

1.1 Spark是什么

是一种基于内存的快速、通用、可拓展的大数据分析计算引擎

1.2 Hadoop 和 Spark关联

  1. hadoop :2013年10月发布2.X (Yarn)版本;
  2. spark : 2013年6月,Spark成为了Apache基金会下的项目。
  3. Spark可以理解为hadoop MR的升级版。

1.2.1 hadoop发展历史

-- 1.X 版本 --2011年发布

从架构的角度存在很多的问题
1. Namenode 是单点操作,所以容易出现单点故障,制约了HDFS的发展

2. Namenode的内存限制也影响了HDFS的发展
 
3. MapReduce是一种基于数据集的工作模式,面向数据,这种工作模式一般是从存储上加载数据集,然后操作数据集,最后将结果写入物理存储设备。数据更多面临的是一次性计算,所以初衷是单一数据计算,不支持迭代计算
 
4. 资源调度和任务调度耦合在一起,无法扩展,所以Hadoop1.X版本只支持MR计算框架

1.Spark环境的安装_第1张图片

-- 2.X 版本(Yarn) --2013.10月发布
 
1. 2.X版本支持Namenode高可用
 
2. 2.X版本使用新的资源调度框架Yarn,只做资源调度,不进行任务调度。
 
3. MR框架只做任务调度,可插拔,所以扩展性非常的强

1.Spark环境的安装_第2张图片

1.2.2 Spark 技术

  1. Spark其实核心思想就是基于MR的,优化了MR数据处理的中间过程,提升了数据处理的性能

  2. MR:多任务之间的数据会进行落盘

  3. Spark:多任务之间的数据会在内存中。

  4. 因为内存大小也有上限的,当内存不足时,就会出现job运行失败,所以Spark并不是完全替代MR。

  • MR和Spark区别

1.Spark环境的安装_第3张图片

1.Spark环境的安装_第4张图片

  • Spark的特点
1. spark计算模型更加丰富,MR只有mapper和reducer, spark的计算模型模糊了mapper和reduce的界限,更容易使用;
2. spark使用scala语言开发,支持函数式编程,所以就更利用迭代式计算.
3. spark也有自己的任务调度器和资源调度器。

1.Spark环境的安装_第5张图片

1.2.3 Spark On Yarn

在实际开发中,hadoop和Spark合二为一。

调度器:Hadoop的Yarn

任务执行:Spark的任务调度,Driver和Executor

1.Spark环境的安装_第6张图片

1.3 Spark的核心框架

1.Spark环境的安装_第7张图片

  1. Apache Spark Core : 最基础和最核心的功能
  2. Spark SQL :用于处理关系型数据库
  3. Spark Streaming:针对实时数据的处理流式计算的框架,Flink框架更有优势
  4. Spark MLlib: 机器学习
  5. Spark Graphx:面向图形计算

我们重点学习Spark前面三个框架。

二、Spark快速上手

创建Maven工程

2.1 增加Scala插件

--当前使用的Spark版本为2.4.5,默认采用的Scala版本为2.12

2.2 增加依赖关系

--修改Maven项目中的POM文件,增加Spark框架的依赖关系。当前文件是基于Spark2.4.5版本,使用时请注意对应版本
<dependencies>
    <dependency>
        <groupId>org.apache.sparkgroupId>
        <artifactId>spark-core_2.12artifactId>
        <version>2.4.5version>
    dependency>
dependencies>
<build>
    <plugins>
        
        <plugin>
            <groupId>net.alchim31.mavengroupId>
            <artifactId>scala-maven-pluginartifactId>
            <version>3.2.2version>
            <executions>
                <execution>
                    
                    <goals>
                        <goal>testCompilegoal>
                    goals>
                execution>
            executions>
        plugin>
        <plugin>
            <groupId>org.apache.maven.pluginsgroupId>
            <artifactId>maven-assembly-pluginartifactId>
            <version>3.0.0version>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependenciesdescriptorRef>
                descriptorRefs>
            configuration>
            <executions>
                <execution>
                    <id>make-assemblyid>
                    <phase>packagephase>
                    <goals>
                        <goal>singlegoal>
                    goals>
                execution>
            executions>
        plugin>
    plugins

你可能感兴趣的:(spark)