Spark01
-
-
- [一. Spark概述](#一. Spark概述)
- [二. Spark环境部署 - Local](#二. Spark环境部署 - Local)
- [三. Spark环境部署 - Standalone](#三. Spark环境部署 - Standalone)
-
-
- [1. Standalone集群概述](#1. Standalone集群概述)
- [2. Standalone环境部署](#2. Standalone环境部署)
- [3. 测试环境](#3. 测试环境)
-
-
一. Spark概述
二. Spark环境部署 - Local
1. 上传压缩包
2. 解压缩
3. 修改用户权限 - hadoop
4. 构建软链接
5.文件目录
6. 启动spark-shell
7. 测试
scala
val textfile=sc.textFile("file:///home/hadoop/words.txt");
// val scala的声明,声明一个不可变的变量
// sc: SparkContext对象, 是Spark程序的入口,提供了连接Spark集群的方法,并且可以创建RDDs(弹性分布式数据集)
//textFile():SC对象提供的方法, 用来读取文本文件, 会将文件中的内容作为RDD[String]返回
/*textFile =
RDD[e are words]
RDD[e are words]
RDD[e are words]*/
val counts = textfile.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_)
// flatMap(): 转换函数, 接收一个函数作为参数, 对RDD中的每个元素都应用这个函数
// 参数: '_.split(" ")' 使用空格作为分隔符将每行文本拆分成单词数组 [e are words e are words e are words]
// map(): 转换函数, 接收一个函数作为参数, 对RDD中的每个元素都应用这个函数
// (_,1): 匿名函数,
// reduceByKey(_+_)
//结果:
//Array[(String, Int)] = Array((are,2), (english,1), (e,1), (in,1), (more,1), (words,3), (these,1))
三. Spark环境部署 - Standalone
1. Standalone集群概述
2. Standalone环境部署
1. 集群规划
node1: Master /Worker
node2 : Worker
node3 : Worker
2. 配置workers
cd /export/server/spark/conf/workers
改名称mv workers.template workers
vim workders
内容node1
node2
node3
3. 配置Master - spark-env.sh
cd /export/server/conf/spark-env.sh
改名mv spark-env.sh.template spark-env.sh
vim spark-env.sh
内容
shell
## 设置JAVA安装目录
# 1. 改名
mv spark-env.sh.template spark-env.sh
# 2. 编辑spark-env.sh, 在底部追加如下内容
## 设置JAVA安装目录
JAVA_HOME=/export/server/jdk
## HADOOP软件配置文件目录,读取HDFS上文件和运行YARN集群
HADOOP_CONF_DIR=/export/server/hadoop/etc/hadoop
YARN_CONF_DIR=/export/server/hadoop/etc/hadoop
## 指定spark老大Master的IP和提交任务的通信端口
# 告知Spark的master运行在哪个机器上
export SPARK_MASTER_HOST=node1
# 告知sparkmaster的通讯端口
export SPARK_MASTER_PORT=7077
# 告知spark master的 webui端口
SPARK_MASTER_WEBUI_PORT=8080
## 设置历史服务器
# 配置的意思是 将spark程序运行的历史日志 存到hdfs的/sparklog文件夹中
SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://node1:8020/sparklog/ -Dspark.history.fs.cleaner.enabled=true"
# 注意, 上面的配置的路径 要根据你自己机器实际的路径来写
在HDFS下创建历史运行记录文件sparklog
hadoop fs -mkdir /sparklog
hadoop fs -ls /
hadoop fs -chmod 777 /sparklog
4.分发
scp -r spark-3.2.0-bin-hadoop3.2/ hadoop@node2:
pwd
scp -r spark-3.2.0-bin-hadoop3.2/ hadoop@node3:
pwd
5. 构建软连接
node2: ln -s /export/server/spark-3.2.0-bin-hadoop3.2/ spark
node3: ln -s /export/server/spark-3.2.0-bin-hadoop3.2/ spark
3. 测试环境
1. 启动Master进程
集群的启动和停止
在主节点上启动spark集群
/export/server/spark/sbin/start-all.sh
在主节点上停止spark集群
/export/server/spark/sbin/stop-all.sh
在主节点上单独启动和停止master
start-master.sh
stop-master.sh
2. 启动spark-shell