11 wankunde

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 2w+

一个Spark程序内存溢出问题排查和处理Case

问题发现和定位线上有个Spark程序在跑一天批次数据的时候没有问题,但是运行多天的跑批时内存溢出。先把Heap Dump出来看一下发现出现大量Netty分配的Heap内存空间没有被释放,发现SparkSession对象被没有GC。程序为了不影响多日不同程序之间的相互影响,所以程序有不停的新的实例化SparkSession再关闭。检查关闭SparkSession代码, ThreadLocal 变量确定已经被remove了。// 项目清理SparkSession代码def stop() {

2020-05-10 20:03:49

实现自定义Spark优化规则

文章目录Catalyst optimizer实战编写一个优化规则编写优化规则注册优化规则测试结果添加钩子和扩展点功能编写自定义优化规则和扩展点配置并启用自定义Spark扩展测试优化规则参考文档Catalyst optimizerSpark SQL 使用一个叫 catalyst 的优化器对所有使用 spark sql 和 dataframe dsl的查询进行优化。经过优化的查询会比使用RDD直接...

2020-03-04 02:09:41

Spark 本地程序启动缓慢问题排查

今天测试spark 本地任务的时候,发现程序每次启动的时候都要等好久,才能开始正常进入启动程序,严重干扰了Debug的节奏。那就开始把~~加上Yourkit的启动参数,其中 tracing 参数表示启动的时候就开始进行 tracing 级别的CPU profiling,其他几种 profiling级别可以根据需要调整。spark.driver.extraJavaOptions -agen...

2020-03-04 00:56:18

Spark RPC

文章目录RpcEndpoint & RpcEndpointRef & NettyRpcEndpointRef RPC 调用接口NettyRpcEnv 发送消息RpcOutboxMessageOutboxInbox网络通信模块RpcEndpoint & RpcEndpointRef & NettyRpcEndpointRef RPC 调用接口SparkEnv : ...

2020-01-10 16:29:29

Spark Analyze收集stats信息实现和CBO stats信息estimate

AnalyzePartitionCommand 分析表信息并存储到cateloganalyze 可以实现数据对数据表的size, row_number 的统计,并存储到元数据中,对后续cbo 优化有非常重要的作用newTotalSize: BigInt = CommandUtils.calculateLocationSize() : 计算指定文件夹下的数据文件夹下的数据文件大小newRow...

2019-12-19 21:40:37

Druid集群QuickStart

文章目录Install配置文件目录规划修改Druid使用Extension 插件安装Druid 监控安装和启用对应的Graphite插件Help CommandInstallDownloadwget http://apache.mirrors.hoobly.com/incubator/druid/0.16.0-incubating/apache-druid-0.16.0-incubating...

2019-10-24 20:31:48

Delta File Fomat 3:Delta数据文件的写入

文章目录DataSource回顾 及 DeltaDataSource 说明SaveIntoDataSourceCommand 对象的生成Spark Run Command 对象DataSource回顾 及 DeltaDataSource 说明先回顾一下上节说的Spark对于文件的读写,是对应文件格式的reader或writer操作内部加载到DataSource封装出来的对象来实现的。Delt...

2019-10-19 18:29:00

Delta File Fomat 2:扩展Spark读取Delta文件

文章目录DataSourceSpark 对外暴漏的读写文件的入口:writer.save() 方法DataFrameReader.load() 方法java.util.ServiceLoader扩展Spark 支持的DataSourceDataSourceDataSource 是Spark用来描述对应的数据文件格式的入口,对应的Delta也是一种数据文件格式,所以了解DataSource实现原...

2019-10-19 16:18:53

Delta File Fomat 1:环境搭建和测试

BuildingGit : https://github.com/delta-io/deltabuild/sbt compile package启动方式QuickStart通过命令行bin/spark-shell --packages io.delta:delta-core_2.11:0.4.0这种方式会通过Ivy到maven中央仓库下载对应的delta 包到本地,并启动多次操作d...

2019-10-19 14:24:23

Uber jvm-profiler学习

文章目录BuildProfile Java ApplicationMethodDurationMethodArgumentStacktraceCpuAndMemoryHeap & NonHeap[Java Buffer Pool](https://dzone.com/articles/understanding-java-buffer-pool)memoryPoolsGCcpu load操...

2019-09-18 18:23:32

Spark Shuffle流程

文章目录ShuffleManagerShuffleManager 参数配置和 shuffleManager 实例化根据 ShuffleManager实例化 shuffleHandleShuffleHandle 选择条件Map task获取 ShuffleWriterBypassMergeSortShuffleWriterSortShuffleWriterExternalSorter本文基于 CD...

2019-09-10 22:47:17

Livy 部署

下载并配置livyhttp://livy.incubator.apache.org/download/ 并上传到服务器wget http://apache-mirror.8birdsvideo.com/incubator/livy/0.6.0-incubating/apache-livy-0.6.0-incubating-bin.zip修改livy配置文件livy.conflivy.s...

2019-09-05 17:46:05

Mysql 常用操作及mysql8 遇到的问题记录

创建mysql 用户mysql 8不支持以grant方式直接创建带密码用户了,所以语句分开写create user "hive"@"%" identified by "hive";create user "hive"@"localhost" identified by "hive";grant all privileges on *.* to 'hive'@'%';grant all...

2019-08-13 21:49:31

Griffin 数据管理任务的SQL和原理

文章目录accuracycompletenessdistincttimelinessuniquenessprofilingspark-sqlpre.procaccuracy任务内容 : 通过两个表的Join来判断两个表的记录是否一致,并计算相关指标。任务入口 : AccuracyExpr2DQSteps__missRecords : 左表 left join 右表,如果左表字段值不为空,...

2019-07-02 17:58:06

Spark 1.6 Thrift Server 加载类异常处理

错误日志分析Spark 1.6 在启动Spark Thrift Server的时候,Beeline不断出现报错:0: jdbc:hive2://10.59.34.204:10000> show tables;Error: org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unabl...

2019-06-21 22:03:56

Spark启动Executor流程

文章目录NodeManager 启动ExecutorShell启动脚本CoarseGrainedExecutorBackend 启动 RPC EndPointTask的反序列化和执行Task Run参考文档NodeManager 启动ExecutorShell启动脚本NodeManagerdefault_container_executor.shbash -c ‘java ..Coars...

2019-06-20 19:00:26

Spark1.*中CreateTableAsSelect 语句实现

本文以一个 CreateTableAsSelect 的Command 的job提交执行过程为例,说明spark sql 的job提交执行过程 ``SparkSQLCLIDriver:main(): ret = cli.processLine(line, true)SparkSQLCLIDriver:main(): val rc = driver.run(cmd)SparkSQ...

2019-06-20 18:58:14

Hadoop NameNode EditLog 实现

文章目录NameNode初始化getNamespaceEditsDirsFSImage 初始化`FSNamesystem.loadFromDisk(conf)``fsImage.recoverTransitionRead(startOpt, this, recovery);``FSImage.loadFSImage()`FSEditLog初始化initEditLogopenEditLogForWr...

2019-06-20 18:55:52

Spark DAG 执行流程

文章目录Action 启动程序执行DAGScheduler.scala 提交Job 执行根据Job创建Stage DAG图Stage执行结束Task 的调度和执行Action 启动程序执行 // Dataset.scala // scalastyle:off println def show(numRows: Int, truncate: Boolean): Unit = if (t...

2019-05-30 18:45:38

Spark SQL 程序调度执行框架(一)

NodeManager 启动ExecutorShell启动脚本NodeManagerdefault_container_executor.shbash -c ‘java ..CoarseGrainedExecutorBackend’ --> 启动Executor 接收task计算任务bash -c ‘java ..ExecutorLauncher’ --> 这里应该是直接奔着...

2019-05-30 18:33:53

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享小兵
    分享小兵
    成功上传3个资源即可获取