spark
文章平均质量分 65
spark
Wang Zhuoqun
我还能学!!!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spark调优笔记1
一、调优原因今年随着一部分原始日志的数据量快速增长,目前已经翻了3-4倍左右,导致目前系统凌晨的etl任务中有一部分spark任务的整体处理时长即将超出阈值,可能会造成不同任务之间的互相干扰。因而此处spark有待调优。而且临界新年,新年数据量势必大量增长,不想过年放假的时候处理故障。二、调优方案此处spark任务主体逻辑是,读取hive上的日志文件,过滤主题后经过一些系列的处理、计算,再写入的hdfs上,最后挂载到hive中。计算有一部分...原创 2022-02-13 22:39:12 · 863 阅读 · 0 评论 -
Spark源码之coalesce算子
1、问题背景总所周知,spark的rdd编程中有两个算子repartition和coalesce。公开的资料上定义为,两者都是对spark分区数进行调整的算子。repartition会经过shuffle,其实际上就是调用的coalesce(shuffle=true)。coalesce,默认shuffle=false,不会经过shuffle。当前仅针对coalesce算子考虑,我们看一下官方的定义:大概意思...原创 2022-02-13 22:30:14 · 5107 阅读 · 0 评论 -
水塘抽样算法(Spark RangePartitioner的抽样算法)
1、水塘抽样解决的问题对一个数量未知的样本,希望只经过一次遍历就完成随机抽样,即时间复杂度O(n)。因为样本数量未知,因此就不能通过random函数直接随机抽样。2、水塘抽样的逻辑希望在n个样本中随机抽取k个数据。即每个数据被抽取的概率为k/n。首先我们创建一个k个成员的数组out,用来存放预期抽出的样本。(1)当k>=n时,每一个样本被抽取的概率都为100%。因此都可以直接放入数组out。(2...原创 2022-01-17 19:29:24 · 3617 阅读 · 0 评论 -
内存不足时的大文件排序算法(spark shuffle的排序算法)
1、问题场景例如:当前磁盘2T,内存16G,文件大小500G。现在需要对500G的大文件进行排序,并存道另一个文件中。抽象:当前有包含10000行数的文件,再只能使用长度为1000的数组的前提下,对文件中的数据进行排序,并存道另一个文件中。2、问题分析首先,数据的总量大于了所能使用的内存数据结构的容量,所以肯定不能完全通过内存排序。因此需要采用一种分治的思想来实现全局排序。(1)数组总量10000,数组容量1000,所以...原创 2022-01-17 18:47:11 · 4009 阅读 · 1 评论 -
Spark资源分配
一、整体情况1、服务器资源5台datanode节点cpu:48 查看命令:cat /proc/cpuinfo | grep processor | wc -l内存:128G 查看命令:free -h2、yarn资源yarn.nodemanager.resource.cpu-vcores = 36yarn.nodemanager.resource.memory-mb = 70G注...原创 2022-01-15 15:14:40 · 2178 阅读 · 0 评论 -
Spark源码之Rpc网络系统及任务提交消息传递流程源码图
一、从netty角度分析首先我们都知道,spark1.6+之后整个rpc网络都是采用的netty实现。1、netty基本原理netty可以理解为客户端和服务端的通信。服务端的固定唯一的,客户端是随机多个的,客户端向服务端发送消息,服务端接受并处理消息。netty的客户端持有一个send方法,调用send方法就可以屏蔽网络上的实现将消息发送给服务端。netty的服务端会事先注册好一个或多个入站处理器,当有消息进入时。会经过入站处理器,一般来讲入站...原创 2022-01-15 15:10:08 · 1880 阅读 · 0 评论 -
Spark源码之存储体系简介及缓存cache源码流程图
一、Spark存储系统Spark存储系统,主要可以分为以下四个部分:块管理,块传输,磁盘存储,内存存储。1、块管理1.1 BlcokManagerMaster存在于driver端。在创建SparkEnv的时候创建。BlockManagerMaster主要用于对BlockManager进行统一的管理,主要负责发送消息。1.2 BlockManager即存在于driver端也存在于executor端。在创建Spa...原创 2022-01-13 20:17:47 · 590 阅读 · 0 评论 -
SparkConf源码简析
1、所有的配置存储在一个ConcurrentHashMap中,名为settings。2、Spark的参数配置有以下三种获取。源于系统参数中以spark为前缀的属性。(通过System.getProperties获取)使用SparkConf的API设置的。从其他SparkConf中克隆的。3、源于系统参数中以spark为前缀的属性。4、使用SparkConf的API设置的5、从其他SparkC...原创 2021-10-26 09:00:34 · 794 阅读 · 0 评论 -
spark-sql join原理
一、Hash Join场景:对于输入的两张小表进行单机的join运算。原理:两张表中相对小的一张表作为Hash表加载到内存中,另外一张表作为探测表,循环去Hash表中探测匹配。二、Broadcast Hash JoinHash Join在分布式场景下的一种实现。场景:对于输入的两张表,一张大表,一张小表(小于10M)原理:将小表广播分发到另一张大表所在的分区节点上,分别并发地与其上的分区记录进行has...原创 2021-10-26 08:38:40 · 434 阅读 · 0 评论
分享