Flink Savepoint使用

3 篇文章 0 订阅
1 篇文章 0 订阅

savepoint是通过checkpoint机制为streaming job创建的一致性快照,比如数据源offset,状态等。

  • Savepoint有什么用?

savepoint由用户拥有,创建和删除。它一般用于Flink版本升级更新,业务 迁移,集群需要迁移,不容许数据丢失。

  • 怎么使用savepoint?

1.配置

​​​​​​​​​​​​​​conf/flink-conf.yaml文件参数:

state.savepoints.dir:  hdfs:///flink/savepoints

或者本地路径:

state.savepoints.dir:  file:///home/pengchenglin/flinkresult/savepoint

 

注意:

1.目标目录必须是JobManager和TaskManager都可以访问的位置,例如,分布式文件系统上的位置。

2.尽管看起来好像可以移动保存点,但是由于_metadata文件中的绝对路径,当前无法实现。请遵循FLINK-5778以了解解除此限制的进度。

 

2.触发保存点

1.触发保存点

$ bin/flink savepoint :jobId [:targetDirectory]

 

这将为ID为的作业触发一个保存点:jobId,并返回创建的保存点的路径。您需要此路径来还原和处置保存点。详细参数见附录A

示例

$ bin/flink savepoint 49df8ca28acf46144c4cdf27f0c01ef9
Triggering savepoint for job 49df8ca28acf46144c4cdf27f0c01ef9.
Waiting for response...
Savepoint completed. Path: file:/home/pengchenglin/flinkresult/savepoint/savepoint-49df8c-eae9dd657bf2
You can resume your program from this savepoint with the run command.

2.触发保存点并取消job

$ bin/flink cancel -s [:targetDirectory] :jobId

 

示例 

$ bin/flink cancel -s ffbc58efdd07b96b6e5e18a138b9bd0e

DEPRECATION WARNING: Cancelling a job with savepoint is deprecated. Use "stop" instead.
Cancelling job ffbc58efdd07b96b6e5e18a138b9bd0e with savepoint to default savepoint directory.
Cancelled job ffbc58efdd07b96b6e5e18a138b9bd0e. Savepoint stored in file:/home/pengchenglin/flinkresult/savepoint/savepoint-ffbc58-9daf3085de9a.

3.使用YARN触发保存点

$ bin/flink savepoint :jobId [:targetDirectory] -yid :yarnAppId

这将为ID为:jobIdYARN应用程序ID 的作业触发一个保存点:yarnAppId,并返回创建的保存点的路径。

3.从保存点恢复job

这将提交作业并指定要从中恢复的保存点。您可以提供保存点目录或_metadata文件的路径。

$ bin/flink run -s :savepointPath [:runArgs]

详细参数说明见附录B

示例

$ bin/flink run -s /home/pengchenglin/flinkresult/savepoint/savepoint-ffbc58-9daf3085de9a/_metadata  /home/pengchenglin/flinkjar/myflink-ExactlyOnceTest.jar 0
Starting execution of program

最后的0jar文件的参数。

 

  • 参考文献​​​​​​​​​​​​​​

https://ci.apache.org/projects/flink/flink-docs-release-1.9/ops/state/savepoints.html

  • 附录A

​​​​​​​

Savepoint动作对运行中的任务触发保存点,或者删除已存在的保存点。

  语法: savepoint [OPTIONS] <Job ID> [<target directory>]

 

  "savepoint" 动作选项:

     -d,--dispose <arg>        要释放的保存点的路径。

     -j,--jarfile <jarfile>        Flink程序jar文件。

  

Yarn集群模式选项:

     -m,--jobmanager <arg>            要连接到的作业管理器(主)的地址。使用此 标志连接到配置中指定的作业管理器以外的 作                                                          业管理器。

     -yid,--yarnapplicationId <arg>       附加到运行中的yarn session

     -z,--zookeeperNamespace <arg>   高可用性模式创建zookeeper子路径的命名空间

 

  默认模式选项:

     -m,--jobmanager <arg>           要连接到的作业管理器(主)的地址。使用此 标志连接到配置中指定的作业管理器以外的                                                             作业管理器。

     -z,--zookeeperNamespace <arg>   高可用性模式创建zookeeper子路径的命名空间

  • 附录B

​​​​​​​

Syntax: run [OPTIONS] <jar-file> <arguments>

  "run" action options:

     -c,--class <classname>               使用程序入口点(“main()”方法或“getplan()”方法)初始化。仅当jar文件未在其清单中指定类时才需要。

 

     -C,--classpath <url>                 向群集中所有节点上的每个用户代码类加   载器添加URL。路径必须指定一个协议(例   如file://),并且可以在所有节点上访问(例   如,通过nfs共享)。可以多次使用此选项   指定多个URL。协议必须被{@link

Java.NET.URLCaseLoopeRe}支持。

 

     -d,--detached                        如果出现,则以分离模式运行作业。

 

     -n,--allowNonRestoredState           允许跳过无法还原的保存点状态。如果在    触发保存点时从程序中删除了作为程序一    部分的运算符,则需要允许此操作。

 

     -p,--parallelism <parallelism>          运行程序的并行性。替代配置中指定的默    认值的可选标志。

 

     -py,--python <python>                带有程序入口点的python脚本。可以使用     “--pyfiles”选项配置依赖资源。

 

     -pyfs,--pyFiles <pyFiles>                为job附加自定义python文件。逗号可 用作分隔符来指定多个文件。标准的 python资源文件后缀,如.py/.egg/.zip, 都受支持。(例如: --pyfilesfile:///tmp/myresource.zip, hdfs:///$namenode\u address/myresource2.zip)

 

     -pym,--pyModule <pyModule>           带有程序入口点的python模块。此选项  必须与“--pyfiles”一起使用。

 

     -q,--sysoutLogging                   如果存在,则禁止将输出记录到标准输出。

 

     -s,--fromSavepoint <savepointPath>     要从中还原作业的保存点的路径(例如 hdfs:///flink/savepoint-1537)。

     -sae,--shutdownOnAttachedExit       如果作业以附加模式提交,则在突然终止    cli时执行尽力而为的群集关闭,例如响应    用户中断,例如键入ctrl+c。

  YARN集群模式选项:

      -d,--detached                        如果存在,则以分离方式运行作业模式

 

      -m,--jobmanager <arg>               要连接到的作业管理器(主)的地址。使   用此标志连接到配置中指定的作业管理    器以外的作业管理器。

 

     -sae,--shutdownOnAttachedExit        如果作业以附加模式提交,则在突然终止 cli时执行尽力而为的群集关闭,例如响 应用户中断,例如键入ctrl+c。

 

     -yat,--yarnapplicationType <arg>         为Yarn上的应用设置自定义应用类型

 

     -yD <property=value>                 对给定属性使用值

 

     -yd,--yarndetached                   如果存在,则以分离模式运行作业(已弃 用;请改用非Yarn的特定选项)

 

     -yh,--yarnhelp                       yarn session cli的帮助。

 

     -yid,--yarnapplicationId <arg>           附加到运行中的yarn session。

 

     -yj,--yarnjar <arg>                     Flink jar文件的路径。

 

     -yjm,--yarnjobManagerMemory <arg>    JobManager容器的内存

可选单位(默认:MB)。

     -yn,--yarncontainer <arg>              要分配的Yarn容器数(=任务管理器数)。

 

     -ynl,--yarnnodeLabel <arg>            指定yarn程序的yarn节点标签。

 

     -ynm,--yarnname <arg>                为yarn上的程序设置自定义名称。

 

     -yq,--yarnquery                     显示可用的yarn资源(内存、核心)。

 

     -yqu,--yarnqueue <arg>               指定yarn队列。

 

     -ys,--yarnslots <arg>                每个taskmanager的slot数量。

 

     -yst,--yarnstreaming                 使用流模式启动flink。

 

     -yt,--yarnship <arg>                 在指定目录中传送文件(t用于传输)。

 

     -ytm,--yarntaskManagerMemory <arg>   每个taskmanager容器的内存

                                          可选单位(default: MB)。

 

     -yz,--yarnzookeeperNamespace <arg>   用于为高可用性模式创建zookeeper子路    径的命名空间。

 

     -z,--zookeeperNamespace <arg>        用于为高可用性模式创建zookeeper子路    径的命名空间。

 

  默认模式选项:

     -m,--jobmanager <arg>            要连接到的作业管理器(主)的地址。使用此 标志连接到配置中指定的作业管理器以外的    作业管理器。

 

     -z,--zookeeperNamespace <arg>   用于为高可用性模式创建zookeeper子路    径的命名空间。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值