Task级别快照

概要

Task快照是另一种可靠查询机制,它是query重试查询和Operator快照重试的折中机制。与query重试查询相比,在发生故障后,通过Task快照进行Task粒度重试恢复,而不是整个query重新执行,效率更高。与Operator快照相比,Task粒度的快照空间占用更小,性能也更好。

默认情况下,查询失败后需要手动重试查询。openLooKeng中通过Task级别快照进行自动恢复来确保可靠的查询执行。Task级别快照启用后,查询过程中task之间的交换数据通过快照进行物化,当查询过程中Coordinator检测到worker发生故障或者task失败时,Coordinator调度空闲Worker读取故障worker最近保存的Task快照,然后自动恢复查询执行,这样可以保证查询的可靠性。对于耗时长的查询,将给用户更加确切的执行结果,更适合批处理场景。

启用Task级别快照

Task级别快照自动恢复机制,对于需要长时间运行的复杂查询最有效果。默认情况下处于禁用状态,可通过配置文件etc/config.properties中的配置属性retry-policy进行启用。

  • 启动retry-policy=TASK
  • 停用retry-policy=NONE

运行要求

为了确保查询执行通过Task快照能够自动恢复,保证查询执行的可靠性,集群需要满足以下要求:

  • 启用Task级别快照特性
  • 集群至少包含2个工作节点
  • 除故障节点外,其他工作节点处于健康状态

限制

  • 支持的语句:仅支持SELECTINSERTCREATE TABLE AS SELECT(CTAS)类型的语句,不包括类似INSERT INTO CUBE的语句。
  • 数据源:只能从Hive目录中的数据表读取。
  • 目标表:只能写入Hive目录中的表,格式为ORC
  • 特性互斥说明:Task快照功能和Operator快照功能不支持同时启用。

重试策略

当Coordinator和Worker之间的通信失败或超时,以及task执行失败时,将触发重试查询。相关故障重试的配置如下:

  • 属性:task-retry-attempts-per-task
    • 默认值:4
    • 描述:重试返回失败前,单个Task允许的最大重试次数。
  • 属性:task-initial-delay
    • 默认值:10s
    • 描述:Task在重试之前必须等待的最短时间。
  • 属性:task-max-delay
    • 默认值:1m
    • 描述:Task在重试之前必须等待的最长时间。

Task快照的存储方式

查询过程中Task间的交换数据和状态,以Task快照的形式物化到文件系统中,其中文件系统支持两种类型:localhdfs。当发生故障时,查询过程中Coordinator调度其他空闲的Worker节点从文件系统中的指定目录读取Task快照,进行数据再次加载和重试。因此,所有Worker节点都必须能够共享访问存储Task快照的文件系统,这样才可以进行正常的恢复。交换管理器通过配置文件etc/exchange-manager.properties进行共享文件系统的配置。相关属性如下:

  • 属性:exchange-manager.name
    • 描述:配置交换管理器的名称。
  • 属性:exchange-filesystem-type
    • 描述:存储Task快照的文件系统客户端名称。如果exchange-filesystem-type=exchange,名称为exchange客户端将用于存储查询执行产生的Task快照。文件系统客户端的配置文件路径etc/filesystem/exchange.properties(properties文件名需要和exchange-filesystem-type保持一致),参见交换文件系统客户端配置
  • 属性:exchange.base-directories
    • 描述:文件系统的根目录,存储Task快照的起始文件路径。所有Worker节点都必须具备共享访问的权限。
  • 属性:exchange.compression-enabled
    • 描述:该属性启停Task快照的压缩功能。

请注意,Task快照用于保存Worker节点查询执行过程中,各Task之间的交换数据和状态。查询执行前确保集群有足够的空闲空间存储这些Task快照,查询完成后会自动清理来释放存储空间。

性能开销

从错误和Task快照中恢复需要成本。捕获快照需要时间,时间长短取决于复杂性。因此,需要在性能和可靠性之间进行权衡。

建议在必要时打开Task快照机制,例如对于长时间运行的查询。对于这些类型的工作负载,拍摄快照的开销可以忽略不计。

配置

Task快照可靠查询机制的详细配置,请参见属性参考

有奖捉虫

“有虫”文档片段

0/500

存在的问题

文档存在风险与错误

● 拼写,格式,无效链接等错误;

● 技术原理、功能、规格等描述和软件不一致,存在错误;

● 原理图、架构图等存在错误;

● 版本号不匹配:文档版本或内容描述和实际软件不一致;

● 对重要数据或系统存在风险的操作,缺少安全提示;

● 排版不美观,影响阅读;

内容描述不清晰

● 描述存在歧义;

● 图形、表格、文字等晦涩难懂;

● 逻辑不清晰,该分类、分项、分步骤的没有给出;

内容获取有困难

● 很难通过搜索引擎,openLooKeng官网,相关博客找到所需内容;

示例代码错误

● 命令、命令参数等错误;

● 命令无法执行或无法完成对应功能;

内容有缺失

● 关键步骤错误或缺失,无法指导用户完成任务,比如安装、配置、部署等;

● 逻辑不清晰,该分类、分项、分步骤的没有给出

● 图形、表格、文字等晦涩难懂

● 缺少必要的前提条件、注意事项等;

● 描述存在歧义

0/500

您对文档的总体满意度

非常不满意
非常满意

请问是什么原因让您参与到这个问题中

您的邮箱

创Issue赢奖品
根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。
有奖捉虫