热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c++上传oss中文路径报错_如何将Flink的savepoint保存到阿里云OSS上

导读:Flink提供了Savepoint保存点,我们可以使用Savepoint进行Flink作业的停止与重启恢复等。而保存点存储位置是由flink-co

导读:Flink 提供了Savepoint保存点,我们可以使用 Savepoint 进行 Flink 作业的停止与重启恢复等。而保存点存储位置是由flink-conf.yaml配置文件中的state.savepoints.dir属性进行指定的。常见如存储在本地 file:///flink/savepoints或 HDFS hdfs:///flink/savepoints,Flink同时也支持了其他的Flie System,本章主要讨论的是如何将savepoint存于阿里云OSS上。

基础概念
  • Flink Savepoint,是依据 Flink checkpointing 机制所创建的流作业执行状态的一致镜像。 可以使用 Savepoint 进行 Flink 作业的停止与重启、fork 或者更新。
  • OSS,是阿里云提供的海量、安全、低成本、高可靠的云存储服务,提供99.9999999999%的数据可靠性。使用RESTful API 可以在互联网任何位置存储和访问,容量和处理能力弹性扩展,多种存储类型供选择全面优化存储成本。
69cf91967eeff9d5f87c64aac1226339.png

配置

注:本例Flink采用Standalone Cluster形式部署,版本 1.10

1、为了使Flink支持OSS,需要将 /flink/opt 目录中将 flink-oss-fs-hadoop-1.10.0.jar 复制到 /flink/lib 目录下。其作用是为oss:// scheme的 URLs 注册默认的FileSystem包装器。

61e9dc5da5ad7e1e506da3039acb9b6d.png

2、修改/flink/conf/flink-conf.yaml 文件中state.savepoints.dir属性,缺省Savepoint目标目录

state.savepoints.dir: oss:///

b491a5d212fd0b787f0b06cfa8ac2e32.png

3、设置OSS FileSystem包装器后还需要添加确保允许Flink可以访问OSS的一些配置

e5b2ef520cf50876109758253aa739aa.png

#必须配置的参数fs.oss.endpoint、fs.oss.accessKeyId、fs.oss.accessKeySecret#其他配置可参考http://hadoop.apache.org/docs/current/hadoop-aliyun/tools/hadoop-aliyun/index.html

4、启动集群

#启动集群/flink/bin/start-cluster.sh

481fb1d10854932115c3c9b26833c46b.png

测试

1、通过Apache Flink Dashboard 提交一个Flink Job

7240534f19afa3fae4ba01736b229530.png

2、使用REST API 接口停止 Job

Flink 官方提供了一套REST API,可用于查询正在运行的作业以及最近完成的作业的状态和统计信息等。https://ci.apache.org/projects/flink/flink-docs-stable/monitoring/rest_api.html

这里我们调用 /jobs/:jobid/stop 停止Job,这里有两个参数:

  • targetDirectory:指定savePoint的保存地址(根据官方文档说明,在这里指定目标目录会覆盖缺省值。而如果既未配置缺省值也未指定自定义目标目录,则触发 Savepoint 将失败)
  • drain:(可选)设置为true可以在获取保存点之前刷新MAX_WATERMARK,以清除等待计时器启动的任何状态
b9b2ada5a994a504db15b74d8021b9e7.png

调用后查看结果,返回一个requestId值,该值是接下来要获取savepoint路径的triggerid。

a6da7ecad241f9c67c2357e9882d2a84.png

3、由于调用的停止Job服务是一个异步操作,并没有立即返回给我们savepoint路径。这时候需要调用 /jobs/:jobid/savepoints/:triggerid 获取savePoint路径

2147d69d01f50c59e4bb31f87f5c7a67.png

调用后结果返回了savepointPath

7e865e73aff66bdd20934fb9232ff687.png

4、查看阿里云 OSS,savepoint保存成功

884d5f8a4a3d5a265eff308fce144c40.png

5、使用savepoint恢复Job,通过REST API /jars/:jarid/run 接口恢复Job,savepointPath参数中上传刚才获取到的savePointPath

ea5fea44f56727f6fbbc5c97c8248300.png
69c0947fdcbf5d889dcc00c52799ea01.png

Job 恢复成功

f11dc983549f62ec3cb7eddbaa99345e.png

最后

以上就是如何将Flink的savepoint保存到阿里云OSS上解决方案,大致为以下几部

  • 移动 flink-oss-fs-hadoop-1.10.0.jar至lib 目录下
  • 修改flink-conf.yaml的 state.savepoints.dir属性
  • 在flink-conf.yaml中加入允许Flink访问OSS的属性

感谢您的阅读,如果喜欢本文欢迎关注和转发,本头条号将坚持持续分享IT技术知识。对于文章内容有其他想法或意见建议等,欢迎提出共同讨论共同进步



推荐阅读
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 本文介绍了如何使用python从列表中删除所有的零,并将结果以列表形式输出,同时提供了示例格式。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
author-avatar
maggieting0334_990
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有