Spark的原理以及使用

一、spark集群的常见操作

启动spark集群

需要在各节点上首先启动zookeeper

zkServer.sh start

1、在主节点node1上spark目录下的sbin目录

2、执行./start-all.sh

3、使用jps和8080端口可以检查集群是否启动成功 http://node1:8080/

node1是Master,node1/node2/node3启动Worker进程

4、进入spark-shell查看是否正常

二、在Spark集群上提交应用

1、本地执行

val conf = new SparkConf().setAppName("TopN").setMaster("local");

val sc = new SparkContext(conf);

2、Idea提交集群执行

val conf = new SparkConf().setAppName("WordCount")

.setMaster("spark://node1:7077");

val sc = new SparkContext(conf);

sc.addJar("c:\\spark-wordcount-scala.jar"); // spark-submmit 集群上提交时,需要注释该行

val linesRdd = sc.textFile("hdfs://node1:9000/test/README.txt");

3、集群上执行

(1)在spark上执行

打包jar,只包含spark程序类,不要包含所有依赖类

#spark自己管理资源 Master:8080

#集群的各个节点都需要能访问到jar

各个节点都存在 /usr/local/spark-wordcount-scala.jar

/usr/local/spark/bin/spark-submit \

--class com.aaa.spark.WordCountSpark \

--master spark://node10:7077 \

--driver-memory 5a00m \

--executor-memory 500m \

--executor-cores 1 \

/usr/local/spark-wordcount-scala.jar

(2)、在yarn上执行

#yarn调度资源 RM:8088

/usr/local/spark/bin/spark-submit \

--class com.aaa.spark.WordCount \

--master yarn-cluster/yarn-client \

--num-executors 3 \

--driver-memory 500m \

--executor-memory 500m \

--executor-cores 3 \

/usr/local/spark/spark.jar

三、Spark集群的原理

1、spark的基本组件

Driver

Master

worker

Executor

Task

spark的每个CPU可创建2到4个分区

2、Spark的四种RDD操作

(1)transformation:转换,根据已有的RDD创建一个新的RDD

map

filter

flatMap

spark:groupByKey

spark:reduceByKey

sortByKey

join

cogroup

(2)action:行动,对RDD进行最后的操作

reduce

collect

count:元素的总个数

take(n)

top

saveAsTextFile

countByKey:各个Key的value的次数,Map[Key,次数]

countByValue:各个元素分别出现的次数,Map[元素,次数]

foreach 存储RDD到文件或数据库中,将操作结果转换为集合

action执行会自动执行之前的所有transformation操作

(3)集合类操作

creation:创建,两种方式创建RDD,一是集合,二是外部文件

(4)控制类

control:控制,RDD的持久化,放入缓存或磁盘

3、DAGScheduler划分stage算法

执行Action操作时,对该RDD创建一个stage

往前推,遇到宽依赖,再创建一个stage

相关推荐
GIS数据转换器1 小时前
城市基础设施安全运行监管平台
大数据·运维·人工智能·物联网·安全·无人机·1024程序员节
老葱头蒸鸡1 小时前
(3)Kafka生产者分区策略、ISR、ACK、一致性语义
分布式·kafka
搞科研的小刘选手1 小时前
【云计算专题会议】第二届云计算与大数据国际学术会议(ICCBD 2025)
大数据·人工智能·物联网·5g·云计算·6g·智能通信
电商软件开发 小银1 小时前
微信生态新机遇:视频号推客模式助力商家突围
大数据·人工智能·twitter·系统开发·实体店转型·数字化经济·视频号推客模式
毕设源码-赖学姐2 小时前
【开题答辩全过程】以基于Hadoop的电商数据分析系统为例,包含答辩的问题和答案
大数据·hadoop·分布式·1024程序员节
汤姆yu2 小时前
基于python大数据技术的医疗数据分析与研究
大数据·1024程序员节·医疗数据分析·医疗预测
ink@re3 小时前
消息队列集群——RabbitMQ
分布式·rabbitmq·1024程序员节
小马哥编程3 小时前
【软考架构】架构风格:RAG知识库是属于软件八大架构风格中的哪一个,黑板架构风格 ?规则系统体系风格?
大数据·计算机网络·架构·1024程序员节
萤丰信息3 小时前
慧园区:科技赋能下的城市空间新范式
大数据·科技·安全·重构·智慧城市·智慧园区
数据科学作家4 小时前
如何入门python机器学习?金融从业人员如何快速学习Python、机器学习?机器学习、数据科学如何进阶成为大神?
大数据·开发语言·人工智能·python·机器学习·数据分析·统计分析