Storm作业迁移Flink指引

Storm作业称为Topology,由一系列的Spout组件,以及Bolt组件组成;如果要把运行在Storm的作业整体迁移到Flink上运行,则可以参考以下示意图和步骤:

Storm作业迁移Flink运行

详细步骤如下:

1. 修改Storm作业代码

A. 修改依赖:在Storm作业工程的依赖文件pom.xml中去掉storm-core的依赖,然后加上如下依赖到pom.xml中;

  <dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-storm_2.11</artifactId>
    <version>${flink_version}</version>
</dependency>

B. 修改代码:找到Storm作业的Topology提交的代码逻辑,进行如下修改:将代码中的StormSubmitter修改为FlinkSubmitter,LocalCluster修改为FlinkLocalCluster,NimbusClient修改为FlinkClient;将作业提交中的TopologyBuilder.createTopology()生成的StormTopology参数,修改为FlinkTopology.createTopology($builder); 具体修改如下所示:

Storm作业提交代码修改

C. 作业Topology各组件的定义的代码不用修改;

D. 代码实现中可以使用org.apache.flink.storm.util.StormConfig指定Nimbus.host,以及Nimbus.thrift.port参数,对应于Flink的jobmanager的两个参数:jobmanager.rpc.address,jobmanager.rpc.port;如果没有指定以上参数,则默认会读取flink-conf.yaml中的jobmanager.rpc.address, 以及jobmnager.rpc.port;

2. 作业打包,并提交

A. 使用maven打包作业代码,执行命令mvn clean install –DskipTests,在作业工程的target目录找到打包后的jar;

B. 将打包完的作业包上传到Flink的客户端节点某个目录上,并确定Flink客户端的lib库中包含了flink-storm,以及storm-core 作业相关的依赖包,然后Flink客户端的根目录下执行命令

bin/flink run -c ${main_class} ${job_jar_path} ${args}

其中:

${main_class}: 是指运行的作业的主类;

${job_jar_path}: 是指运行的作业的jar包所在的路径;

${args}: 作业运行所需要的参数;

C. 观察作业是否在Flink上正常运行,如下:

Storm 作业在Flink上运行

并比较原本的storm作业和Flink作业运行结果是否正确;

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏逸鹏说道

跨平台开发之~ VSCode开发第一个C程序

VSCode的安装就不讲了,可以参考这个(http://www.cnblogs.com/dunitian/p/6661644.html) 写一个简单的C,然后F...

3147
来自专栏NetCore

Win7+Win8双系统安装教程!零风险超简单2步搞定

Win7 Win8双系统安装(一)解压   Win7和Win8双系统安装教程有木有?Win7和Win8双系统安装有多简单?Win7和Win8双系统安装2步搞定?...

1806
来自专栏云知识学习

linux下安装安装杀毒软件clamav杀毒

一、安装clamav文件 相关下载链接:http://www.clamav.net/downloads 使用命令:wget 加上对应版本的软件链接

48113
来自专栏杂七杂八

pip安装提示PermissionError: [WinError 5]错误问题解决

今天想要更新gensim包,结果发现pip install --upgrade gensim,命令最后报错,提示PermissionError,我就想是不是权限...

3367
来自专栏运维技术迷

Veeam Backup & Replication(三):创建备份与还原备份

一、创建备份和手动备份 1.创建备份 目标:为esxi服务器上的xp test虚拟机做备份 1.1 打开Veeam软件,选择Backup & Replic...

3754
来自专栏漫漫全栈路

腾讯云服务器搭建个人博客教程

腾讯云服务器搭建个人博客教程 本教程用于武汉商贸职业学院2016年10月云+校园推广活动公开课使用,发布于博客暂作存档。 ---- 实验架构 ? ---- 环...

7624
来自专栏逸鹏说道

Linux下搜狗输入法和快捷键Ctrl+Space冲突的解决

把搜狗的启动快捷键给删了(如果有两个键盘【英+中】,你按Shift就可以切换了,完全没必要占着茅坑)

734
来自专栏运维小白

10.20 firewalld的9个zone

Linux防火墙-firewalld 打开firewalld systemctl disable iptables systemctl stop iptable...

1609
来自专栏破晓之歌

未分类错误集合 原

1184
来自专栏xcywt

《Linux命令行与shell脚本编程大全》 第七章理解Linux文件权限

Linux沿用了Unix文件权限的方法,允许用户和组根据每个文件和目录的安全性设置来访问文件。 用户权限通过创建用户时分配的用户ID(UID)来跟踪的。每个用户...

1865

扫码关注云+社区