实验:安装和配置Spark
为了学习Spark,最好在我们自己的计算机上本地安装Spark。通过这种方式,我们可以轻松地尝试Spark特性或使用小型数据集测试数据处理逻辑。
Spark是用Scala编程语言编写的,在安装Spark之前,确保已经在自己的计算机上安装了Java(JDK 8)。
安装Spark
要在自己的计算机上本地安装Spark,请按以下步骤操作。
1)下载预先打包的二进制文件到"~/software"目录下,它包含运行Spark所需的JAR文件。下载
2)将其解压缩到"~/bigdata/"目录下,并改名为spark-2.4.5。执行命令如下:
$ cd ~/bigdata $ tar -zxvf ~/software/spark-2.4.5-bin-hadoop2.7.tgz $ mv spark-2.4.5-bin-hadoop2.7 spark-2.4.5
3)配置环境变量。打开"/etc/profile"文件:
$ cd $ sudo nano /etc/profile
在文件最后,添加如下内容:
export SPARK_HOME=/home/hduser/bigdata/spark-2.4.5 export PATH=$SPARK_HOME/bin:$PATH
保存文件并关闭。
4)执行/etc/profile文件使得配置生效:
$ source /etc/profile
查看解压缩后的Spark安装目录,会发现其中包含多个目录:
其中几个主要目录作用如下表所示:
配置Spark
Spark的配置文件位于conf目录下。接下来,我们对Spark进行配置,包括其运行环境和集群配置参数。
(1)从模板文件复制一份spark-env.sh。执行以下命令:
$ cd ~/spark-2.4.5/conf $ cp spark-env.sh.template spark-env.sh
(2)编辑spark-env.sh。执行以下命令:
$ nano spark-env.sh
在打开的"spark-env.sh"文件末尾,添加以下内容,并保存:
export JAVA_HOME=/usr/local/jdk1.8.0_251 export SPARK_DIST_CLASSPATH=$(/home/hduser/dt/hadoop-2.7.3/bin/hadoop classpath)
测试Spark
配置完成后就可以直接使用,不需要像Hadoop运行启动命令。
通过运行Spark自带的示例,验证Spark是否安装成功。
本地模式下:
$ ./bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master local[*] \ ./examples/jars/spark-examples_2.11-2.4.5.jar
执行过程如下所示:
或者,也可以standalone模式(需要先执行./sbin/start-all.sh启动Spark集群):
$ cd ~/bigdata/spark-2.4.5 $ ./sbin/start-all.sh $ ./bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master spark://cda:7077 \ ./examples/jars/spark-examples_2.11-2.4.5.jar
执行过程如下所示:
Ch01 Spark架构与集群搭建
- Spark概述
- Spark技术栈
- Spark核心组件和架构
- Spark程序部署模式
- Spark资源调度策略
- 实验:安装和配置Spark
- 实验:使用Spark Shell
- 实验:使用spark-submit提交Spark作业
- 在Mac上安装Apache Spark
- 在Windows上安装Apache Spark
- 设置Spark on YARN
Ch02 开发和部署Spark程序
- 使用IntelliJ IDEA开发Spark SBT应用程序
- 使用IntelliJ IDEA开发Spark Maven应用程序
- 使用Zeppelin进行交互式分析
Ch03 Spark核心编程
- 理解RDD及RDD编程模型
- 创建RDD
- RDD上的Transformation和Action
- RDD Transformation操作
- RDD的集合运算
- RDD Action操作
- RDD上的描述性统计操作
- Key-Value Pair RDD
- 数据分区和自定义数据分区
- 使用共享变量-广播变量
- 使用共享变量-累加器
- Spark RDD编程案例
- RDD案例_电影评分数据集分析
- 通过Spark Web UI理解Spark程序执行
- 示例:读取多个文本文件到单个RDD中
- 示例:加载CSV文件到RDD中
Ch04 Spark SQL编程
- Spark SQL编程模型
- 理解SparkSession
- 构造DataFrame-简单创建方式
- 构造DataFrame-从RDD创建
- 构造DataFrame-加载外部数据源
- 操作DataFrame
- 存储DataFrame
- 临时视图与执行SQL查询
- Spark SQL编程案例1_单词计数
- Spark SQL编程案例2_电商用户评论数据集分析
- Spark SQL编程案例3_航班延误数据集分析
- 示例:使用Spark查找中位数和分位数
- 示例:读写XML文件到DataFrame
- 示例:如何pivot和unpivot DataFrame
Ch05 Spark SQL编程(高级)
- Spark SQL内置函数
- Spark SQL聚合函数
- Spark SQL高级分析函数
- 用户自定义函数(UDF)
- Spark SQL编程案例1_电商数据分析
- Spark SQL编程案例2_MovieLens数据集分析
- 案例_Spark SQL实现数据ETL到Hive ODS
- 案例_银行客户数据分析
- 示例_数据缺失值处理
- 示例_数据整合、清洗与转换
- Spark DataFrame行转列实现
- Spark SQL实现分区表的分区覆盖
- Spark读写Hive中文列名乱码问题
- 案例_统计连续三周登录的用户数
Ch07 Spark结构化流处理
- Spark结构化流编程模型
- Spark结构化流核心概念
- 使用数据源_1
- 使用数据源_2_kafka
- 结构化流DataFrame操作
- 使用数据接收器Data Sink
ch08 Spark结构化流(高级)
- 事件时间和窗口聚合
- 使用水印
- 复杂模式识别-状态处理
- 处理重复流数据
- 案例_运输公司车辆超速实时监测
- 案例_股票交易实时仪表盘程序
综合项目实训
- 某招聘网站招聘大数据分析案例