当前位置: 首页 > news >正文

Hive 3.1 在 metastore 运行的 remote threads

Remote threads 是仅当 Hive metastore 作为单独的服务运行是启动,请求需要开启 compactor。

有以下几种:

1. AcidOpenTxnsCounterService 统计当前 open 的事务数

从表 TXNS 中统计状态为 open 的事务。此事务数量可以再 hive metrics 中。

2. AcidHouseKeeperService

定期调用 txnHandler.performTimeOuts();
默认的 txn 的 timeout是 300s。删除300秒没有心跳的事务。

TXN_TIMEOUT("metastore.txn.timeout", "hive.txn.timeout", 300, TimeUnit.SECONDS,"time after which transactions are declared aborted if the client has not sent a heartbeat."),

DumpDirCleanerTask

dump dir 是

REPLDIR("hive.repl.rootdir","/user/hive/repl/","HDFS root dir for all replication dumps."),

此目录的 ttl 是

REPL_DUMPDIR_TTL("hive.repl.dumpdir.ttl", "7d",new TimeValidator(TimeUnit.DAYS),

AcidCompactionHistoryService

周期行调用 txnHandler.purgeCompactionHistory();
purgeCompactionHistory 的内容如下。对于可以合并的 entity(分区或者表(非分区表)),只保留最后几次的history。

/*** For any given compactable entity (partition, table if not partitioned) the history of compactions* may look like "sssfffaaasffss", for example.  The idea is to retain the tail (most recent) of the* history such that a configurable number of each type of state is present.  Any other entries* can be purged.  This scheme has advantage of always retaining the last failure/success even if* it's not recent.* @throws MetaException*/@RetrySemantics.SafeToRetryvoid purgeCompactionHistory() throws MetaException;

RuntimeStatsCleanerTask

如果此参数设置true,则query reexecution 的时候会收集统计信息。

HIVE_QUERY_REEXECUTION_ALWAYS_COLLECT_OPERATOR_STATS("hive.query.reexecution.always.collect.operator.stats", false,"If sessionstats are enabled; this option can be used to collect statistics all the time"),
RawStore ms = HMSHandler.getMSForConf(conf);
int maxRetainSecs=(int) MetastoreConf.getTimeVar(conf, MetastoreConf.ConfVars.RUNTIME_STATS_MAX_AGE, TimeUnit.SECONDS);int deleteCnt = ms.deleteRuntimeStats(maxRetainSecs);

maxRetainSecs 默认 3天。
删除表 RUNTIME_STATS 中 createTime <= 3天前的记录

RUNTIME_STATS_MAX_AGE("runtime.stats.max.age", "hive.metastore.runtime.stats.max.age", 86400 * 3, TimeUnit.SECONDS,"Stat entries which are older than this are removed.")

AcidWriteSetService

默认每60秒的周期调用一次 txnHandler.performWriteSetGC(); .

执行类似以下的语句。

select min(txn_id) commitHighWaterMark from TXNS where txn_state='OPEN';
delete from WRITE_SET where ws_commit_id < commitHighWaterMark;

EventCleanerTask

定期执行以下语句。

RawStore ms = HMSHandler.getMSForConf(conf);
long deleteCnt = ms.cleanupEvents();

cleanupEvents 删除 PARTITION_EVENTS表的过期数据。
PARTITION_EVENTS 表的数据,进在 hcatalog 中使用

MaterializationsRebuildLockCleanerTask

从表 MATERIALIZATION_REBUILD_LOCKS 中找到过期数据,然后删除。

http://www.lryc.cn/news/546400.html

相关文章:

  • 大语言模型揭秘:从诞生到智能
  • 基于模糊PID控制的供热控制系统设计Simulink仿真
  • 宝塔找不到php扩展swoole,服务器编译安装
  • LeetCode 1745.分割回文串 IV:动态规划(用III或II能直接秒)
  • C++发展
  • Python:函数,return返回值与形参实参
  • DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)示例2: 分页和排序
  • pandas 文本数据处理
  • GCC RISCV 后端 -- GCC 后端框架的一些理解
  • FastGPT 源码:如何实现 “问题优化“
  • CSS—flex布局、过渡transition属性、2D转换transform属性、3D转换transform属性
  • Spring Boot Gradle 项目中使用 @Slf4j 注解
  • FreeRTOS系列---程序正常,但任务无法创建
  • linux应用:errno、perror、open、fopen
  • 物联网中的气象监测设备具备顶级功能
  • 15-YOLOV8OBB损失函数详解
  • WHAT - 前端异步事件流处理场景梳理
  • 计算机网络软考
  • 安防监控/视频集中存储EasyCVR视频汇聚平台如何配置AI智能分析平台的接入?
  • 做小程序开发的安全防护全方案
  • 在Spring Boot项目中导出复杂对象到Excel文件
  • 从JDBC到数据库连接池:构建高性能Java应用的基石(中篇)
  • JavaWeb后端基础(6)
  • nio多线程版本
  • Electron、Tauri及其它跨平台方案终极对比
  • 蓝桥杯试题:二分查找
  • MongoDB Chunks核心概念与机制
  • 决策树(Decision Tree):机器学习中的经典算法
  • 高频 SQL 50 题(基础版)_1084. 销售分析 III
  • Python-selenium启动edge打开百度