- 博客(833)
- 资源 (4)
- 收藏
- 关注
原创 HDFS Balancer
HDFS Balancer是用于均衡DataNode存储使用率的工具,通过迁移数据块使各节点使用率差距不超过设定阈值(默认10%)。常用命令为hdfs balancer -threshold 10,支持指定节点、调整策略等参数。关键配置包括设置带宽限制dfs.datanode.balance.bandwidthPerSec(默认100MB/s)以避免影响业务,建议根据磁盘类型调整。Balancer不会影响正在写入的文件或破坏副本策略,但会消耗IO和网络资源,应避开业务高峰执行。大集群需调优参数如max-si
2025-11-24 10:56:27
674
原创 HDFS 小文件的定位和治理
本文介绍了Hadoop小文件定位与治理的方法。定位方面:1)通过NameNode的DFS Used值和blocks数量计算平均block大小;2)使用hadoop fs命令统计目录文件数和空间占用。治理方面:建议先定位小文件来源,再针对性处理,如Hive可使用小文件合并工具。文章提供了具体计算公式和操作示例,帮助解决Hadoop集群中小文件过多的问题。
2025-11-17 16:21:27
237
原创 各种 Namenode 之间的差异
本文介绍了HDFS中NameNode及其辅助节点的功能区别:1)NameNode管理元数据,但启动加载大量edits文件导致性能瓶颈;2)SecondaryNameNode定期合并fsimage和edits;3)CheckpointNode从NameNode下载数据合并后上传;4)BackupNode直接保存最新数据到磁盘;5)StandbyNameNode支持高可用,可切换为Active节点。重点阐述了各节点在元数据管理、合并机制及高可用方面的不同实现方式,以及相关配置参数。
2025-11-16 11:23:18
417
原创 TezCompiler 的 optimizeOperatorPlan 执行分析
本文介绍了TezCompiler在optimizeOperatorPlan阶段的多种优化策略。主要包括常量传播、统计信息标注等基础优化,以及基于统计信息的相关优化如设置Reducer并行度、连接转换等。文章详细阐述了共享工作优化在不同层次的应用,以及动态分区裁剪优化的条件判断和限制机制。当动态分区数据量超过阈值(默认100M)时,系统会自动禁用该优化。此外,还介绍了半连接优化的多个场景和参数配置,包括基于收益阈值(默认0.5)的优化决策。这些优化策略共同提升了Tez引擎的查询执行效率。
2025-06-24 16:37:33
669
原创 Hive 逻辑优化器
Hive SQL 优化器功能摘要 Hive SQL 提供了多种优化器功能来提升查询性能: PointLookupOptimizer:将OR表达式转换为IN语句,例如 a=1 OR a=2 转为 a IN(1,2)。可通过参数控制最小转换数量(默认31)。 PartitionColumnsSeparator:从IN条件中提取分区字段进行分区过滤优化,能减少扫描分区数量。 ConstantPropagate:优化常量表达式: 移除总是为真(如1=1)的条件 短路总是为假的条件 传递表达式条件到上层查询 Synt
2025-06-18 15:02:04
455
原创 Metastore 架构示意图和常用 SQL
文章摘要:介绍了Hive Metastore架构示意图,并提供了一个常用SQL查询示例。该SQL用于检索特定数据库表(tpcds_bos_parquet_1000.web_site)的所有字段信息,通过连接DBS、TBLS、SDS和COLUMNS_V2四个系统表,按照字段索引顺序返回结果。这种查询有助于了解表结构,适用于数据分析和元数据管理场景。
2025-06-12 16:07:56
300
原创 Hive drop column 的解决方法
本文介绍了在Hive中创建和修改表的基本操作。首先,通过SQL语句创建了一个以text格式存储的表t1,并添加了一个新字段c3。接着,使用replace columns命令删除了新添加的字段。对于ORC格式的表,执行replace columns时可能会抛出异常,提示无法删除列。解决方法是设置hive.exec.schema.evolution为false,然后再执行replace columns操作。这些操作展示了Hive中表结构管理的基本技巧和常见问题的解决方法。
2025-05-20 16:13:04
578
原创 Hive PredicatePushDown 谓词下推规则的计算逻辑
谓词下推(PredicatePushDown)是一种常见的SQL优化技术,通过将过滤条件尽可能下推到查询树的底层,减少数据处理量,提升查询效率。文章详细介绍了谓词下推的处理顺序,并通过SQL示例展示了优化前后的操作树变化。重点讨论了FilterPPD、JoinPPD、TableScan PPD和Partition Table Function PPD等不同类型的谓词下推机制,以及它们在查询优化中的应用。此外,文章还指出了一些不能进行谓词下推的情形,如Limit操作和Script操作。
2025-05-15 19:25:37
997
原创 SQL JOIN 关联条件和 where 条件的异同
left outer join on 条件是关联条件,对于 left outer join,关联不上,左边的数据也要输出。对于 outer join 写到 on 和 where 部分结果是不一样的。对于 inner join,条件写到 on 和 where 部分是一样的。写到 where 部分代表着 join 结果的过滤。
2025-05-09 17:28:02
433
原创 Hive null safe的用法
NULL 和任意字符比较都返回 NULL,而不是 true 或者 false。如果我们想要 NULL 和 NULL 判断等于的时候返回 true,可以使用。如可以用于两个表关联,NULL 和普通的值一样。总结: null safe 是用。,代表 NULL SAFE。返回 true, 而。
2025-04-14 09:12:47
370
原创 Hive 使用 set hive.conf.validation=false 跳过参数检查
Hive 默认不允许设置 HiveConf.ConfVars 没有定义的参数,如。如我们设置一些参数在函数中使用。
2025-03-05 10:56:00
199
原创 Hive 3.1 在 metastore 运行的 remote threads
Remote threads 是仅当 Hive metastore 作为单独的服务运行是启动,请求需要开启 compactor。
2025-03-04 10:41:50
418
原创 StarRocks 架构
StarRocks 是 MPP 的查询引擎,用来做实时查询,提供亚秒级的查询性能。兼容 MYSQL 协议,可以和大部分 BI 工具进行无缝衔接。Apache 2.0 开源产品。
2024-11-18 19:23:42
828
原创 数据仓库为什么要分层建设?每一层的作用是什么?
例如,从ODS层中对用户的行为做一个初步的归类汇总,抽象出来一些通用的维度,假设维度为时间、IP、ID,并根据这些维度统计出相关数据,比如用户每个时间段在不同登录IP购买的商品数。或存放概念模型的维度定义,通过定义维度,确定维度主键,添加维度属性,关联不同维度等操作,构建整个企业的一致性数据分析维表,帮助您降低数据计算口径和算法不统一的风险。ODS层用于接收并处理需要存储至数据仓库系统的原始数据,其数据表的结构与原始数据所在的数据系统中的表结构一致,是数据仓库的数据准备区。二、每一层的作用是什么?
2024-11-15 09:49:46
665
原创 hive alter table add columns 是否使用 cascade 的方案
时加上 cascade 时,会把所有的分区都加上此字段。如果不加则只有新的分区会加上此字段,旧的分区没有此字段,即便数据文件里有对应的数据,也不能显示内容。注:判断表是否是外部表,使用 ‘show create table xxx’, 如果生成的是 ‘CREATE TABLE’ 是内部表,如果是是外部表。
2024-11-12 17:30:11
1549
原创 HiveMetastore 的架构简析
Hive Metastore 是 Hive 元数据管理的服务。可以把元数据存储在数据库中。对外通过 api 访问。
2024-11-06 09:44:48
1310
1
原创 Java 在 finally 里返回会忽略执行中的任意异常
Java 在 finally 里返回会忽略执行中的任意异常。当参数为 0 时,会抛出异常,然后进入finally 代码块, finally 中,有 return,会返回 “not success”,不会继续向上层抛出异常。如果我们的上层代码依赖异常,则会返回错误的结果。
2024-11-04 16:58:00
288
原创 Iceberg Catalog 的实现和迁移
因为在任意时刻,所有的读和写操作看到表的表的状态是相同的。两个并发的写入操作,第 2 个写入操作提交的时候不能覆写第 1 个写入操作对数据的修改,导致数据丢失。Iceberg Catalog 的接口定义了各种 Catalog 需要实现的方法,主要包括列出存在的表,创建表,删除表,检查表是否存在,给表改名。并且都支持迁移表的整个历史。register 迁移后,不删除旧的 catalog 中表定义,可以用来预迁移的验证。使用 register,不能使用不同的 catalog 写入数据,这样会导致数据丢失。
2024-10-09 11:46:55
1739
原创 优化 Iceberg 表的性能
每组文件合并之后,就生成一个新的快照,这样新的查询就可以利用合并的快照。| Merge-on-Read(equality deletes) | 慢 | 最快 | 使用更频繁的合并减少读开销 |如果表的字段非常多,可能照成 meta 文件特别大,可以关闭某些字段的收集或者限制收集的内容。如果快照的数量少于第3个参数设置的数量,则不清除。没有包含在 manifest 中的文件,如失败的作业建立的文件。特别是实时计算,每次插入特别少的记录,导致生成大量的文件。更改分区字段,新的写入立即生效。
2024-09-26 16:57:20
1220
原创 Iceberg 表不能用 Show Partitions 显示分区信息
【代码】Iceberg 表不能用 Show Partitions 显示分区信息。
2024-09-23 11:30:42
627
原创 Apache Iceberg 读写查询
metadata 下有4个文件,去掉创建时生成的 00000-831f9491-0ebf-45e6-9ead-902bc62ba658.metadata.json,现在解释以下 3 个文件。这时表目录下仅有一个 metadata 目录,metadata 目录下有一个 metadata.json 文件。第1列是数据生成的 timestamp,第2列是快照 ID。可以看到 metadata 文件增加了 3 个文件。插入记录后,表目录下有data 目录。或者 --package 参数。iceberg 是库名。
2024-09-20 16:03:25
1042
原创 Hadoop remote debug
摘要:本文介绍了Hadoop远程调试配置方法,包括设置环境变量启用JDWP调试功能。详细说明了针对不同Hadoop组件(Client、NameNode、DataNode、Balancer)的调试参数配置,均使用8000端口监听。同时提供了设置日志级别为DEBUG的方法,通过修改HADOOP_ROOT_LOGGER环境变量实现。所有配置均采用"*:8000"格式实现全局监听。
2024-07-05 11:16:51
398
原创 Kubernetes 文档 / 概念 / 存储 / 持久卷
存储的管理是一个与计算实例的管理完全不同的问题。PersistentVolume 子系统为用户和管理员提供了一组 API, 将存储如何制备的细节从其如何被使用中抽象出来。为了实现这点,我们引入了两个新的 API 资源:PersistentVolume 和 PersistentVolumeClaim持久卷(PersistentVolume,PV)是集群中的一块存储,可以由管理员事先制备, 或者使用存储类(Storage Class)来动态制备。持久卷是集群资源,就像节点也是集群资源一样。
2024-07-01 09:11:08
1405
原创 Kubernetes 文档 / 概念 / 存储 / 卷
此文档从 Kubernetes 官网摘录容器中的文件在磁盘上是临时存放的,这给在容器中运行较重要的应用带来一些问题。当容器崩溃或停止时会出现一个问题。此时容器状态未保存, 因此在容器生命周期内创建或修改的所有文件都将丢失。在崩溃期间,kubelet 会以干净的状态重新启动容器。当多个容器在一个 Pod 中运行并且需要共享文件时,会出现另一个问题。跨所有容器设置和访问共享文件系统具有一定的挑战性。
2024-06-11 11:00:09
1149
原创 Kubernetes 文档 / 概念 / 服务、负载均衡和联网 / 服务内部流量策略
此文档从 Kubernetes 官网摘录服务内部流量策略开启了内部流量限制,将内部流量只路由到发起方所处节点内的服务端点。这里的”内部“流量指当前集群中的 Pod 所发起的流量。这种机制有助于节省开销,提升效率。
2024-06-10 14:49:20
478
原创 Kubernetes 文档 / 概念 / 服务、负载均衡和联网 / Service ClusterIP 分配
此文档从 Kubernetes 官网摘录在 Kubernetes 中,Service 是一种抽象的方式, 用于公开在一组 Pod 上运行的应用。Service 可以具有集群作用域的虚拟 IP 地址(使用 type: ClusterIP 的 Service)。客户端可以使用该虚拟 IP 地址进行连接,Kubernetes 通过不同的后台 Pod 对该 Service 的流量进行负载均衡。
2024-06-10 14:42:02
1422
2
原创 Kubernetes 文档 / 概念 / 服务、负载均衡和联网 / 拓扑感知路由
Kubernetes 的部署方式有很多种,没有一种按区域分配端点的启发式方法能够适用于所有场景。此特性的一个关键目标是:如果内置的启发方式不能满足你的使用场景,则可以开发自定义的启发方式。启用自定义启发方式的第一步包含在了 1.27 版本中。这是一个限制性较强的实现,可能尚未涵盖一些重要的、可进一步探索的场景。
2024-06-10 14:41:30
1193
原创 # Kubernetes 文档 / 概念 / 服务、负载均衡和联网 / IPv4/IPv6 双协议栈
此文档从 Kubernetes 官网摘录。
2024-06-10 10:32:07
1369
原创 Kubernetes 文档 / 概念 / 服务、负载均衡和联网 / Service 与 Pod 的 DNS
此文档从 Kubernetes 官网摘录。
2024-06-09 15:41:30
827
原创 Kubernetes 文档 / 概念 / 服务、负载均衡和联网 / 网络策略
此文档从 Kubernetes 官网摘录如果你希望针对 TCP、UDP 和 SCTP 协议在 IP 地址或端口层面控制网络流量, 则你可以考虑为集群中特定应用使用 Kubernetes 网络策略(NetworkPolicy)。在定义基于 Pod 或名字空间的 NetworkPolicy 时, 你会使用选择算符来设定哪些流量可以进入或离开与该算符匹配的 Pod。另外,当创建基于 IP 的 NetworkPolicy 时,我们基于 IP 组块(CIDR 范围)来定义策略。
2024-06-03 10:08:42
722
原创 Kubernetes 文档 / 概念 / 服务、负载均衡和联网 / EndpointSlice
此文档从 Kubernetes 官网摘录Kubernetes 的 EndpointSlice API 提供了一种简单的方法来跟踪 Kubernetes 集群中的网络端点(network endpoints)。EndpointSlices 为 Endpoints 提供了一种可扩缩和可拓展的替代方案。
2024-06-01 17:39:16
1542
原创 Kubernetes 文档 / 概念 / 服务、负载均衡和联网 / Gateway API
此文档从 Kubernetes 官网摘录Gateway API 通过使用可扩展的、角色导向的、 协议感知的配置机制来提供网络服务。它是一个附加组件, 包含可提供动态基础设施配置和高级流量路由的 API 类别。
2024-05-31 09:49:25
538
转载 八张动图搞懂代理和反向代理
在分布式场景下,我们经常会听到“代理”、“反向代理”等这样的术语。如果你对它们的概念不是很清楚,那么可能会在具体场景下比较困惑。本期内容,主要跟大家介绍一下,代理和反向代理是什么?有什么区别?以及它们都有什么作用和使用案例。代理和反向代理从字面上很相似,但是在使用上却大有不同,两者都有匿名的能力,代理服务隐藏客户端的身份,而反向代理隐藏服务端的身份。如果你想保护内网中的客户端,可以使用代理服务转发客户端的请求;如果你想保护服务端,则客户在服务器前面架设反向代理服务。
2024-05-31 09:43:12
435
1
原创 Kubernetes 文档 / 概念 / 服务、负载均衡和联网 / Ingress
此文档从 Kubernetes 官网摘录Ingress 是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP。Ingress 可以提供负载均衡、SSL 终结和基于名称的虚拟托管。
2024-05-28 10:17:24
573
原创 Kubernetes 文档 / 概念 / 服务、负载均衡和联网 / 服务(Service)
Kubernetes 中的 Service 是一个对象 (与 Pod 或 ConfigMap 类似)。你可以使用 Kubernetes API 创建、查看或修改 Service 定义。通常你会使用 kubectl 这类工具来替你发起这些 API 调用。例如,假定有一组 Pod,每个 Pod 都在侦听 TCP 端口 9376,并且它们还被打上 app.kubernetes.io/name=MyApp 标签。
2024-05-27 16:30:01
647
原创 Kubernetes 文档 / 概念 / 工作负载 / 自动扩缩工作负载
此文档从 Kubernetes 官网摘录在 Kubernetes 中,你可以根据当前的资源需求扩缩工作负载。这让你的集群可以更灵活、更高效地面对资源需求的变化。当你扩缩工作负载时,你可以增加或减少工作负载所管理的副本数量,或者就地调整副本的可用资源。第一种手段称为水平扩缩,第二种称为垂直扩缩。
2024-05-27 09:50:05
370
原创 Kubernetes 文档 / 概念 / 工作负载 / 管理工作负载
此文档从 Kubernetes 官网摘录你已经部署了你的应用并且通过 Service 将其暴露出来。现在要做什么?Kubernetes 提供了一系列的工具帮助你管理应用的部署,包括扩缩和更新。
2024-05-27 09:25:18
587
Hive 性能测试程序,https://github.com/hortonworks/hive-testbench 编译
2023-02-24
The Log-Structured Merge-Tree (LSM-Tree).pdf
2021-06-22
Distributed cycle detection in large-scale sparse graphs.pdf
2020-08-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅