Spark知识点

Spark知识点,第1张

Spark知识点 Spark

Spark是用于大规模数据处理的统一分析引擎

RDD:d性分布式数据集,认为是列表list

Spark框架将要处理的数据封装到集合RDD中,调用RDD中函数处理数据

RDD数据可以放到内存中,内存不足可以放到磁盘中

Spark四大特点:
  • 运行速度快
  • 易用性好
  • 通用性强
  • 随处运行
Spark处理数据与mapreduce处理数据相比,有如下两个不同点:
  • Spark处理数据时,可以将中间处理结果数据存储到内存中,而mapreduce是将中间处理结果数据存储到磁盘中
  • Spark job调度以DAG方式,并且每个任务Task执行以线程方式执行,并不像mapreduce以进程方式执行
Spark的spark sql 和 spark Streaming模块:
  • spark sql:spark用来 *** 作结构化数据的程序包,通过Spark sql,可以使用sql *** 作数据
  • spark Streaming:spark提供的对实时数据进行流式分析计算的组件,提供了用来 *** 作数据流的API
Spark on yarn:

将Spark任务的pyspark文件,进过Py4J转换,提交到Yarn的JVM中去运行

Spark集群角色:
  • Drivere:是一个JVM Porcess 进程,编写的Spark应用程序就运行在Driver上,由Driver进程执行;
  • Master(ResourceManager):是一个JVMProcess进程,主要负责资源的调度和分配,并进行集群的监控等职责;
  • Worker(NodeManager):是一个JVM Process进程,一个Worker运行在集群中的一台服务器上,主要负责两个职责,一个是用自己的内存存储RDD的某个或某些partition,另一个是启动其他进程和线程,对Rdd上的partition进行并行处理和计算
  • Executor:是一个JVM process 进程,一个Worker上可以运行多个Executor,Executor通过启动多个线程(task)来执行对RDD的partition进行并行计算,也就是执行我们对定义的,例如map、flatMap、reduce等算子 *** 作。
udf和udtf和udaf的区别:

udf:一对一的关系,输入一个值经过函数以后输出一个值

udaf:多对一的关系,输入多个值输出一个值,通常与groupBy联合使用

udtf:一对多的关系,输入一个值输出多个值,用户自定义生成函数,有点像flatMap

reduceBykey和groupBykey的区别:

reduceBykey在map阶段就聚合了,把聚合后的数据再通过shiffe阶段分发给reduce阶段,然后在reduce阶段再聚合,而groupBykey把所有数据通过shiffe分发给reduce阶段,再有reduece阶段聚合

RDD:

RDD是d性分布式数据集,可以看成一个列表对象

RDD分区:

分区数量决定了并行的数量

分区数量=运行任务的可用的cores(默认一个cores(核心),能处理一个任务)

指定分区数量:val rdd = sc.makeRDD(arr,分区的数值)

RDD算子
  • 转换算子:根据原有的RDD转换为一个新的RDD
    • map()
    • faltmap()
    • groupByKey()
    • reduceBykey()
  • 动作算子:对RDD *** 作后把结果返回给driver
    • reduce()
    • collect()
    • count()
    • first()

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5665382.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存