自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Spark 3.0 测试与使用

Compatibility with hadoop and hive Spark 3.0 官方默认支持的Hadoop最低版本为2.7, Hive最低版本为 1.2。我们平台使用的CDH 5.13,对应的版本分别为hadoop-2.6.0, hive-1.1.0。所以尝试自己去编译Spark 3.0...

2020-06-29 15:28:29 33 0

原创 Spark动态资源分配的资源释放过程及BlockManager清理过程

文章目录Spark动态资源分配过程中YarnScheduler 释放资源过程SchedulerBackend, TaskScheduler 和 ExecutorAllocationManager 的创建ExecutorAllocationManagerCoarseGrainedSchedulerB...

2020-06-23 20:57:07 42 0

原创 Spark TroubleShooting整理

文章目录FileSourceScanExec 进行Parquet文件Split策略有问题问题描述:Debug日志相关排查日志 FileSourceScanExec 进行Parquet文件Split策略有问题 问题描述: 一个十几M的parqeut文件在线上会被切分为好几个Task同时运行,运行的时...

2020-06-11 11:00:00 44 0

原创 实现自定义Spark优化规则

文章目录Catalyst optimizer实战编写一个优化规则编写优化规则注册优化规则测试结果添加钩子和扩展点功能编写自定义优化规则和扩展点配置并启用自定义Spark扩展测试优化规则参考文档 Catalyst optimizer Spark SQL 使用一个叫 catalyst 的优化器对所有使...

2020-03-04 02:09:41 284 0

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

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

2020-03-04 00:56:18 108 0

原创 Spark RPC

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

2020-01-10 16:29:29 45 0

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

AnalyzePartitionCommand 分析表信息并存储到catelog analyze 可以实现数据对数据表的size, row_number 的统计,并存储到元数据中,对后续cbo 优化有非常重要的作用 newTotalSize: BigInt = CommandUtils.calc...

2019-12-19 21:40:37 191 0

原创 Druid集群QuickStart

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

2019-10-24 20:32:16 265 0

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

文章目录DataSource回顾 及 DeltaDataSource 说明SaveIntoDataSourceCommand 对象的生成Spark Run Command 对象 DataSource回顾 及 DeltaDataSource 说明 先回顾一下上节说的Spark对于文件的读写,是对应文...

2019-10-20 21:23:21 101 0

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

文章目录DataSourceSpark 对外暴漏的读写文件的入口:writer.save() 方法DataFrameReader.load() 方法java.util.ServiceLoader扩展Spark 支持的DataSource DataSource DataSource 是Spark用来...

2019-10-19 17:18:18 96 0

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

Building Git : https://github.com/delta-io/delta build/sbt compile package 启动方式 QuickStart 通过命令行 bin/spark-shell --packages io.delta:delta-core_2.11:...

2019-10-19 15:47:53 99 0

原创 Uber jvm-profiler学习

文章目录BuildProfile Java ApplicationMethodDurationMethodArgumentStacktraceCpuAndMemoryHeap & NonHeap[Java Buffer Pool](https://dzone.com/articles/un...

2019-09-18 18:24:58 214 3

原创 Spark Shuffle流程

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

2019-09-10 22:47:49 45 0

原创 Livy 部署

下载并配置livy http://livy.incubator.apache.org/download/ 并上传到服务器 wget http://apache-mirror.8birdsvideo.com/incubator/livy/0.6.0-incubating/apache-livy-0....

2019-09-05 17:49:55 242 0

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

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

2019-08-13 21:49:31 74 0

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

文章目录accuracycompletenessdistincttimelinessuniquenessprofilingspark-sqlpre.proc accuracy 任务内容 : 通过两个表的Join来判断两个表的记录是否一致,并计算相关指标。 任务入口 : AccuracyExpr2...

2019-07-02 17:58:06 832 0

原创 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.met...

2019-06-21 22:03:56 250 0

原创 Spark启动Executor流程

文章目录NodeManager 启动ExecutorShell启动脚本CoarseGrainedExecutorBackend 启动 RPC EndPointTask的反序列化和执行Task Run参考文档 NodeManager 启动Executor Shell启动脚本 NodeManager ...

2019-06-20 19:00:26 480 0

原创 Spark1.*中CreateTableAsSelect 语句实现

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

2019-06-20 18:58:14 584 0

原创 Hadoop NameNode EditLog 实现

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

2019-06-20 18:55:52 200 0

原创 Spark DAG 执行流程

文章目录Action 启动程序执行DAGScheduler.scala 提交Job 执行根据Job创建Stage DAG图Stage执行结束Task 的调度和执行 Action 启动程序执行 // Dataset.scala // scalastyle:off println def ...

2019-05-30 18:45:38 331 0

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

NodeManager 启动Executor Shell启动脚本 NodeManager default_container_executor.sh bash -c ‘java ..CoarseGrainedExecutorBackend’ --> 启动Executor 接收task...

2019-05-30 18:33:53 272 0

原创 Spark 读取和使用Hive Permanent Function 原理

Spark Function Register Spark 2.* UDF查找过程 // Spark 程序启动 object SparkSubmit : main(args) 0 = "--class" 1 = "org.apache.sp...

2019-05-30 18:22:27 239 0

原创 ORC文件存储格式和数据写入过程

文章目录ORC 文件格式,配置参数及相关概念ORC 文件格式UML类图OrcFile writer 创建OrcFile Writer 配置参数相关概念动态数组 DynamicIntArray 和 DynamicByteArray初始化chunk 扩容OrcFile writer的 write()方...

2019-05-16 18:05:54 1901 0

原创 StandBy NameNode 合并并回传FSImage

文章目录启动StandbyCheckpointerdoCheckpointsave FSImage文件启动独立线程,SNN 向NN PUT FSImageImageServlet 接收 FSImage 启动StandbyCheckpointer // 接上篇 StandbyState public...

2019-05-09 20:33:14 100 0

原创 Hadoop HDFS HA 状态切换源码

文章目录NameNode启动进入StandBy StateZKFC 进程监控和切换 NameNode HA State启动 HDFS ZKFC 服务启动 HealthMonitor服务NameNodeRpcServerdoHealthChecks()ActiveStandbyElector 和 A...

2019-05-09 20:13:09 208 0

原创 HDFS NAMENODE QJM HA方案实现-1

文章目录JournalNodeQJM 方案对象实现过程确定 EditsDirs实例 FSImage 和 FSEditLogNameNode服务启动和journalSet 实例初始化journalSet 初始化JournalManager / QuorumJournalManager 初始化Asyn...

2019-05-08 19:06:12 264 0

原创 Hadoop Metrics2实现原理

Hadoop Metrics2的实现应该是在14年左右就已经非常成熟了,研究的人也比较多了。一个出现很久的东西,并非没有学习价值。如Metrics2 和之前的Metrics 一代做了哪些改进?如果我们自己设计一套Metrics信息,哪些是可以借鉴的地方? 所有Source 和Sink全部是可配置...

2019-05-03 22:14:42 549 0

原创 Spark是如何实现远程Thread Dump 的?

问题研究入口还是从web页面ExecutorThreadDumpPage入手,提供ThreadDump的入口在SparkContext的getExecutorThreadDump方法。 // 1. 查看Executor Thread页面入口,通过 executorId 获取ThreadDump, ...

2019-05-03 22:04:18 351 0

原创 Spark Metrics实现原理

Spark 任务的Metrics 是通过Spark中的accumulator来辅助实现的。 accumulator 定义 // 1.1 定义 accumulator来收集 task 运行统计信息,包括 runTime,cpuTime,GCTime等 class TaskMetrics priva...

2019-05-03 21:53:18 565 0

原创 Linux DevOps

grafana 搭建 软件下载和安装 https://grafana.com/grafana/download?platform=linux wget https://dl.grafana.com/oss/release/grafana-6.1.3-1.x86_64.rpm sudo ...

2019-04-18 12:43:25 259 0

原创 Spark Scan大表时任务启动过慢分析

问题背景 测试SQL select asset_inout_ex['asset_inout_1c_sum_1'],dt from ASSET_INOUT_AMT a where dt<20181119 and cust_code=0000000 orde...

2019-03-13 18:37:12 954 2

原创 Spark SQL 学习比较-1

ParallelCollectionRDD 到 DataFrame 生成步骤 通过 spark.sparkContext.parallelize(Seq) 创建 ParallelCollectionRDD 通过 implicit 方法 rddToDatasetHolder(),进入_sqlCon...

2019-02-27 20:39:05 113 0

原创 Spark CBO

HIVE 0.14 Cost Based Optimizer (CBO) Technical Overview CBO 三个优化效果 Join ordering optimization Bushy join support Join simplification Equi-depth His...

2019-02-12 11:39:45 321 0

转载 A Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai

A Deep Dive into Spark SQL’s Catalyst Optimizer with Yin Huai Two kind Query Plan Logical Plan Physical Plan Two kind Transformations

2019-02-01 16:08:15 84 0

原创 async-profiler 和 honest-profiler 编译和测试

yum remove automake autoconf cppunit-devel libtool wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz tar -zxvf autoconf-2.69.tar.gz cd aut...

2019-01-22 09:18:00 162 0

原创 Spark kryo Jar包冲突问题排查

错误日志 Exception in thread "adaptive-query-stage-0" java.lang.NoSuchMethodError: com.esotericsoftware.kryo.Kryo.setInstantiatorStrategy(Lorg/...

2019-01-16 15:37:29 1442 0

原创 spark AE 编译

安装R 安装包及其依赖类库 安装R语言环境 安装R类库 R -e “install.packages(c(‘knitr’, ‘rmarkdown’, ‘devtools’, ‘e1071’, ‘survival’), repos=‘http://cran.us.r-project.org’)...

2018-12-13 16:43:29 352 0

原创 hadoop namenode 本地调试环境搭建

本地环境配置 核心是增加namenode启动调试参数 export HADOOP_NAMENODE_OPTS="${HADOOP_NAMENODE_OPTS} -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address...

2018-11-13 00:42:14 91 0

原创 HDFS CheckSum

程序入口 Hadoop Branch : Hadoop-2.6.0 使用样例 : hadoop dfs -checksum /tmp/README.txt 结果 /tmp/README.txt MD5-of-0MD5-of-512CRC32C 00000200000000000...

2018-09-24 22:52:31 968 0

提示
确定要删除当前文章?
取消 删除