Spark入门

本文详细介绍了Spark的四种运行模式:Local模式、Standalone模式、YARN模式和Mesos模式,包括安装、配置、运行流程及端口号总结。通过实例演示了WordCount案例在不同模式下的操作,为Spark集群的部署提供了全面指导。
摘要由CSDN通过智能技术生成

Spark是一种基于内存的快速、通用、可扩展的大数据分析计算引擎

一、Spark运行模式

部署Spark集群大体上分为两种模式:单机模式与集群模式

大多数分布式框架都支持单机模式,方便开发者调试框架的运行环境。但是在生产环境中,并不会使用单机模式。因此,后续直接按照集群模式部署Spark集群。

下面详细列举了Spark目前支持的部署模式。

1)Local模式:在本地部署单个Spark服务

2)Standalone模式:Spark自带的任务调度模式。(国内常用)

3)YARN模式:Spark使用Hadoop的YARN组件进行资源与任务调度。(国内常用)

4)Mesos模式:Spark使用Mesos平台进行资源与任务的调度。

Spark安装地址

1)官网地址:Apache Spark™ - Unified Engine for large-scale data analytics

2)文档查看地址:Overview - Spark 2.1.1 Documentation

3)下载地址:Downloads | Apache Spark

链接:https://pan.baidu.com/s/1S2yN1xmMUupYZTlKIq2QZw?pwd=wc7q 
提取码:wc7q

1.Local模式

Local模式就是运行在一台计算机上的模式,通常就是用于在本机上练手和测试。

1.安装使用

1)上传并解压Spark安装包

tar -zxvf spark-2.1.1-bin-hadoop2.7.tgz -C /opt/module/
mv spark-2.1.1-bin-hadoop2.7 spark-local

2)官方求PI案例

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master local[2] \
./examples/jars/spark-examples_2.11-2.1.1.jar \
10

--class:表示要执行程序的主类;

--master local[2]

(1)local: 没有指定线程数,则所有计算都运行在一个线程当中,没有任何并行计算

(2)local[K]:指定使用K个Core来运行计算,比如local[2]就是运行2个Core来执行

(3)local[*]: 自动帮你按照CPU最多核来设置线程数。比如CPU有4核,Spark帮你自动设置4个线程计算。

spark-examples_2.11-2.1.1.jar:要运行的程序;

10:要运行程序的输入参数(计算圆周率π的次数,计算次数越多,准确率越高);

3)结果展示

利用蒙特·卡罗算法求PI

2.官方WordCount案例

1)需求:读取多个输入文件,统计每个单词出现的总次数。

2)需求分析:

读取外部文件->
对读取到的内容进行切割并进行扁平化处理->
对数据集中的内容进行结构转换->
对相同的单词key的value进行聚合->
将执行结果进行收集->

3)代码实现:

(1)准备文件

mkdir input

在input下创建2个文件1.txt和2.txt,并输入以下内容

(2)启动spark-shell

spark-local]$ bin/spark-shell
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
22/04/16 13:03:49 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
22/04/16 13:03:53 WARN ObjectStore: Failed to get database global_temp, returning NoSuchObjectException
Spark context Web UI available at http://192.168.58.102:4040
Spark context available as 'sc' (master = local[*], app id = local-1650085429923).
Spark session available as 'spark'.
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 2.1.1
      /_/
         
Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_212)
Type in expressions to have them evaluated.
Type :help for more information.

scala>

注意:sc是SparkCore程序的入口;spark是SparkSQL程序入口;master = local[*]表示本地模式运行。

(3)再开启一个hadoop102远程连接窗口,发现了一个SparkSubmit进程

运行任务方式说明:spark-submit,是将jar上传到集群,执行Spark任务;spark-shell,相当于命令行工具,本身也是一个Application。

(4)登录hadoop102:4040查看程序运行情况(注意:spark-shell窗口关闭掉,则hadoop102:4040页面关闭)

 说明:本地模式下,默认的调度器为FIFO。

(5)运行WordCount程序

sc.textFile("/opt/module/spark-local/input").flatMap(_.split(" 
")).map((_,1)).reduceByKey(_+_).collect

res2: Array[(String, Int)] = Array((hive,1), (zookeeper,1), (hello,7), (kafka,1), (tez,1), (spark,1), (hapdoop,1), (kafaka,1))


注意:只有collect开始执行时,才会加载数据。

 

3.集群角色 

1.Master和Worker

 2.Driver和Executor

3.通用运行流程

总结:Master和Worker是Spark的守护进程,即Spark在特定模式下正常运行所必须的进程。Driver和Executor是临时程序,当有具体任务提交到Spark集群才会开启的程序。

2.Standalone

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值