目录
一 概述
1 什么是Spark
Spark是一个基于内存的,快速 通用 可拓展 的大数据数据分析计算引擎。
2 Spark的内置模块
Spark Core:基本功能包含任务调度、内存管理、错误恢复、与存储系统交互等模块。此外还有RDD的API定义。
Spark SQL:用来操作结构化数据的程序包,支持多个数据源,比如Hive表、Parquet以及JSON等。
Spark Sreaming:Spark提供的对实时数据进行流式计算的组件,与Spark Core中的 RDD API高度对应。
Spark MLlib:常见的机器学习功能的程序库,包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据 导入等额外的支持功能。
Spark GraphX:用于图形并行计算和图挖掘系统的组件。
集群管理器:Spark设计为可以高效地在一个计算节点到数千个计算节点之间伸缩计算。为了提高灵活性,Spark自带的一个简易调度器,叫作独立调度器。
3 Spark的特点
快:和MR相比快很多,任务越多差距越大。
易用:支持多种语言。
通用:内置的模块丰富,多个处理可无缝使用。
兼容性:可与其他产品很好的配合。
二 运行模式
(我用的是CentOS 7,VMWare,三台机器)大致分为两种模式:单机模式,集群模式
1 Local模式
运行在一台计算机上的模式
(1)上传并解压Spark安装包,自己想在哪台机器上都行。
[sorfware]$ tar -zxvf spark-3.3.1-bin-hadoop3.tgz -C /opt/module/
[module]$ mv spark-3.3.1-bin-hadoop3 spark-local
可以了安装好了
(2)来个运行PI案例
[hadoop102 spark-local]$ bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master local[2] \
./examples/jars/spark-examples_2.12-3.3.1.jar \
10
可以查看spark-submit所有参数:
[hadoop102 spark-local]$ bin/spark-submit
2 Yarn模式
(1) 停止Standalone模式下的spark集群
[@hadoop102 spark-standalone]$ sbin/stop-all.sh
[@hadoop102 spark-standalone]$ zk.sh stop
[@hadoop103 spark-standalone]$ sbin/stop-master.sh
(2)再解压一份spark,和上面区分开
[@hadoop102 software]$ tar -zxvf spark-3.3.1-bin-hadoop3.tgz -C /opt/module/
[@hadoop102 module]$ mv spark-3.3.1-bin-hadoop3/ spark-yarn
(3)配置hadoop yarn-site-sh文件,/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>
(4)分发配置文件
(5)修改/opt/module/spark-yarn/conf/spark-env.sYARN_CONF_DIR配置。
[@hadoop102 conf]$ mv spark-env.sh.template spark-env.sh
[@hadoop102 conf]$ vim spark-env.sh
YARN_CONF_DIR=/opt/module/hadoop/etc/hadoop
(6)修改spark-default.conf 配置历史服务
[@hadoop102 conf]$ mv spark-defaults.conf.template spark-defaults.conf
[@hadoop102 conf]$ vim spark-defaults.conf
加入
spark.eventLog.enabled true
spark.eventLog.dir hdfs://hadoop102:8020/directory
(7)修改spark-env.sh文件
[@hadoop102 conf]$ 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"
(8)配置查看历史日志
修改配置文件/opt/module/spark-yarn/conf/spark-defaults.conf
添加如下内容:
spark.yarn.historyServer.address=hadoop102:18080
spark.history.ui.port=18080
重启Spark历史服务
[@hadoop102 spark-yarn]$ sbin/stop-history-server.sh
[@hadoop102 spark-yarn]$ sbin/start-history-server.sh