执行配置#
Ray Data 提供了许多配置,用于控制 Ray Dataset 执行的各个方面。您可以通过使用 ExecutionOptions
和 DataContext
来修改这些配置。本指南描述了这些配置中最重要的部分以及何时使用它们。
配置 ExecutionOptions
#
The ExecutionOptions
类用于在 Ray Dataset 执行期间配置选项。要使用它,请修改当前 DataContext
对象的 execution_options
属性。例如:
ctx = ray.data.DataContext.get_current()
ctx.execution_options.verbose_progress = True
resource_limits
: 在执行期间设置资源使用的软限制。例如,如果代码的其他部分需要一定量的资源,您可能希望限制 Ray Data 使用的资源量。默认情况下自动检测。exclude_resources
: 从 Ray Data 中排除的资源数量。如果你在同一集群上运行其他工作负载,请设置此项。注意:如果你在使用 Ray Data 和 Ray Train,训练资源会自动排除。否则,默认关闭。
对于每种资源类型,您不能同时设置
resource_limits
和exclude_resources
。
locality_with_output
: 设置此项以优先在输出节点(驱动执行的节点)所在的同一节点上运行任务。它也可以设置为一个节点ID列表,以在这些节点之间分散输出。此参数适用于map()
和streaming_split()
操作。如果您知道直接在消费者节点上消费输出数据(例如用于机器学习训练摄取),此设置非常有用。然而,其他用例可能会在此设置下导致性能损失。默认关闭。preserve_order
: 设置此项以保留流执行器下操作符处理块之间的顺序。默认关闭。actor_locality_enabled
: 是否启用本地感知任务分派给执行者。此参数适用于有状态的map()
操作。如果你知道你将直接在消费者节点上使用输出数据(例如用于机器学习批量推理),此设置很有用。然而,其他使用场景可能会在此设置下导致性能下降。默认关闭。verbose_progress
: 是否为每个操作符单独报告进度。默认情况下,仅报告 AllToAll 操作符和全局进度。此选项对于性能调试很有用。默认开启。
有关上述每个选项的更多详细信息,请参阅 ExecutionOptions
。
配置 DataContext
#
The DataContext
类用于配置 Ray Data 使用中的更多通用选项,例如可观察性/日志记录选项、错误处理/重试行为以及内部数据格式。要使用它,请修改当前 DataContext
对象中的属性。例如:
ctx = ray.data.DataContext.get_current()
ctx.verbose_stats_logs = True
在 DataContext
中的许多选项是为高级用例或调试而设计的,大多数用户不需要修改它们。然而,一些最重要的选项包括:
max_errored_blocks
: 允许出错的块的最大数量,如果为负数则表示无限制。此选项允许在块处理任务中出现应用程序级别的异常。这些异常可能是由UDF(例如,由于数据样本损坏)或IO错误引起的。失败块中的数据将被丢弃。此选项可用于防止由于少量坏块而导致长时间运行的作业失败。默认情况下,不允许重试。write_file_retry_on_errors
: 这是一个错误消息子字符串列表,当写入文件时遇到这些错误消息应触发重试。这对于处理写入远程存储系统时的瞬态错误非常有用。默认情况下,重试常见的瞬态 AWS S3 错误。verbose_stats_logs
: 统计日志是否应详细。这包括统计输出中的extra_metrics
等字段,这些字段默认情况下被排除。默认关闭。log_internal_stack_trace_to_stdout
:在记录到stdout
时是否包含 Ray Data/Ray Core 代码的内部堆栈帧。完整的堆栈跟踪始终写入 Ray Data 日志文件。默认关闭。raise_original_map_exception
: 是否抛出在map UDF中遇到的原始异常,而不是将其包装在UserCodeException
中。
有关上述每个选项的更多详细信息,请参阅 DataContext
。