本章介绍在各种运行模式如何运行Spark应用.
首先需要下载Spark
下载Spark
1.官网地址 http://spark.apache.org/
2.文档查看地址 https://spark.apache.org/docs/2.1.1/
3.下载地址 https://archive.apache.org/dist/spark/
目前最新版本为2.4.4,考虑到国内企业使用情况我们仍然选择 2.1.1 来学习. 不过2.x.x 的版本差别都不大.
Local模式
Local 模式就是指的只在一台计算机上来运行 Spark.
通常用于测试的目的来使用Local模式, 实际的生产环境中不会使用 Local 模式
安装
解压Spark安装包
把安装包上传到/opt/software/下,并解压到/opt/module/目录下
tar -zxvf spark-2.1.1-bin-hadoop2.7.tgz -C /opt/module
然后复制刚刚解压得到的目录, 并命名为spark
mv spark-2.1.1-bin-hadoop2.7 spark
使用 ls -l 查看spark目录
目录说明
启动Spark-shell
直接执行bin目录下的spark-shell:
./spark-shell
可以看到启动成功
spark-shell说明<后续仍会提到>
直接使用./spark-shell
表示使用local 模式启动,在本机启动一个SparkSubmit进程
还可指定参数 --master,如:
spark-shell --master local[N] 表示在本地模拟N个线程来运行当前任务
spark-shell --master local[*] 表示使用当前机器上所有可用的资源
不携带参数默认就是
spark-shell --master local[*]
后续还可以使用–master指定集群地址,表示把任务提交到集群上运行,如
./spark-shell --master spark://node01:7077,node02:7077
退出spark-shell
使用 :quit
spark-shell 初体验
创建2个文本文件
mkdir input
cd input
touch 1.txt
touch 2.txt
分别在1.txt 和 2.txt 内输入一些单词.
打开Spark-shell
bin/spark-shell
运行wordcount程序
sc.textFile("file:/opt/module/spark/input").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect
结果如下
Spark 通用运行简易流程
wordcount数据流程分析:
1. textFile("input"):读取本地文件input文件夹数据;
2. flatMap(_.split(" ")):压平操作,按照空格分割符将一行数据映射成一个个单词;
3. map((_,1)):对每一个元素操作,将单词映射为元组;
4. reduceByKey(_+_):按照key将值进行聚合,相加;
5. collect:将数据收集到Driver端展示。