栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Spark知识点

Spark知识点

Spark

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

RDD:弹性分布式数据集,认为是列表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是弹性分布式数据集,可以看成一个列表对象

RDD分区:

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

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

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

RDD算子:
  • 转换算子:根据原有的RDD转换为一个新的RDD
    • map()
    • faltmap()
    • groupByKey()
    • reduceBykey()
  • 动作算子:对RDD操作后把结果返回给driver
    • reduce()
    • collect()
    • count()
    • first()
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/663429.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号