
Spark
文章平均质量分 84
专注研究Spark技术、源码分析
敏叔V587
吃货程序员一枚
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
手撕SparkSQL五大JOIN的底层机制
Broadcast hash join (BHJ)Shuffle hash join(SHJ)Shuffle sort merge join (SMJ)Shuffle-and-replicate nested loop join,又称笛卡尔积(Cartesian product join)Broadcast nested loop join (BNLJ)这些机制你真的了解清楚么, 今天对SparkSQL JOIN的机制从原理和源码都深入剖析,不管是做Spark优化,问题排查,都有极大的帮助~~原创 2022-07-31 14:43:56 · 2046 阅读 · 0 评论 -
Spark3.3.0源码编译补充篇-抓狂的证书问题
spark 编译gcs-maven-central-mirror (https://maven-central.storage-download.googleapis.com/maven2/): transfer failed for https://maven-central.storage-download.googleapis.com/maven2/org/apache/maven/plugins/maven-metadata.xml原创 2022-06-20 22:44:47 · 712 阅读 · 0 评论 -
SecureCRT运行SparkShell 删除键出现乱码的解法
SecureCRT 通过spark-shell启动控制台之后发现没办法进行删除操作一直按删除健没用选择----->会话选项---->映射键---->勾选两个勾仿真---->终端选择linux乱码问题,调整一下编码记得重启一下,后面界面也会变成linux的画风哦...原创 2022-06-18 12:13:41 · 618 阅读 · 0 评论 -
Spark性能优化之SparkUI
SparkUI其实信息量非常大,而且是需要不断去加深理解Spark内容才能理解内容的,涉及到作业优化,找原因才是最关键,而对于Spark作业来说读懂Sparkui的信息,更加是关键中的关键。原创 2022-05-02 22:34:17 · 3396 阅读 · 1 评论 -
大数据处理之魔幻的NULL
null在数据中是一个很特殊的存在,我们实际经历多起生产事故,而且直接就带来直接的经济损失,这个值在实际使用的时候很容易被用错,今天我们来盘点一下null带来的坑吧原创 2022-05-01 20:08:37 · 422 阅读 · 0 评论 -
数仓高频操作JSON篇
前言JSON的话在实际开发中大量使用了,常规的解析操作直接一把百度就可以查到了,不过总有一些犄角旮旯的需求让人抓狂,今天对JSON部分操作进行一些梳理,方便碰到之后在这里可以查询。GET_JSON_OBJECT命令格式命令格式string get_json_object(string <json>, string <path>)需要注意的是第二个参数其实是path,实际是如下的使用,蛮多人对那个$.a云里雾里,这里头到底写啥呢,我比较喜欢找到原始的出处,其实是在Hive上原创 2022-04-25 23:45:23 · 1553 阅读 · 0 评论 -
利用SparkLauncher实现Spark Cluster模式下的远端交互
前言编者按——————————前一阵子在技术小群有位同学在群里做了和SparkLauncher相关的问题,当然聊天信息还有前后左右,大致就是希望可以定制化Spark的提交。也是,Spark的官网其实一出来就是教我们用命令行怎么去提交,诸如命令行什么的,有下面这样的./bin/run-example SparkPi 10还有这样的./bin/spark-submit examples/src/main/python/pi.py 10这种搞搞学习还好,到了实际需求来说这这架势整不会了。当然除原创 2022-01-22 21:50:34 · 3736 阅读 · 1 评论 -
Spark3.x的Cache能不能让我在2022好好睡觉
前言一转眼已经是2022年1月9日了,跨年的节点会发生很多系统性的大事,对于普通人来讲就是跨过一个新的公元年2021->2022,对于生产系统来说,尤其是离线系统,需要发生年结,虽然期望平稳度过,但是实际情况总归没那么太平,所以每次到了这种节点,我们都是第一个flag,新的一年,好好睡觉!!2022我就想好好睡觉Spark1.XSpark1.x的时代,大部分工作上解决内存计算模式下动不动就OOM那种让人抓狂的事情,需要半夜爬起来加内存Spark2.xSpark2.x版本,尤其是SparkS原创 2022-01-09 20:26:27 · 933 阅读 · 0 评论 -
Spark 3.0 中的屏障执行模式_Spark的MPI时代来了
RDD屏障概念引入Spark 3.0 引入了一种名为RDDBarrier[T]的新型 RDD ,它表示 RDD 需要使用屏障执行模式来处理。此 RDD 公开了普通 RDD 中不可用的新功能。RDDBarrier的源码定义如下:/** * :: Experimental :: * Wraps an RDD in a barrier stage, which forces Spark to launch tasks of this stage together@Experimental@Since原创 2021-12-15 23:30:08 · 2275 阅读 · 0 评论 -
利用SparkSQL Logical Plan Parse 打造大数据平台SQL诊断利器
基于Spark Logical Plan Parse ,对Spark 源码的定向改造,打造大数据平台SQL诊断利器原创 2021-12-12 16:44:37 · 3142 阅读 · 1 评论 -
两条华子也换不来的数据湖讲解
前言数据湖一词进入我的视野是两年前,我记得当时是我们老板给我么做了DataBricks的技术分享报告,那个时候其实是介绍Spark的一些新特性,然后顺便介绍了数据湖。在此期间,数据湖技术也由一开始的想法、落地、迭代,各大企业纷纷推出自己的基于湖仓技术的解决方案,可以说是全面开花。正如十多年前了解到hadoop那样,大数据技术的发展可谓迅猛,所以我们也是要不断更新自己的知识体系,今天我们来侃一侃数据湖的巴拉巴拉。数仓的现状一谈到大数据的历史,我们都熟知的Google引爆大数据时代的三篇论文Google原创 2021-11-27 00:38:57 · 3328 阅读 · 4 评论 -
数仓面试重灾区之-Generic User-defined Table Generating Function(UDTF)
前言UDTF 这玩意对数仓同学来讲,熟悉又陌生,主要一方面是大量接触,另一方面是理解上有误导,还一个就是不是太明白里头到底咋回事。场景切入关于UDTF面试场景大概有以下的问题:1、hive的udf你了解么,常用都有哪些类型2、行专列操作了解么,里头是怎么实现的3、比较直白的问法,udtf你了解么4、关于hive的优化方式,udtf其实是考察之一背后的原因:1、首先实际线上滥用很多,数据膨胀、倾斜等,导数很严重的问题,实际点的例子,线上碰到因为udtf膨胀4-5个小时的运行时间,优化之后直接原创 2021-11-06 14:43:48 · 331 阅读 · 0 评论 -
利用SparkSQL读写Excel数据
一点前言直接来说,这种很多程序员的梦想~撸了大半辈子的代码,号称可以把宇宙Coding出来,结果到了Excel这块卡主了。我就是想写SQL去查Excel,不喜欢记住那么多Excel操作!好在,我们这个世界变化很快,Excel新的版本号称是支持python的,也准备支持js,不过有个问题是当年一直追随window的程序员因为技术提升有了Mac了,新版本的office目测还收费,en~我在玩Spark的时候发现可以搞Excel,秃秃的脑袋瓜一转~~起手不得不说真需要狠狠感谢这个开源的世界,以及基础环原创 2021-11-06 11:29:38 · 8470 阅读 · 7 评论 -
大数据平台治理资源成本化
前言”三分靠技术,七分靠管理“这句话可能大家都听说过,事实上背后是涉及到了一系列的方法论,可能业界听过什么程序猿到了一定年龄就转管理岗这个其实是事实。放到大数据平台治理上,这个完全适用的。我们做一个平台化的治理,需要的衡量清楚局部和整体的关系,做到优化的整体化,而不是追求局部优化。所以不管在任何时候,我们都需要看到我们全局的状况,找出资源大头,再精准打击,首要条件的事情便是资源成本化。大数据平台资源成本衡量成本的消耗其实来源很多,涉及到网络带宽,交换机,路由器等器材,机柜租用,以及本身的CPU价格,内原创 2021-10-10 23:03:42 · 810 阅读 · 0 评论 -
Spark性能优化指南—思路梳理
前言Spark作业的优化其实是泛的话题,因为往往有时候表现出来都是慢,但是解法确不一样,我想把优化的方方面面盘点出来,以便系统去制定整体的优化方案。优化思路梳理到底怎样去看待所谓慢的问题呢,我做了一个整理:主题资源优化并行度优化代码优化Shuffle优化内存优化堆外内存优化数据倾斜处理读写介质优化资源优化绝大部分作业变慢其实就是资源吃紧导致的,这就是为什么啥都没变怎么就慢了呢,去查问题的时候又查不出个所以然来。换句话来说绝大部分作业原创 2021-07-25 08:23:35 · 1465 阅读 · 3 评论 -
闲侃数仓优化-大数据治理和优化
前言写标题的时候是2021-07-04 22:22,在那之前我以前一直是想琢磨怎么去扯数仓优化这玩意好点,总是觉得应该来个万字长文啥的才写下来,现在不那样折腾了,想到啥就写点啥,大不了未来再多搞几篇就是了。为啥数仓需要优化这个问题其实在不同的人看是不一样的人员视角高层领导成本过高业务产出慢,无法支撑业务bi乱七八糟的,不知道用啥表开发人员这玩意性能不行数仓人员一样的数据多套,关键还是错的运维同学这个配置不大对,改改会更快这个问题其实原创 2021-07-24 23:34:43 · 836 阅读 · 1 评论 -
肝Spark源码的若干骚操作
Spark源码从入门到精通1.本文介绍怎样从源码编译导入到IDEA中2.文章介绍怎样在开发环境中运行Spark源码3.怎样快速调试spark源码,并且查看运行结果3.修改Spark源码,立马可以查看结果原创 2021-07-04 21:04:03 · 535 阅读 · 4 评论 -
Spark的几种去重的原理分析
前言我们经常做去重的操作,事实上几种方式可以实现去重,但是结果的理解其实是不一样的,不过在一定程度上这几种也都可以满足我们的需求。参考数据idname1a2b1a1bDistinct去重这个其实是真正的去重,语意上其实就是如果出现一样的结果,则就显示一行可以作用单行或者多行sql select id from t;id12或者是select id,name from t;作用多行的时候多行要一起相等才行原创 2021-01-24 02:37:46 · 1889 阅读 · 0 评论 -
SparkSQL优化策略大盘点
前言大部分做Spark开发的同学或多或少都做过很多的优化,事实上优化的策略是很多的,还有很多的默认策略做了其实是无感知,当时当某些场景数据规模比较庞大的时候就需要用户自己去控制优化策略了,我们希望对优化策略有个整体认识,然后我们做优化的时候才能够从多方面去切入。优化策略的分类针对各个场景优化做一个分类比较,然后对比较常用的参数进行举例说明类型优化位置场景说明优点局限性场景举例CoreSpark-CoreSpark底层的执行策略,调度分配策略,shuffle等策略影响原创 2020-10-08 09:15:53 · 1006 阅读 · 0 评论 -
Spark开发实用技巧-从入门到爱不释手
前言Spark作为大数据处理神器,对大数据处理能力我们比较熟知,经常有小伙伴问我怎么去入手开发Spark的程序,很多人因为所谓的没有大数据环境问题导致入门到放弃,深有感触,把一些心得分享出来,希望会优先帮助。本地模式事实上spark到了2.x版本之后,在window上面编程和运行Spark程序其实完全没啥问题,不一定非要跑到linux上面或者需要MAC本子才能干活,本地模式运行可以很方便让我们调试,单步运行的工作,强烈推荐。比如说我之前的UDF开发程序,完全就是在本地模式下面完成开发和测试,这部分工原创 2020-09-28 13:36:22 · 746 阅读 · 0 评论 -
Hive高频面试题之UDTF实现多行输出
题目说明编写一个udf,输入这个数组之后按多列输出题解udtf其实是udf里面比较少自己去写的东西,所以反而是盲区,这种题目就是摸过的就觉得简单,所谓难者不会,会者不难代码会放在最后,我说一下精髓部分!凡是UDF编写,关键点是了解计算特征,udtf其实关键点就是输入一行,可以输出多行,不管里头怎么折腾,反正只要是Java代码写的,输入一行的话我们无非都是一个输入参数,输出多行要么是数组,要么是集合。输入输出参数说明输入部分,其实就是select 函数的时候给的那一排参数比如select u原创 2020-09-16 22:00:19 · 1197 阅读 · 1 评论 -
Spark 编译出现 InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
mvn 编译Spark代码的时候常见错误:[ERROR] Failed to execute goal on project spark-tools_2.11: Could not resolve dependencies for project org.apache.spark:spark-tools_2.11:jar:2.4.3: Failed to collect dependencies at org.clapper:classutil_2.11:jar:1.1.2: Failed to read原创 2020-08-29 21:43:34 · 630 阅读 · 0 评论 -
Spark参数解析之MasterArguments
前言Spark参数解析的代码我郁闷了好一阵子,后面终于在快学Scala中看到的这种写法,记录一下。关键源码MasterArguments参数解析的时候有这么一段: private def parse(args: List[String]): Unit = args match { case ("--ip" | "-i") :: value :: tail => Utils.checkHost(value) host = value parse(tai原创 2020-05-23 07:41:18 · 750 阅读 · 0 评论 -
SparkSQL整合Alluxio实操
前言在前面的文章我做了一个hive整合alluxio的文章,那部分其实是为了SparkSQL的整合做基础。整合步骤其实对于hive表的location指向哪里,那么底层api就会从哪里去读取数据,当遇到alluxio的路径时候,变按照alluxio读取的策略去进行读取。我们整合的精髓就是需要把表的location指向alluxio的路径就行了,之分区表则把分区的路径指向过去就行。有下面几种...原创 2020-03-31 00:04:20 · 1235 阅读 · 0 评论 -
Spark3.0源码编译打包
前言Spark3.0已经发布有一阵子了,官方发布了预览版,带来了一大波更新,对于我们程序员来说,首先当然是代码拉过来,打个包,跑起来!!源码地址Spark源码是托管在github上面的,源码地址:Spark官方源码不过clone下了还是老费劲,不得琢磨琢磨微软收购github之后这个中国的网速问题不知道他们怎么看,我在gitee上面直接也fork一份源码,再进行clone。gitee上S...原创 2020-03-28 19:47:28 · 5432 阅读 · 7 评论