学习地址1:https://pan.baidu.com/s/1Ug2VRONBFfR9JplPf3nSzQ 提取码: q5ak 学习地址2:https://share.weiyun.com/K1edg2Jy 密码:fcxf26
一、Spark3.0.0运行环境安装
Spark常见部署模式: Local模式:在本地部署单个Spark服务 所谓的Local模式,就是不需要其他任何节点资源就可以在本地执行Spark代码的环境,一般用于教学,调试,演示等。 在IDEA中运行代码的环境称之为开发环境,和Local模式还是有区别的。 Standalone模式:Spark自带的任务调度模式。(国内常用) YARN模式:Spark使用Hadoop的YARN组件进行资源与任务调度。(国内常用) Windows模式:为了方便在学习测试spark程序,Spark提供了可以在windows系统下启动本地集群的方式,这样,在不使用虚拟机或服务器的情况下,也能满足Spark的基本使用。 Mesos & K8S模式:(了解)。 Mesos是Apache下的开源分布式资源管理框架,它被称为是分布式系统的内核,在Twitter得到广泛使用,管理着Twitter超过30,0000台服务器上的应用部署,但是在国内,依然使用着传统的Hadoop大数据框架,所以国内使用Mesos框架的并不多,但是原理都差不多。 容器化部署是目前业界很流行的一项技术,基于Docker镜像运行能够让用户更加方便地对应用进行管理和运维。容器管理工具中最为流行的就是Kubernetes(k8s),而Spark也在最近的版本中支持了k8s部署模式。
1、配置java jdk1.8 环境变量配置路径:电脑→属性→高级系统设置→环境变量 path中加入:%JAVA_HOME%/bin。 注:jdk版本不宜过高。
2、配置scala2.12.0 下载scala安装包,选择对应版本,这里我选择的是scala2.12.0版本。
3、配置scala环境 环境变量配置路径:此电脑→属性→高级系统设置→环境变量 path中加入:%SCALA_HOME%/bin。
验证配置 cmd验证配置: scala -version
4、配置Hadoop3.1.0 Hadoop下载 从Apache官网下载Hadoop,官网下载速度较慢,也可使用国内镜像下载。 Hadoop环境变量配置,配置步骤同Scala配置。 注意:需要把%HADOOP_HOME%\bin与%HADOOP_HOME%\sbin一同加入path中。
5、配置Spark3.0.3 Spark下载 Spark环境配置,配置步骤同scala配置。 注意:需要把%SPARK_HOME%\bin与%SPARK_HOME%\sbin一同加入path中。
配置验证 cmd命令: spark-shell Spark配置成功。
二、spark实战 Spark是用于大规模数据处理的统一分析引擎,也可以说是目前用于可伸缩计算的最广泛的引擎,成千上万的公司包括财富500强中的80%都在使用。 Spark生态系统集成了丰富的数据科学、机器学习、SQL分析和BI、存储和基础设施等框架,并将这个生态使用可以扩展到数千台机器大规模数据使用。 Spark提供了Java、Scala、Python和R的高级api,以及支持通用执行图的优化引擎。 Spark支持一系列丰富的高级工具,包括用于SQL和结构化数据处理的Spark SQL,用于pandas工作负载的Spark上的pandas API,用于机器学习的MLlib,用于图形处理的GraphX,以及用于增量计算和流处理的Structured Streaming。
Spark自身节点运行的集群模式,也就是我们所谓的独立部署(Standalone)模式,Spark的Standalone模式体现了经典的master-slave模式。
拷贝一个部署spark-standalone目录
cp -r spark-3.3.0-bin-hadoop3 spark-standalone
进入目录
cd spark-standalone/ cd conf
准备workers配置文件
mv workers.template workers
修改workers内容为
vi workers hadoop1 hadoop2 hadoop3
准备spark-env.sh配置文件
mv spark-env.sh.template spark-env.sh
spark-env.sh添加如下内容
vi spark-env.s export JAVA_HOME=/home/commons/jdk8 SPARK_MASTER_HOST=hadoop1 SPARK_MASTER_PORT=7077
分发到其他两台上
scp -r /home/commons/spark-standalone hadoop2:/home/commons/ scp -r /home/commons/spark-standalone hadoop3:/home/commons/
进入根目录下sbin执行目录和启动
cd sbin/ ./start-all.sh
由于spark-shell 停止掉后,集群监控页面就看不到历史任务的运行情况,所以开发时都配置历史服务器记录任务运行情况。
先停止前面启动的集群
./stop-all.sh
准备spark-defaults.conf
cd ../conf mv spark-defaults.conf.template spark-defaults.conf
修改spark-defaults.conf
vim spark-defaults.conf spark.eventLog.enabled true spark.eventLog.dir hdfs://myns:8020/sparkhis
需要启动Hadoop集群,HDFS上的目录需要提前存在
hadoop fs -mkdir /sparkhis
修改spark-env.sh文件,添加如下配置:
vi spark-env.sh export SPARK_HISTORY_OPTS=" -Dspark.history.ui.port=18080 -Dspark.history.fs.logDirectory=hdfs://myns:8020/sparkhis -Dspark.history.retainedApplications=30"
参数1含义:WEBUI访问的端口号为18080
参数2含义:指定历史服务器日志存储路径(读)
参数3含义:指定保存Application历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,这个是内存中的应用数,而不是页面上显示的应用数。
由于hadoop是HA模式因此配置为hdfs-site.xml下的dfs.nameservices的value值
分发配置到另外两台上
scp spark-defaults.conf spark-env.sh hadoop2:/home/commons/spark-standalone/conf/ scp spark-defaults.conf spark-env.sh hadoop3:/home/commons/spark-standalone/conf/
启动集群
./start-all.sh
启动历史服务
./start-history-server.sh