bin/flink clear 命令是 Apache Flink 提供的一个命令行工具,用于清除指定作业的状态,包括 checkpoint 和 savepoint,并删除相关的数据,以便重新运行作业或将其重置为初始状态。
常用的命令参数如下:
- -s, --savepointPath :指定保存点路径(savepoint path),清除指定路径上的保存点记录。
- -yid, --yarnApplicationId :指定 YARN 应用 ID,清除指定 YARN 应用 ID 对应的 Flink 作业的状态和数据。
- -jid, --jobId :指定 Flink 作业 ID,清除指定作业的状态和数据,包括 checkpoint 和 savepoint。
- -a, --allAvailable:清除所有可用的状态和保存点数据。
下面是清除 Flink 集群状态的详细步骤:
- 停止所有 Flink 任务和 JobManager,确保 Flink 集群状态不会再改变。
- 在终端窗口中输入以下命令:
./bin/flink clear [--savepointPath ] [--cleanupMode ]
- 根据实际需求,可以设置一些选项来定制清除行为:
--savepointPath:保存点路径,如果指定,则在清除状态之前,会检查该路径下的保存点并自动清除。 --cleanupMode:清除模式,可以是“all”(清除所有状态),“job”(只清除作业状态)或“savepoint”(只清除保存点)。
以下是一个示例,演示如何在 Flink 集群中使用清除命令:
- 停止 Flink 集群中的所有任务和 JobManager。
- 在终端窗口中输入以下命令:
./bin/flink clear --savepointPath hdfs://localhost:9000/flink/savepoint --cleanupMode all
上述命令将清除 Flink 集群中的所有状态,并在清除之前检查 HDFS 中的保存点目录。
其他使用示例:
清除指定保存点路径上的保存点记录:
bin/flink clear -s
清除指定 YARN 应用 ID 对应的 Flink 作业的状态和数据:
bin/flink clear -yid
清除指定 Flink 作业 ID 的状态和数据(包括 checkpoint 和 savepoint):
bin/flink clear -jid
清除所有可用的状态和保存点数据:
bin/flink clear -a
请注意,清除 Flink 集群状态是一项带有风险的操作,需谨慎使用。建议备份所有重要的状态数据,以避免不可恢复的数据损失。