
Spark
文章平均质量分 90
Relian哈哈
分享知识和分享苹果是不一样的,苹果会越分越少,而知识并不会因为分享而减少,知识的分享更能激荡出不一样的火花
展开
-
Spark中常用的聚合算子说明及使用
spark常用聚合算子groupByKey、reduceByKey、aggregateByKey、foldByKey、combineByKey的基本使用及区别原创 2022-12-02 02:07:06 · 2516 阅读 · 0 评论 -
什么是shuffle?shuffle的原理及过程
首先,我们给 Shuffle 下了一个明确的定义,在分布式计算场景中,Shuffle 指的是集群范围内跨节点、跨进程的数据分发。我们在最开始提到,Shuffle 的计算会消耗所有类型的硬件资源。具体来说,Shuffle 中的哈希与排序操作会大量消耗 CPU,而 Shuffle Write 生成中间文件的过程,会消耗宝贵的内存资源与磁盘 I/O,最后,Shuffle Read 阶段的数据拉取会引入大量的网络 I/O。不难发现,Shuffle 是资源密集型计算,因此理解 Shuffle 对开发者来说至关重要。原创 2022-11-15 22:20:23 · 32503 阅读 · 1 评论 -
Spark转换、执行、shuffle等常用算子归类
map、mapPartitions、mapPartitionsWithIndexfilterflatMapunion、intersection、joincogroup、cartesiancoalescerepartition、repartitionAndSortWithinPartitions groupByKey、sortByKeyreduceByKey、aggregateByKeycollect、first、taketakeSample、takeOrderedsaveAsTextFile、sav原创 2022-11-09 00:31:09 · 704 阅读 · 0 评论 -
Spark调度核心组件之三剑客
DAGScheduler核心职责,是把计算图 DAG 拆分为执行阶段 Stages,Stages 指的是不同的运行阶段,同时还要负责把 Stages 转化为任务集合 TaskSets,也就是把“建筑图纸”转化成可执行、可操作的“建筑项目”。以 Actions 算子为起点,从后向前回溯 DAG,以 Shuffle 操作为边界去划分 Stages。原创 2022-11-06 23:51:29 · 1179 阅读 · 0 评论 -
如何处理Spark数据倾斜
一、什么是数据倾斜在分布式集群计算中,数据计算时候数据在各个节点分布不均衡,某一个或几个节点集中80%数据,而其它节点集中20%甚至更少数据,出现了数据计算负载不均衡的现象。数据倾斜在MR编程模型中是十分常见的,用最通俗的话来讲,数据倾斜就是大量的相同key被分配到一个partition里,而其它partition被分配了少量的数据。这时候我们就认为是数据倾斜了二、数据倾斜的影响造成了“少数人累死,多数人闲死”的情况,这种情况是我们不能接受的,这也违背了分布式计算的初衷。集群中一个或几个节点原创 2022-04-04 00:22:45 · 8204 阅读 · 0 评论 -
Spark核心概念释义及基本运行流程
一个application包括driver program和executors,一个application应用可以有多个job组成,一个action算子对应一个job,一般而言,程序中有几个action算子就会产生几个job。一个job可以由多个stage组成,一个stage对应多个task,task由dirver发送到各个executor,task运行在executor中,exector以并行的方式执行task。每个Executor独占一个Container原创 2022-03-27 23:06:03 · 4378 阅读 · 0 评论 -
Spark中累加器的应用及场景
一、什么是累加器累加器(Accumulators)与广播变量(Broadcast Variables)共同作为Spark提供的两大共享变量,主要用于跨集群的数据节点之间的数据共享,突破数据在集群各个executor不能共享问题。而累加器主要定义在driver节点,在executor节点进行操作,最后在driver节点聚合结果做进一步的处理。二、常见的累加器Spark提供了三种常见的累加器,分别是LongAccumulator(参数支持Integer、Long)、DoubleAccumulat原创 2022-03-20 01:29:20 · 4722 阅读 · 0 评论 -
记一次Spark引擎执行Sql超时优化
前几天用spark引擎执行了一个较大的sql,涉及的表和数据量都不少,不同时间段执行了几次都超时,经过上网及分析,尝试解决了此问题,使用spark引擎测试几次大概都在半个小时左右完成,不再出现超时现象一、问题现象摘抄部分现场日志如下:2022-02-01 13:02:12 INFO 22/02/01 13:02:12 [dag-scheduler-event-loop] INFO DAGScheduler: ShuffleMapStage 28 (run at ThreadPoolExecuto原创 2022-02-22 22:22:10 · 7119 阅读 · 0 评论 -
Yarn-NodeManager堆内存不足导致Container被杀
一、问题再现由于项目需要,采购电信天翼云,由于是新搭建的集群,在yarn上跑Spark任务时,每个几个小时或者半天出现节点丢失(Lost Nodes),访问http://cloudera01:8088,如下图,可以看到2个节点和集群失去了联系二、问题排查1、登录cm管理界面首先登录cm管理界面,去查看yarn的运行状况,看到2个NodeManager运行不良,点击不良链接...原创 2019-04-10 22:26:42 · 12719 阅读 · 4 评论 -
Spark常用算子的区别
1、map&flatMap要输入的源文件word.txt如下spark hbaseslorhive kylin flinkmap(func) map函数会对每一条输入进行指定的操作,然后为每一条输入返回一个对象;map返回的数据对象的个数和原来的输入数据是相同的val lineRdd = sc.textFile("./word.txt");val mapRd...原创 2019-01-18 00:03:30 · 646 阅读 · 0 评论 -
Spark中的广播变量与累加器
Spark两种共享变量:广播变量(broadcast variable)与累加器(accumulator),广播变量常用来高效分发较大的对象,而累加器用来对信息进行聚合。共享变量出现的原因:通常在向 Spark 传递函数时,比如使用map或reduce传条件或变量时,在driver端定义变量,但是集群中运行的每个任务都会得到这些变量的一份新的副本,更新这些副本的值driver端的对应变量并不...原创 2019-01-13 01:38:44 · 768 阅读 · 0 评论 -
Cloudera Management添加spark2服务
用Cloudera Management管理集群时, 有时候在我们已经搭建了cdh版的集群, 又要用到spark2服务,在yarn上跑实时任务,而cdh集群中cdh中不包含spark2服务,因此需要另外下载。目录一、下载spark2的parcel包二、上传至服务器三、添加spark服务一、下载spark2的parcel包1、去这里http://archive.cl...原创 2018-10-20 22:56:56 · 3950 阅读 · 7 评论 -
初识SparkSQL
一、简介1、SharkShark是基于Spark计算框架之上且兼容Hive语法的SQL执行引擎,由于底层的计算采用了Spark,性能比MapReduce的Hive普遍快2倍以上,当数据全部load在内存的话,将快10倍以上,因此Shark可以作为交互式查询应用服务来使用。除了基于Spark的特性外,Shark是完全兼容Hive的语法,表结构以及UDF函数等,已有的HiveSql可以直接进行...原创 2018-07-26 23:48:18 · 288 阅读 · 0 评论 -
初识sparkCore
一、概念RDD(Resilient Distributed Dataset),弹性分布式数据集 ,是分布式内存的一个抽象概念。二、RDD的五大特性1、RDD是由一系列的partition组成的。partition一般有三种方式产生 (1)从Scala集合中创建,通过调用SparkContext#makeRDD或SparkContext#par...原创 2018-07-11 23:08:34 · 2783 阅读 · 0 评论 -
spark2.2.0集群配置
(1)Local多用于本地测试,如在eclipse,idea中写程序测试等。(2)StandaloneStandalone是Spark自带的一个资源调度框架,它支持完全分布式。(3)YarnHadoop生态圈里面的一个资源调度框架,Spark是可以基于Yarn来计算的,最流行。(4) Mesos一种资源调度框架,支持docker,前景最好原创 2018-06-23 01:01:50 · 568 阅读 · 1 评论