Spark基本概述及其环境搭建之本地模式(开箱即用无需配置)

概述

在这里插入图片描述
官方定义
快速、统一的大数据分析计算引擎
四大特点

  1. 速度快
    由于Apache Spark支持内存计算,并且通过DAG(有向无环图)执行引擎支持无环数据流, 所以官方宣称其在内存中的运算速度要比Hadoop的MapReduce快100倍,在硬盘中要快10倍。
  • Spark处理数据与MapReduce处理数据相比,有如下两个不同点:
    在这里插入图片描述
  • Spark Job调度以DAG方式,并且每个任务Task执行以线程(Thread)方式,并不是像MapReduce以进程(Process)方式执行。
    在这里插入图片描述
  1. 易于使用
    Spark 的版本已经更新到 Spark 2.4.5(截止日期2020.05.01),支持了包括 Java、Scala、Python 、R和SQL语言在内的多种语言

  2. 通用性强
    在 Spark 的基础上,Spark 还提供了包括Spark SQL、Spark Streaming、MLib 及GraphX在内的多个工具库,我们可以在一个应用中无缝地使用这些工具库。其中,Spark SQL 提供了结构化的数据处理方式,Spark Streaming 主要针对流式处理任务(也是本书的重点),MLlib提供了很多有用的机器学习算法库,GraphX提供图形和图形并行化计算。

  3. 多种运行方式
    Spark 支持多种运行方式,包括在 Hadoop 和 Mesos 上,也支持 Standalone的独立运行模式,同时也可以运行在云Kubernetes(Spark 2.3开始支持)上。

注对于数据源而言,Spark 支持从HDFS、HBase、Cassandra 及 Kafka 等多种途径获取数据。

Spark框架模块

Spark Core

实现了 Spark 的基本功能,包含RDD、任务调度、内存管理、错误恢复、与存储系统交互等模块。数据结构:RDD

在这里插入图片描述

Spark SQL

Spark 用来操作结构化数据的程序包。通过 Spark SQL,可以使用 SQL操作数据。数据结构: Dataset/DataFrame = RDD + Schema
在这里插入图片描述

Spark Streaming

Spark 提供的对实时数据进行流式计算的组件。提供了用来操作数据流的 API。 数据结构: DStream = Seq[RDD]
在这里插入图片描述

Spark MLlib

提供常见的机器学习(ML)功能的程序库。包括分类、回归、聚类、协同过滤等,还提供了模型 评估、数据导入等额外的支持功能。 数据结构:RDD或者DataFrame
在这里插入图片描述

Spark GraphX

Spark中用于图计算的API,性能良好,拥有丰富的功能和运算符,能在海量数据上自如地运行 复杂的图算法。数据结构:RDD或者DataFrame
在这里插入图片描述

Structured Streaming

Structured Streaming是建立在SparkSQL引擎之上的可伸缩和高容错的流式处理引擎,可以像操作静态数据的批量计算一样来执行流式计算。当流式数据不断的到达的过程中Spark SQL的引擎会连续不断的执行计算并更新最终结果。
在这里插入图片描述

Spark运行模式

Spark 框架编写的应用程序可以运行在本地模式(Local Mode)、集群模式(Cluster Mode) 和云服务(Cloud),方便开发测试和生产部署。
在这里插入图片描述

  1. 本地模式:Local Mode
    将Spark 应用程序中任务Task运行在一个本地JVM Process进程中,通常开发测试使用。

在这里插入图片描述

  1. 集群模式:Cluster Mode
    将Spark应用程序运行在集群上,比如Hadoop YARN集群,Spark 自身集群Standalone及Apache Mesos集群
    在这里插入图片描述
  • Hadoop YARN集群模式(生产环境使用):运行在 yarn 集群之上,由 yarn 负责资源管理,Spark 负责任务调度和计算,好处:计算资源按需伸缩,集群利用率高,共享底层存储,避免数据跨集群迁移。
  • Spark Standalone集群模式(开发测试及生成环境使用):类似Hadoop YARN架构,典型的Mater/Slaves模式,使用Zookeeper搭建高可用,避免Master是有单点故障的。
  • Apache Mesos集群模式(国内使用较少):运行在 mesos 资源管理器框架之上,由 mesos 负责资源管理,Spark 负责任务调度和计算。
  • 云服务:Kubernetes 模式
    中小公司未来会更多的使用云服务,Spark 2.3开始支持将Spark 开发应用运行到K8s上。
    在这里插入图片描述

安装

  1. 下载安装包
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

  1. 上传并解压安装包
tar -zxvf spark-2.4.7-bin-hadoop2.6.tgz -C ../servers
  1. 修改权限
chown -R root /export/server/spark-2.4.7-bin-hadoop2.6
chgrp -R root /export/server/spark-2.4.7-bin-hadoop2.6
  1. 创建软连接
ln -s /export/server/spark-2.4.7-bin-hadoop2.6 /export/server/spark

测试

  1. 启动spark交互式窗口
/export/server/spark/bin/spark-shell

在这里插入图片描述

  1. 测试Spark的WordCount
1.准备文件
vim /root/words.txt
添加以下内容:
hello me you her
hello me you
hello me
hello

2.执行WordCount
val textFile = sc.textFile("file:///root/words.txt")
val counts = textFile.flatMap(_.split(" ")).map((_,1)).reduceByKey(_ + _)
counts.collect

结果:
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据老人家i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值