自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(260)
  • 资源 (4)
  • 论坛 (1)
  • 收藏
  • 关注

原创 Spark 任务Task调度异常分析

文章目录Spark任务调度异常回顾Spark Task调度过程问题分析任务优化思路Spark任务调度异常最近在帮业务的同学跑Spark程序,其中一个job的Stage有15000+Task,由100多个executor进行执行。任务执行一段时间后,driver只分配了几个task给其中的几个Executor执行,其他大部分executors全部处于空闲状态。回顾Spark Task调度过程这个网上文章很多,不再重复。简单说一下其中几个过程:Spark 对Job进行切分成Stage,每个Stage

2020-11-04 12:00:58 40

原创 使用Prometheus监控Spark任务

BackGroud目前spark支持Graphite打点,但是Graphite默认会为每个打点生成对应的文件,直接只有两个点数据,graphite生成的文件也有200多k,对Graphite造成很大的压力。所以考虑使用Prometheus来代替Graphite。Prometheus的打点默认是pull模式,和Graphite不同,而Spark3.0 新加的打点方式也是K8S友好的。所以还是考虑 使用Prometheus结合Graphite Exporter 的方式。Graphite Exporter

2020-08-03 15:47:12 178

原创 学习Parquet文件格式

文章目录学习目的Parquet文件存储结构学习目的parquet文件作为列存的存储结构parquet文件的读写主要流程和调用接口spark对parquet文件读写的优化spark是如何实现向量化数据读取的Parquet文件存储结构例如一个实际的parquet文件meta信息parquet-tools meta --debug part-00000-95a6898f-c2aa-4e89-86a6-4f17a2a8fe26.c000.snappy.parquetcreator:

2020-07-09 12:20:20 141

原创 Spark 3.0 测试与使用

Compatibility with hadoop and hiveSpark 3.0 官方默认支持的Hadoop最低版本为2.7, Hive最低版本为 1.2。我们平台使用的CDH 5.13,对应的版本分别为hadoop-2.6.0, hive-1.1.0。所以尝试自己去编译Spark 3.0 来使用。编译环境: Maven 3.6.3, Java 8, Scala 2.12Hive版本预先编译因为Hive 1.1.0 实在是太久远了,很多依赖包和Spark3.0中不兼容,需要需要重新编译。hi

2020-06-29 15:28:29 127

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

文章目录Spark动态资源分配过程中YarnScheduler 释放资源过程SchedulerBackend, TaskScheduler 和 ExecutorAllocationManager 的创建ExecutorAllocationManagerCoarseGrainedSchedulerBackendo.a.s.scheduler.cluster.YarnSchedulerEndpointo.a.s.deploy.yarn.ApplicationMasterBlockManager 清理Broadc

2020-06-23 20:57:07 281

原创 Spark TroubleShooting整理

文章目录FileSourceScanExec 进行Parquet文件Split策略有问题问题描述:Debug日志相关排查日志FileSourceScanExec 进行Parquet文件Split策略有问题问题描述:一个十几M的parqeut文件在线上会被切分为好几个Task同时运行,运行的时候只有其中一个Task实际读了文件,其余的Task都是读了空文件。原因: 因为虽然我们在对parquet文件进行了切割,在读取parqeut文件的时候会根据split读取的start和length去获取对应的Ro

2020-06-11 11:00:00 97

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

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

2020-03-04 02:09:41 629

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

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

2020-03-04 00:56:18 244

原创 Spark RPC

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

2020-01-10 16:29:29 73

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

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

2019-12-19 21:40:37 410

原创 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:32:16 404

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

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

2019-10-20 21:23:21 159

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

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

2019-10-19 17:18:18 164

原创 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 15:47:53 153

原创 Uber jvm-profiler学习

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

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

原创 Spark Shuffle流程

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

2019-09-10 22:47:49 63

原创 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:49:55 439

原创 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 81

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

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

2019-07-02 17:58:06 1150

原创 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 372

原创 Spark启动Executor流程

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

2019-06-20 19:00:26 669

原创 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 884

原创 Hadoop NameNode EditLog 实现

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

2019-06-20 18:55:52 264

原创 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 456

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

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

2019-05-30 18:33:53 397

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

Spark Function RegisterSpark 2.* UDF查找过程// Spark 程序启动object SparkSubmit : main(args) 0 = "--class" 1 = "org.apache.spark.sql.hive.thriftserver.SparkSQLCLIDriver" 2 = "spark-internal"c...

2019-05-30 18:22:27 356

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

文章目录ORC 文件格式,配置参数及相关概念ORC 文件格式UML类图OrcFile writer 创建OrcFile Writer 配置参数相关概念动态数组 DynamicIntArray 和 DynamicByteArray初始化chunk 扩容OrcFile writer的 write()方法 写数据WriterImpl addRow程序入口StringTreeWriter : void w...

2019-05-16 18:05:54 3062

原创 StandBy NameNode 合并并回传FSImage

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

2019-05-09 20:33:14 140

原创 Hadoop HDFS HA 状态切换源码

文章目录NameNode启动进入StandBy StateZKFC 进程监控和切换 NameNode HA State启动 HDFS ZKFC 服务启动 HealthMonitor服务NameNodeRpcServerdoHealthChecks()ActiveStandbyElector 和 ActiveStandbyElectorCallbackzkClient 操作异步方法回调Elector...

2019-05-09 20:13:09 303

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

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

2019-05-08 19:06:12 427

原创 Hadoop Metrics2实现原理

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

2019-05-03 22:14:42 927

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

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

2019-05-03 22:04:18 585

原创 Spark Metrics实现原理

Spark 任务的Metrics 是通过Spark中的accumulator来辅助实现的。accumulator 定义// 1.1 定义 accumulator来收集 task 运行统计信息,包括 runTime,cpuTime,GCTime等class TaskMetrics private[spark] () extends Serializable { // Each metri...

2019-05-03 21:53:18 896

原创 Linux DevOps

grafana 搭建软件下载和安装https://grafana.com/grafana/download?platform=linuxwget https://dl.grafana.com/oss/release/grafana-6.1.3-1.x86_64.rpmsudo rpm -ivh grafana-6.1.3-1.x86_64.rpmsudo /sbin/chkconfig...

2019-04-18 12:43:25 400

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

问题背景测试SQLselect asset_inout_ex['asset_inout_1c_sum_1'],dtfrom ASSET_INOUT_AMT a where dt<20181119 and cust_code=0000000order by dtlimit 10000;因为原始表中有456 个DT分区,所以DAG中是一个包含456个 HadoopRDD 的 Un...

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

原创 Spark SQL 学习比较-1

ParallelCollectionRDD 到 DataFrame 生成步骤通过 spark.sparkContext.parallelize(Seq) 创建 ParallelCollectionRDD通过 implicit 方法 rddToDatasetHolder(),进入_sqlContext.createDataset(rdd)rdd被包装为 SerializeFromObject...

2019-02-27 20:39:05 171

原创 Spark CBO

HIVE 0.14 Cost Based Optimizer (CBO) Technical OverviewCBO 三个优化效果Join ordering optimizationBushy join supportJoin simplificationEqui-depth Histogram Construction for Big Data with Quality Guara...

2019-02-12 11:39:45 428

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

A Deep Dive into Spark SQL’s Catalyst Optimizer with Yin HuaiTwo kind Query PlanLogical PlanPhysical PlanTwo kind Transformations

2019-02-01 16:08:15 96

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

yum remove automake autoconf cppunit-devel libtoolwget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz tar -zxvf autoconf-2.69.tar.gz cd autoconf-2.69./configuremake;make installautoconf -...

2019-01-22 09:18:00 232

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

错误日志Exception in thread "adaptive-query-stage-0" java.lang.NoSuchMethodError: com.esotericsoftware.kryo.Kryo.setInstantiatorStrategy(Lorg/objenesis/strategy/InstantiatorStrategy;)V at com.twitter.ch...

2019-01-16 15:37:29 2115

医疗人群数据包

医疗人群数据包 整理了常用的访问网站和搜索关键词

2015-06-19

Java做的文本编辑器

基本上都是自己写的,课程设计得了优!程序整体的风格清晰明朗!分享下,大家共同学习参考吧! 程序在Myeclipse中完成,最好在该软件中直接导入工程即可!

2009-07-21

计算机网络课程设计指导书

其中包含我们学习的静态路由,动态路由,三层交换,VLAN等内容的学习!把这些内容掌握好了,考试绝对没问题!希望大家学习愉快!

2009-07-21

网络课程设计--ACL编程实现

资源里包含了几个Java版本的和vb版本的,Java是自己写的,程序现在基本功能已经实现了!下载完可以自己再修改下!学习愉快!

2009-07-21

Java面试题分享

发表于 2012-05-05 最后回复 2012-05-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

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