flink clear 命令详解

550 阅读2分钟

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 集群状态的详细步骤:

  1. 停止所有 Flink 任务和 JobManager,确保 Flink 集群状态不会再改变。
  2. 在终端窗口中输入以下命令:

./bin/flink clear [--savepointPath ] [--cleanupMode ]

  1. 根据实际需求,可以设置一些选项来定制清除行为:

--savepointPath:保存点路径,如果指定,则在清除状态之前,会检查该路径下的保存点并自动清除。 --cleanupMode:清除模式,可以是“all”(清除所有状态),“job”(只清除作业状态)或“savepoint”(只清除保存点)。

以下是一个示例,演示如何在 Flink 集群中使用清除命令:

  1. 停止 Flink 集群中的所有任务和 JobManager。
  2. 在终端窗口中输入以下命令:

./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 集群状态是一项带有风险的操作,需谨慎使用。建议备份所有重要的状态数据,以避免不可恢复的数据损失。