
spark
文章平均质量分 94
疯狂哈丘
这个作者很懒,什么都没留下…
展开
-
基于Java实现编程式提交Spark任务
最近接到一个需求,需要提供给平台一个java sdk,用于spark任务的提交。这个sdk不能依赖用户机器的任何环境。网上找了一些资料,基本都是基于原生的SparkSubmit来提交任务的,都不符合我们的需求。因此决定自己手动撸。首先做了一些调研,先梳理了下原生spark-submit的提交流程(Spark on Yarn)一、常规Spark on Yarn的提交流程(基于SparkSubmit)我们平时使用spark-submit脚本或者直接使用SparkSubmit类进行Spark任务的提交时,流原创 2021-04-17 11:14:08 · 5194 阅读 · 0 评论 -
SparkSQL并发写入orc、parquet表的异常问题排查
文章目录一、问题描述二、Hive 执行overwrite语句时没有删除旧数据的原因三、SparkSQL 失败的原因四、解决方案1、排查过程2、解决方案3、spark.sql.hive.convertInsertingPartitionedTable参数的作用一、问题描述有业务反馈某张表的分区下有重复数据,该分区数据的写入任务之前曾用sparkSQL执行过,跑失败了后切换成Hive执行成功了。看了下该分区对应的目录,发现目录下同时存在sparkSQL和Hive SQL生成的文件(也就是Hive任务执行时未原创 2020-10-29 14:49:32 · 11402 阅读 · 0 评论 -
Kyuubi 输出任务进度信息改造
文章目录一、Hive QueryLog的实现客户端方面服务端实现日志的读取日志的写入二、Kyuubi 增加进度日志输出附录一、Hive QueryLog的实现由于Kyuubi、Spark ThriftServer的实现框架都是用的Hive Server。因此这里只介绍Hive Server是如何实现QueryLog的。客户端方面在HiveServer实现的jdbc客户端中,获取QueryLog实现是在HiveStatement类的getQueryLog()方法中。这个方法的底层是调用了Thrift实原创 2020-07-29 16:02:03 · 4547 阅读 · 0 评论 -
Spark TaskAttempt目录未删除问题排查
文章目录一、问题描述二、问题分析三、总结一、问题描述有业务反馈spark任务结束后会遗留一些attempt目录在输出目录上,影响数据的读取。主要现象如下:二、问题分析之前排查过一个类似的问题,也是输出目录下有个遗留的_temporary目录未删除干净:Spark 任务输出目录_temporary目录未删除问题排查一开始以为就是这个问题,但是仔细分析了下,发现逻辑走不通。因此仔细做了下...原创 2019-08-03 17:47:40 · 4332 阅读 · 1 评论 -
Spark MetadataFetchFailedException 问题排查
文章目录一、问题描述二、问题定位Executor异常退出的原因猜测1、OOM导致Executor异常退出2、linux OOMKiller3、因磁盘问题Executor被yarn Kill4、因内存问题Executor被yarn Kill问题总结三、解决方案四、扩展:Executor因内存问题被Yarn Kill的情况1、Overhead 区域使用超过预期值2、Executor又开启了子进程导致总...原创 2019-06-25 16:33:15 · 28239 阅读 · 0 评论 -
spark-submit 任务提交过程分析
文章目录一、spark-submit脚本分析二、Main类的作用三、SparkSubmit类提交任务的过程如何和ResourceManger建立连接spark任务配置的优先级client模式的真正运行方式一、spark-submit脚本分析spark-submit的脚本内容很简单:# 如果没设置SPARK_HOME的环境变量,调用find-spark-home文件寻找spark-homei...原创 2019-06-11 19:05:13 · 3905 阅读 · 0 评论 -
Spark任务输出文件过程详解
文章目录一、Spark任务输出文件的总过程二、Commit细节分析1、commitTask 介绍1.1、判断是否需要commit1.2、task的commit细节2、commitJob 介绍三、V1和V2 commiter版本比较1、性能方面2、数据一致性方面3、总结参考资料一、Spark任务输出文件的总过程当一个Job开始执行后,输出文件的相关过程大概如下:1、Job启动时创建一个目录: ...原创 2019-06-14 19:47:52 · 7111 阅读 · 0 评论 -
Spark Adaptive Execution调研
文章目录一、Spark 目前现有的一些问题问题一:Shuffle partition数量没有达到最优问题二:现有执行计划的一些不足问题三:数据倾斜的问题二、Spark Adaptive Execution提出的相关解决方案1、自动设置Shuffle Partition数量一些关键点:开启方式:2、执行过程中动态调整执行计划开启方式:3、自动处理数据倾斜开启方式:三、总结参考资料一、Spark 目...原创 2019-05-29 20:15:33 · 2197 阅读 · 0 评论 -
Spark 任务输出目录_temporary目录未删除问题排查
文章目录一、问题描述二、问题定位三、driver kill task的时间四、解决方案参考资料一、问题描述在hdfs上看到有个输出目录有_temporary目录,但任务实际已经结束了。有_SUCCESS文件表示这个任务已经结束了。二、问题定位Spark 输出数据到 HDFS 时,需要解决如下问题:由于多个 Task 同时写数据到 HDFS,如何保证要么所有 Task 写的所有文...原创 2019-05-29 20:06:44 · 5003 阅读 · 0 评论 -
Spark Thrift Server 架构和原理介绍
文章目录一、Spark Thrift Server介绍二、部署Spark Thrift Server三、Spark Thrift Server的架构四、Spark Thrift Server如何执行SQL五、和HiveServer2的区别Spark Thrift Server的优点Spark Thrift Server的缺点六、结论一、Spark Thrift Server介绍Spark Th...原创 2019-05-19 10:32:23 · 23340 阅读 · 11 评论 -
Spark Streaming架构原理剖析
文章目录一、Spark Streaming 原理概述二、DStream生成RDD实例的过程1、什么是DStream2、DStreamGraph3、通过DStream生成RDD实例3.1 何时生成RDD实例3.2 如何通过DStream生成RDD实例3.3.1、一般DStream生成RDD的过程3.3.2、InputDStream生成RDD的过程三、数据的收集和划分1、Receiver的启动过程2、...原创 2019-05-06 20:43:33 · 3053 阅读 · 0 评论 -
Spark 动态资源失效问题排查
文章目录一、问题描述二、动态资源相关原理初试executor数量executor数量的变动1、Executor Add2、Executor Remove三、问题定位Spark Task的本地化调度本地化调度级别没有及时推进导致的问题四、解决方案1、问题一2、问题二3、总结一、问题描述最近开启动态资源后,有用户反馈他的任务运行很慢,去Spark HistoryServer页面看了下,发现只剩下一...原创 2019-04-20 14:28:48 · 28125 阅读 · 1 评论 -
Spark History Server 架构原理介绍
文章目录一、eventLog日志文件以及相关参数eventLog日志文件介绍相关配置参数二、两个定时任务解析eventLog日志文件线程清理过期的eventLog日志文件的线程三、History Server的架构缓存机制四、一些潜在的问题1. spark.history.retainedApplications 设置太大导致的OOM问题2. eventLog 日志文件过大导致的OOM问题3. H...原创 2019-03-08 14:02:44 · 4663 阅读 · 0 评论