配置Spark Executor退出时执行自定义代码
操作场景
在Spark中,Executor是负责在集群的工作节点上执行具体任务的进程。当Executor关闭时,通常要进行一系列的清理操作,例如释放内存、关闭文件句柄、断开网络连接等。这些清理操作可能会因为各种原因而耗时较长。为了避免清理操作无限期阻塞,可以设置一个最大超时时间。当清理操作超过这个时间时,系统会采取相应的措施,强制终止清理进程,确保集群资源的及时释放与高效利用。
约束与限制
本章节仅适用于MRS 3.2.0-LTS及之后版本。
配置参数
- 安装Spark客户端。
详细操作请参考安装MRS客户端。
- 使用客户端安装用户登录Spark客户端节点。
在Spark客户端的“{客户端安装目录}/Spark/spark/conf/spark-defaults.conf”配置文件中进行设置,修改如下参数:
参数
参数说明
取值示例
spark.executor.execute.shutdown.cleaner
Spark中控制Executor关闭时资源清理行为的配置参数。该参数决定了当Executor退出时,是否执行额外的清理操作(如删除临时文件、释放外部资源等),确保集群环境的及时释放与高效利用。
- true:支持Executor退出时执行清理操作。
- false:默认值为 false,即默认不执行清理操作。
true
spark.executor.execute.shutdown.cleaner.max.timeout
Spark中控制Executor关闭时资源清理最大超时时间的配置参数。该参数限定了Executor在退出前执行清理操作(如删除临时文件、释放外部资源)的最长等待时间,确保清理过程不会无限阻塞Executor的关闭。
240s