笔记十六:Spark基础_02

Spark代码开发

步骤

#1.构建Spark环境

#2.数据输入(告诉Spark读取哪里的数据)

#3.数据处理(对读取的数据做处理)

#4.数据输出(对计算后的结果数据做保存,一般是外部存储介质)

#5.停止Spark任务

wordcount入门案例

#源数据
hadoop spark hive
hive hadoop spark spark
hadoop spark flink
hive hadoop spark spark
flink hbase hello
spark zookeeper flink

使用pyspark实现wordcount词频统计

PyCharm代码实现

import re

from pyspark import SparkConf, SparkContext
#1.构建环境
conf = SparkConf().setAppName("REWordCount").setMaster("local[1]")
sc = SparkContext(conf=conf)

#2.读取数据
#file://文件系统的协议
#hdfs协议:hdfs://node1:8020
#input_rdd = sc.textFile("file:///root/project/pyspark_base40/day02/data/word_re.txt")
input_rdd = sc.textFile("hdfs://node1:8020/spark/wordcount/input/word_re.txt")

#3.数据处理
# \s+正则处理多余空格
result_rdd = input_rdd.flatMap(lambda line:re.split("\\s+",line))\
    .map(lambda word:(word,1))\
    .reduceByKey(lambda x,y: x + y)

#4.数据输出
#4.1 打印输出
result_rdd.foreach(lambda x:print(x))
#4.2 保存结果到HDFS
result_rdd.saveAsTextFile("hdfs://node1:8020/spark/wordcount/output")

#5.停止环境
sc.stop()

结果:

('hadoop',4)
('spark',7)
('',3)
('hive',3)
('flink',3)
('hbase',1)
('hello',1)
('zookeeper',1)

Standalone独立模式

Standalone模式,就是Spark实现了一套自己的分布式资源管理和任务调度。

 

Master主节点:管理节点

1) 接受客户端请求

2) 管理从节点

3) 资源管理和任务调度


Worker从节点:计算节点

a.运行计算进程Executor给每个计算进程分配一定的资源

b.Task线程计算任务就运行在Executor中


计算进程:Executor

为任务的计算提供资源

调度进程:Driver

对任务进行解析、调度、监控

 端口

模式

client模式

Driver在客户端机器上启动


cluster模式

Driver在集群内的某一个节点启动

 

spark-submit脚本参数

master参数
--master:用于指定程序的运行的模式(Local、Standalone、YARN、Mesos、K8s)
--deploy-mode:决定了Driver进程运行的位置(两种模式:client【默认】、cluster)


Driver参数
driver-memory参数
--driver-memory:指定Driver内存大小,默认1g
--driver-cores:指定Driver CPU的核数,默认1核
--supervise:保证Driver进程安全,故障以后会自动重启,只能用于Standalone模式的cluster模式

Yarn模式

把Spark程序提交到Yarn上来运行,使用Yarn的分布式资源管理给Spark程序分配资源

Yarn执行流程

1)客户端申请提交运行MR程序

2)ResourceManager验证是否合法,如果合法,随机选择一台NodeManager启动AppMaster

3)AppMaster根据任务分配向ResourceManager申请Task运行的Container资源

4)ResourceManager根据资源情况分配对应的Container信息返回给AppMaster

5)AppMaster根据ResourceManager分配的Container信息,
将Container信息分发给对应的NodeManager

6)NodeManager收到Container信息,启动MapTask和ReduceTask运行

7)每个Task将自己运行的信息汇报给AppMaster,
AppMaster监控每个Task的状态,直到Task结束

8)AppMaster等到所有Task结束返回运行结果

 模式

client模式

Driver在客户端机器上启动


cluster模式

AppMaster和Driver合二为一,行在集群内部的某个节点上

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值