1.Spark环境的安装

本文详细介绍了Spark的安装过程,包括Spark的简介、如何快速上手创建Maven工程、不同运行模式(本地、独立、YARN)的配置与启动,以及Spark核心框架的概述。在运行环境部分,详细讲解了各个模式的配置步骤,如修改配置文件、启动集群、提交应用和配置历史服务器等。
摘要由CSDN通过智能技术生成

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计算框架

image-20200602020855518

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

image-20200602021032775

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

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

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

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

  • MR和Spark区别

image-20200602021626723

image-20200602021747457

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

image-20200602022304372

1.2.3 Spark On Yarn

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

调度器:Hadoop的Yarn

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

image-20200602022554760

1.3 Spark的核心框架

image-20200602181641619

  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.spark</groupId>
        <artifactId>spark-core_2.12</artifactId>
        <version>2.4.5</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <!-- 该插件用于将Scala代码编译成class文件 -->
        <plugin>
            <groupId>net.alchim31.maven</groupId>
            <artifactId>scala-maven-plugin</artifactId>
            <version>3.2.2</version>
            <executions>
                <execution>
                    <!-- 声明绑定到maven的compile阶段 -->
                    <goals>
                        <goal>testCompile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>3.0.0</version>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值