第一个spark程序(wordcount)

一.spark的四种部署模式

1.本地模式(local)

不指定master,或者–master local
local:只是用一个cores local[N]:使用N个cores local[*]:使用所有的cores

2.standalone 集群模式 spark框架自带的模式

–master standalone的master地址
eg: –master spark://linux01:7077

3.yarn集群模式

把spark任务运行在yarn平台
–master yarn

4.mesos集群模式

把spark任务运行在mesos平台
–master mesos

以standalone集群模式为主

二.spark集群启动

前提:在linux虚拟机上安装部署好spark集群,设置好环境变量

1.单独启动(停止)master或worker

start-master.sh stop-master.sh
start-slaves.sh stop-slaves.sh

2.一键启动(停止)spark集群

start-all.sh
stop-all.sh

三.运行Spark程序

1.两种方式:

在客户端提交任务,客户端可以在任意地方,只要他连接了spark集群
1)spark-shell (其实它也调用了spark-submit)
spark的交互式命令行,多用于本地测试程序
默认是local模式,在本地使用多线程来模拟分布式程序。
eg: spark-shell –master spark://linux01:7077

2)spark-submit
用于提交spark程序到spark集群中运行。根据jar包提交任务,是工作中的首选。

格式:
spark-submit –master 任务提交的模式 –class 程序的main方法所在的类 jar包 main方法的参数列表

四.第一个spark程序(wordcount)

1.读取本地文件
这里写图片描述
如果运行的模式是集群模式,那么不能读取客户端的本地文件,因为最终任务是运行在spark集群中的,spark的各个节点上不一定有客户端的本地文件。

如果以local模式运行,可以读取客户端本地文件。

2.读取hdfs上的文件

第一个spark程序(wordcount)_第1张图片

将结果保存到hdfs上:
这里写图片描述
通过浏览器查看结果:
第一个spark程序(wordcount)_第2张图片
注:spark 中的算子,是lazy执行的。
spark中的算子是lazy执行的,然后当遇到action类的算子的时候,才会开始执行。
reduceByKey 是一个shuffle类的算子.

textFile flatMap map reduceByKey 转换类的算子 transformation
action类的算子: collect,触发任务的执行 saveAsTextFile

rdd上的算子分为两类,
转换:transformation 每次会生成一个新的RDD
行动: action 不会生成rdd,得到相关的结果数据,存储数据。

五.利用IDEA开发工具来编写spark程序(以wordcount为例)

1.创建maven工程 且导入了Scala,Java,Spark,Hadoop等依赖包
2.写程序
第一个spark程序(wordcount)_第3张图片
3.打jar包
第一个spark程序(wordcount)_第4张图片
结果
第一个spark程序(wordcount)_第5张图片
4.上传jar包到Linux上
执行:
这里写图片描述
5.查看结果:
第一个spark程序(wordcount)_第6张图片

六.在IDEA上以local模式执行spark程序

必须要有的两个参数:
.setMaster(“local”)
.setAppName(类名.getClass.getSimpleName)

第一个spark程序(wordcount)_第7张图片
**附:
7077的端口是Master 和worker之间的通信端口
8080 是Master的web访问端口 默认的**

你可能感兴趣的:(spark笔记)