Spark概念及运行模式

Spark概念

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

Spark & Flink

  • Spark : 离线
  • Flink : 实时

离线与实时的概念

从数据处理的延迟角度,分为离线与实时

延迟:从开始计算到得到结果中间过程的间隔时间
- 离线:延迟以小时、天为单位(尽量保证在1天之内)
- 实时:延迟以毫秒为单位,即1s之内得到结果,就是实时

Hadoop生态

  1. 早期Hadoop就是一个计算框架

  2. 后来衍生为生态系统
    计算需要数据,大量数据不够存储,于是产生了HDFS

    HDFS(GFS) + MR(MR) + HBase(BigTable)
    hive + Flume

Spark & MR

都是离线的

  • MR:基于goole三篇大数据论文之一。核心思想:把数据打散之后再聚合。基于一次性计算的中心思想设计,不适合迭代式计算

    • 一次性计算:数据源——(Map打散)——>Data——(Reduce聚合)——>目的地
  • hive: MR开发效率低,产生hive框架;但hive虽然用sql语言简化MR,但底层还是MR,运行效率低

  • Spark:因为MR运行效率低,产生Spark。基于MR开发的,改善了MR的中间计算过程,让数据不再罗盘,可以通过内存进行数据传输

    因此 Spark和MR的最大区别在于:

    1. MR基于磁盘文件做计算,Spark基于内存做计算。
    2. MR一次性计算,Spark可迭代式计算
    3. MR基于Java语言;Spark基于Scala语言,函数式语言

Spark弊端:过于依赖内存,且因为数据倾斜,当内存资源较少时,容易出错。只能让运行效率快,但开发效率仍然低。

Spark内置模块

Spark Core

实现Spark基本功能

Spark SQL结构化数据

Spark Streaming实时计算

Spark Milib机器学习 *

SparkGraghX图计算 *

独立调度器

spark自己搭建集群管理资源,因为spark是一个计算框架,对于资源调度方面,yarn更强势

YARN

国内用的较多

Mesos

国外应用较多

spark安装演示

1、地址

  1. 官网地址:http://spark.apache.org/
  2. 档查看地址:https://spark.apache.org/docs/3.3.1/
  3. 下载地址:https://spark.apache.org/downloads.html
    https://archive.apache.org/dist/spark/

2、目录结构

在这里插入图片描述

bin

存储可执行文件

  • .cmd 结尾 Windows系统使用
  • .sh 结尾 Linux系统使用

sbin

运行中以s开头的命令,基本是一些启停命令

conf

存储配置文件
以.template结尾,表示只起到参考作用

data

存储一些模拟数据

example

存放官方案例的源码(src)和 可运行程序(打成了jar包,存放到jars目录下)

jars

spark软件自己用到的jar包

Spark运行模式

运行环境:
spark是一个计算框架,所以计算所需资源,Spark需要依托于其他软件提供

单机环境(local模式)

由当天Spark软件所在节点提供资源(cpu、内存)
运行在一台机器上的模式,本地模式

计算逻辑——通过接口——>spark

案例:

bin/spark-submit
–class org.apache.spark.examples.SparkPi
–master local[2]
./examples/jars/spark-examples_2.12-3.3.1.jar
10

真正启动的是Java虚拟机 spark-submit

–后跟的参数,是一对参数
不同–后的参数可以调整顺序

在任务运行还没有完成时,可登录hadoop102:4040查看程序运行结果

集群环境(YARN模式)

由服务器集群体提供计算资源(cpu、内存)
YARN 提供
启动YARN后,由RM管理,由NodeManager(Java虚拟机进程–4096)启动

  • NM内存:4G
  • NM的cpu核:默认每个NM8个虚拟核
  1. 解压spark到路径/opt/module

tar -zxvf spark-3.3.1-bin-hadoop3.tgz -C /opt/module/

  1. 进入该目录,修改名字(便于和本地模式区分)

mv spark-3.3.1-bin-hadoop3/ spark-yarn

  1. 修改Hadoop配置文件

vim /opt/module/hadoop/etc/hadoop/yarn-site.xml

<!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true -->
<property>
     <name>yarn.nodemanager.pmem-check-enabled</name>
     <value>false</value>
</property>

<!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true -->
<property>
     <name>yarn.nodemanager.vmem-check-enabled</name>
     <value>false</value>
</property>
  1. 分发配置文件到其他节点

xsync /opt/module/hadoop/etc/hadoop/yarn-site.xml

  1. 修改spark配置文件
    拷贝配置文件并改名

cd /opt/module/spark-yarn/conf/
cp spark-env.sh.tmplate spark-env.sh
vim spark-env.sh

增加内容:

YARN_CONF_DIR=/opt/module/hadoop/etc/hadoop
  1. 启动HDFS和YARN

在namenode节点:sbin/start-dfs.sh
在yarn节点:sbin/start-yarn.sh

  1. 执行一个程序

cd /opt/module/spark-yarn/

bin/spark-submit
–class org.apache.spark.examples.SparkPi
–master yarn
./examples/jars/spark-examples_2.12-3.3.1.jar
10

对比指令: – master后跟的参数不同

集群模式下,spark会先向HDFS上传spark库,然后yarn会下载资源,然后跑程序,最后删除资源。

  1. 查看hadoop作业运行日志
    http://hadoop103:8088/
    hadoop103:8088页面,点击History,查看历史页面
    注意:hadoop集群要开启历史服务后才可以看到

  2. 查看spark作业运行日志
    http://hadoop102:4040/
    注意:只有在进程运行时才可以看到

想在执行完后看到监控界面,需要配置历史服务

配置历史服务

  1. 进入目录

/opt/module/spark-yarn/conf

  1. 拷贝配置文件并改名

cp spark-defaults.conf.template spark-defaults.conf

  1. 修改
    (1) spark-defaults.conf

vim spark-defaults.conf

查看HDFS信息:
http://hadoop102:9870/
在这里插入图片描述
标黄处的端口号是什么,就在配置文件中添加什么

spark.eventLog.enabled          true
spark.eventLog.dir               hdfs://hadoop102:8020/directory

为了能从Yarn上关联到Spark历史服务器,需要配置spark历史服务器关联路径。
目的:点击yarn(8088)上spark任务的history按钮,进入的是spark历史服务器(18080),而不再是yarn历史服务器(19888)。
继续添加:

spark.yarn.historyServer.address=hadoop102:18080
spark.history.ui.port=18080

在hdfs网页中创建目录directory
在这里插入图片描述
在这里插入图片描述

(2)spark-env.sh

vim spark-env.sh

增加内容:

export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080 
-Dspark.history.fs.logDirectory=hdfs://hadoop102:8020/directory 
-Dspark.history.retainedApplications=30"
  • Dspark.history.ui.port:WEBUI访问的端口号为18080
  • Dspark.history.fs.logDirectory:指定历史服务器日志存储路径(读)
  • Dspark.history.retainedApplications:指定保存Application历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,这个是内存中的应用数,而不是页面上显示的应用数。
  1. 重启当前Spark历史服务
    回到spark-yarn安装目录下

sbin/stop-history-server.sh
sbin/start-history-server.sh

  1. 再次提交任务到YARN执行

  2. 在web端查看日志
    http://hadoop103:8088/cluster
    点击history跳转到spark历史服务界面
    在这里插入图片描述

重点

  1. 计算逻辑
  2. 底层原理
  • 27
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值