自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

houzhizhen的专栏

bigdata hobbyist

  • 博客(756)
  • 资源 (4)
  • 收藏
  • 关注

原创 hive metatool 使用说明

metatool 使用说明。

2024-04-07 11:52:08 265

原创 Hive SchemaTool 命令详解

Hive schematool 是 hive 自带的管理 schema 的相关工具。

2024-04-07 11:30:52 788 2

原创 Spark SizeTrackingAppendOnlyMap 相关源代码分析

SizeTrackingAppendOnlyMap 在 ExternalAppendOnlyMap 中使用,当 map 中对象占用的内存大小超过一定阈值时,把 数据 spill 到磁盘。所以 SizeTrackingAppendOnlyMap。

2024-03-26 16:06:53 583 1

原创 spark-shuffle-site.xml 配置项

在 NodeManager 启动 spark shuffle,可以配置 spark-shuffle-site.xml,设置 spark-shuffle 的参数。

2024-03-18 20:58:24 142

原创 Spark Executor decommission 原理分析

Spark Executor decommission 最初是 AWS 为了 Spot 节点和 Spot Block 节点配置的, Spot 节点仅有正常节点几分之一的价格,但是可能在任何时间收回,收回的时候仅给 120 秒的缓冲期。如果正常的 executor 地址,则从 executor 读取,如果是 fall back 地址,则调用 FallBackStorage.read 读取数据块。开启一个线程,不断检查 decomission 状态,如果 decommission 成功,则。

2024-03-06 14:18:13 694

原创 Spark Shuffle 方案概览

依赖 YARN 框架,Map 任务计算完后,每个 shuffle partition 的数据被推往固定的 ESS, 在 ESS 端进行合并, 合并的 ESS 称为 Merger Location。Reduce 任务计算时,先从 Merger Location 读取 Merge 后的 shuffle 数据,缺少的数据再从原来的 ESS 读取。Executor 在没有计算任务时,把 shuffle 数据迁移到正常的 Executor 和远程存储上,如bos,然后退出。

2024-03-05 14:12:39 774

原创 Spark Shuffle Tracking 原理分析

Shuffle Tracking 是 Spark 在没有 ESS(External Shuffle Service)情况,并且开启 Dynamic Allocation 的重要功能。如在 K8S 上运行 spark 没有 ESS。本文档所有的前提都是基于以上条件的。如果开启了 ESS,那么 Executor 计算完后,把 shuffle 数据交给 ESS, Executor 没有任务时,可以安全退出,下游任务从 ESS 拉取 shuffle 数据。

2024-03-01 10:56:04 1137

原创 Hive 严格模式设置

Hive 在早期使用参数来决定是否执行严格模式, 其值为 strict 或者 nostrict. 当其值为strict时,执行严格模式,如从分区表查询时,过滤条件必须有分区字段。在 Hive 3.1.3 中,因为 hive.mapred.mode 比较粗暴,为了能更好的在不同地方是否严格模式,在不同的地方用各自的参数。为了使用不同的参数,hive.mapred.mode 已经被废弃,不能设置,如果设置了,则以 hive.mapred.mode 值为准,新的参数不生效。

2024-02-25 11:59:46 791

原创 Spark 设置日志级别

查看是否有文件 ${SPARK_HOME}/conf/log4j2.properties,如果没有,则执行以下创建 log4j2 配置文件。

2024-02-23 17:23:01 417

原创 Spark Push Based Shuffle 原理分析

如果两个推测执行的 shuffle 数据同时达到,由于锁的限制,会先后执行时,后边的请求执行时,currentMapIndex 都等于当前 map 的 index,也不会有问题。当开启shuffle merge 时,第一个 block(仅一个) 是 ShuffleMergedBlockId, 代表所有已经 merge 的shuffle数据,后面是没有 merge 的数据(包括 shuffle 数据量为 0 和 shuffle 数据量超过限额,和其他原因失败造成没有 merge 的数据)

2024-02-22 09:33:00 752

原创 Go语言程序设计-第9章--使用共享变量实现并发

一个能在串行程序中正确工作的函数。如果这个函数在并发调用时仍然能正确工作,那么这个函数是并发安全的。在这里并发调用是指,在没有额外同步机制的情况下,从两个或者多个 goroutine 同时调用这个函数。如果一个类型的所有可访问方法和操作都是并发安全时,则它可称为并发安全的类型。数据竟态发生于两个 goroutine 并发读写同一个变量,并且至少一个是写入时。有3个方法避免数据竟态。第一种方法是不要修改变量。第二种方法是避免多个 goroutine 访问同一个变量。

2024-01-07 13:27:33 625 1

原创 Go语言程序设计-第8章--goroutine 和通道

当程序启动时,只有一个 goroutine 来调用 main 函数,称为主 goroutine. 新的 goroutine 需要通过 go 语句进行创建。在普通的函数或者方法调用前边加上 go 关键字。

2024-01-07 12:18:20 569 1

原创 Go语言程序设计-第7章--接口

接口类型是对其他类型行为的概括与抽象。Go 语言的接口的独特之处在于它是隐式实现。对于一个具体的类型,无须声明它实现了哪些接口,只要提供接口所必须实现的方法即可。

2024-01-05 10:56:42 779

原创 Go语言程序设计-第6章--方法

对象就是简单的一个值或者变量,并且拥有其方法,而方法是某种特定类型的函数。

2024-01-05 10:55:57 1133

原创 Go语言程序设计-第5章--函数

每个函数声明都包含一个名字、一个形参列表、一个可选的返回列表以及函数体:函数的类型称为。实参是按值传递的。如果提供的实参包含引用类型,比如指针、slice、map、函数或者通道,那么当函数使用形参变量时就有可能间接地修改实参变量。优先函数的声明没有函数体,说明这个函数使用除了 Go 以外的语言实现。package mathfunc Sin(x float64) float64 // 使用汇编语言实现一个函数如果有命名的返回值,可以省略 return 语句的操作数,称为。Go 程序使用通常的控制流机制(比

2023-12-29 11:39:14 1031

原创 go 语言程序设计第4章--复合数据类型

四种复合数据类型,分别是数组、slice、map 和结构体。数组和结构体都是聚和类型,他们的值由内存中的一组变量构成。数组和结构体的长度都是固定的。slice 和 map 都是动态数据结构,他们的长度在元素添加到结构时可以动态增长。

2023-12-28 17:15:56 575

原创 go 语言程序设计第3章--基础数据类型

Go 的数据类型分四大类:基础类型(basic type)、聚和类型(aggregate type)、引用类型(reference type)和接口类型(interface type).基本类型包括数字,字符串和布尔型。

2023-12-27 17:36:18 581 1

原创 go 语言程序设计第2章--程序结构

go 语言程序设计—第2章

2023-12-27 14:47:36 550

原创 go 语言程序设计第1章--入门

go 语言程序设计—第1章

2023-12-27 09:59:11 768

原创 HiveServer2 常见异常和处理方法

HiveServer2 常见的3种异常和处理方案

2023-11-14 16:03:15 1102

原创 k8s — Cluster Architecture

k8s — Cluster Architecture。

2023-11-14 11:39:33 416

原创 SQL关联 NULL 值的处理

如果我们希望t1.id is null 的行和 t2.id is null 的行也进行关联的话,字段的比较用。正常的 SQL 中,如果两张表关联,那么会自动加上过滤条件。

2023-09-28 10:09:52 539

原创 SQL JOIN 时 USING 和 ON 的异同

另外一点是不需要在关联字段前面加限定。如以下语句 SELECT 中的 film_id 不需要加上。ON 是更加普遍的用法,可以连接表 On 一个字段,多个字段,甚至一个条件表达式。在数据表做 join 时,即可以用 using,也可以用 on。USING 在两张表关联的字段名正好相同的时候有用。是不允许的,因为会照成歧义(两张表里都有)。时,关联的字段仅出现一次;注意SELECT 部分的。时,关联的字段出现两次。

2023-09-28 09:33:22 745

原创 spark 窗口函数对多列数据进行排名示例

Window [row_number() windowspecdefinition(english#159 :生成英语的顺序。Window [row_number() windowspecdefinition(math#158 :生成数学的顺序。如果我们要select 同学的 id,语文成绩,语文成绩排名,数学成绩,数学成绩排名,英语成绩,英语成绩排名。(1) Sort [chinese#157 DESC NULLS LAST] :对语文进行倒排序。先scan hzz.t_window。

2023-09-27 17:14:43 591

原创 spark3 spark-sql explain 命令的执行过程

以 explain 命令为基础,介绍了 SPARK sql 的执行过程。

2023-09-19 14:23:09 449 1

原创 Hive 任务限制同时运行的任务数量的配置

Hive任务的并发控制,指同时运行的 container 的数量,防止先提交的任务占用全部的队列资源,导致后来提交的任务无法申请到足够的资源。Hive 任务的并发控制,和使用的引擎相关。

2023-09-14 11:26:58 920 1

原创 spark SQLQueryTestSuite sql 自动化测试用例

SQLQueryTestSuite 是执行这些 SQL 的地方,对于 inputs 目录的每个文件,生成一个case。存放SQL的执行结果。在执行测试时,根据最新生成的结果和。如在inputs下增加一个 sum.sql 内容如下。如果一样,则测试成功,否则失败。把SQL 添加到自动化测试用例。目录存放原始的SQL.生成对应的 resuts。

2023-09-14 10:42:11 436 1

原创 hive anti join 的几种写法

注意 left join 中 b.c1 is null 不能谓词下推。我们要在t_a 中出现,而不在 t_b中出现的记录。t_a 表的记录如下。t_b 表的记录如下。

2023-09-05 15:45:27 659

原创 Spark Optimizer 规则详解和示例

Optimizer 是在 Analyzer 生成 Resolved Logical Plan 后,进行优化的阶段。

2023-09-01 17:19:56 527

原创 Spark Analyzed LogicalPlan 的生成过程用的规则

Spark SQL 解析之后是 Unresolved Logical Plan,经过 Analyzer 之后变为 Resolved Logical Plan。用的规则组成一个 batches: Seq[Batch]。一个 Batch 包含一组规则和这组规则的执行次数限制。

2023-08-31 08:59:05 96

原创 Max Compute 操作记录

编译 max compute-spark在 target 目录下生成 以下两个文件。

2023-08-17 16:08:23 227

原创 Spark 内存管理之 MemoryConsumer

MemoryConsumer 是内存的使用者,如 sort, shuffle。MemoryConsumer 的 spill 方法是抽象方法,由子类提供。

2023-08-07 17:22:53 413

原创 Spark 内存管理之 MemoryPool

Spark memory pool 定义了 Execution 内存和 Storage 内存及其相互借用的关系。

2023-08-07 14:43:43 210

原创 Spark 3.2 MemoryManager源代码分析

Spark 内存管理,执行内存和Storage 内存的管理和内存借用。

2023-08-07 09:51:32 166

原创 spark benchmark tpcds_sf5120_withdecimal_withdate_withnulls 各表分区数和记录数

tpcds_sf5120_withdecimal_withdate_withnulls 各表分区数和记录数。

2023-07-12 10:23:17 296

原创 Hive Metastore 表结构

catalogs 可以隔离元数据。一个 CATALOG 可以有多个数据库。从 SDS 表的每条记录都有一个 CD_ID。cds 表非常简单,只有一个字段。每个数据库一条记录。

2023-07-03 17:17:42 950

原创 spark debug

【代码】spark-sql debug。

2023-06-30 15:34:27 121

原创 数据库常见的物理优化算法

从 R 的block中依次读取记录,在 S 中查找是否有匹配记录,如果匹配,计算关联之后的记录,并拷贝到输出缓冲区。然后依次读取 R 中的记录,如果在 S 中找到,则删除。阶段1:从 R 读取数据到 M 个 buffer 中,并且在内存里对 M 个 buffer 的数据进行排序,然后输出排序之后的数据,成为一个子序列,子序列内部的数据有序。用 M - 1 内存存储已经见过的记录,即把已经见过的记录分成 M-1 个 bucket,则每读一条记录,则用在对应的 bucket 中查找是否已经见过这条记录。

2023-06-24 17:31:50 417

原创 数据库 Bags 概念和操作

S UNION ALL R 的结果: (1,2) 出现 4次, (3,4)出现3次, (5,6)出现1次。S INTERSECTION R 的结果: (1,2) 出现 1次, (3,4)出现1次。R: (1,2)出现1次, (3,4)出现2次, (5,6)出现1次。R: (1,2)出现1次, (3,4)出现2次, (5,6)出现1次。R: (1,2)出现1次, (3,4)出现2次, (5,6)出现1次。S:(1,2) 出现 3次, (3,4)出现1次。S:(1,2) 出现 3次, (3,4)出现1次。

2023-06-21 10:53:43 555

原创 hive metastore 参数 metastore.limit.partition.request 不起作用

MetastoreConf 中定义参数 , 可以限制请求的分区数量,但是在实际测试中不起作用。代码分析如下:2. DDLTask.execute当执行 时,DDLWork 类型的work.getShowPartsDesc() 不为空。3. DDLTask.showPartitions在此方法中可以看到,不论是否有分区,调用db,getPartitionNames 最后一个参数总是 -15. Hive.getPartitionNames6. HiveMetastoreClient.listPa

2023-06-13 15:01:26 861

Hive 性能测试程序,https://github.com/hortonworks/hive-testbench 编译

Hive 性能测试程序,https://github.com/hortonworks/hive-testbench 编译

2023-02-24

Tez 的设计者在 Hadoop 大会上的分享

1. Tez 的设计思想和解决的问题。

2022-03-15

Transactional Operations in Apache Hive: Present and Future

Hive 事务设计

2022-03-01

The Log-Structured Merge-Tree (LSM-Tree).pdf

The Log-Structured Merge-Tree (LSM-Tree).pdf

2021-06-22

Distributed cycle detection in large-scale sparse graphs.pdf

分布式大规模环检测的计算方法。In this paper we present a distributed algorithm for detecting cycles in large-scale directed graphs, along with its correctness proof and analysis. The algorithm is then extended to find strong components in directed graphs. We indicate an application to detecting cycles in number theoretic functions such as the proper divisor function. Our prototype implementation of the cycle detection algorithm, when applied to the proper divisor function, detects all sociable groups of numbers (cycles in the proper divisor function) up to 107.

2020-08-11

空空如也

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

TA关注的人

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