文章目录
Spark环境搭建
我们选择目前企业中使用最多的稳定版Spark2.2.0
1、local本地模式-Spark初体验
- 安装
下载Spark安装包
下载地址:http://spark.apache.org/downloads.html
第一步:将此安装包上传到集群(rz
上传并解压)
- 解压重命名
//解压到的路径
cd /export/servers
tar spark-2.2.0-bin-2.6.0-cdh5.14.0.tgz
//mv spark-2.2.0-bin-2.6.0-cdh5.14.0 spark
//尽量使用拷贝cp
cp spark-2.2.0-bin-2.6.0-cdh5.14.0 spark
- 注意:
如果有权限问题,可以修改为root,方便学习时操作,实际中使用运维分配的用户和权限即可
chown -R root /export/servers/spark
chgrp -R root /export/servers/spark
- 解压目录说明:
bin 可执行脚本
conf 配置文件
data 示例程序使用数据
examples 示例程序
jars 依赖 jar 包
python pythonAPI
R R 语言 API
sbin 集群管理命令
yarn 整合yarn需要的文件
第二步:启动spark-shell
- 开箱即用
直接启动bin目录下的spark-shell:
./spark-shell
spark-shell说明
- 1.直接使用./spark-shell
表示使用local 模式启动,在本机启动一个SparkSubmit进程 - 2.还可指定参数 --master,如:
spark-shell –master local[N] 表示在本地模拟N个线程来运行当前任务
spark-shell --master local[*] 表示使用当前机器上所有可用的资源 - 3.不携带参数默认就是
spark-shell --master local[*] - 4.后续还可以使用–master指定集群地址,表示把任务提交到集群上运行,如
./spark-shell --master spark://node01:7077
- 5.退出spark-shell
使用:quit
注意:启动./spark-shell命令报错时解决方法
https://www.cnblogs.com/hackerer/p/12549005.html
第三步:初体验-读取本地文件
集群中准备数据
vim /root/words.txt
hello me you her
hello you her
hello her
hello
spark-shell
进入到命令行后程序后,输入下面的代码
//读取本地文件 数据计算
val textFile = sc.textFile("file:///root/words.txt")
//flatMap
val counts = textFile.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_ + _)
counts.collect//收集结果
// Array[(String, Int)] = Array((you,2), (hello,4), (me,1), (her,3))
第四步:初体验-读取HDFS文件
准备数据
- 上传文件到hdfs
hadoop fs -put /root/words.txt /wordcount/input/words.txt
- 目录如果不存在可以创建
hadoop fs -mkdir -p /wordcount/input
- 结束后可以删除测试文件夹
hadoop fs -rm -r /wordcount
在Spark的shell窗口中输入
//读取hdfs集群数据计算
val textFile = sc.textFile("hdfs://node01:8020/wordcount/input/words.txt")
val counts = textFile.flatMap(_.split(" ")).map((_,