IDEA上运行Flink任务的实战教程

欢迎访问我的GitHub

https://github.com/zq2599/blog_demos

内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;

IDEA是常用的IDE,我们编写的flink任务代码如果能直接在IDEA运行,会给学习和开发带来很大便利,例如改完代码立即运行不用部署、断点、单步调试等;

环境信息

  • 电脑:2019版13寸MacBook Pro,2.3 GHz 四核Intel Core i5,8 GB 2133 MHz LPDDR3
  • 操作系统:macOS Catalina 10.15.3
  • JDK:1.8.0_211
  • Maven:3.6.0
  • IDEA:2018.3.5 (Ultimate Edition)
  • Flink版本:1.9.2

关于正版IDEA

如何免费使用正版IDEA,可以参考《免费申请和使用IntelliJ IDEA商业版License指南》

开发

  1. 首先确保您电脑上maven已装好;
  2. 创建一个flink任务的maven工程,找个干净目录执行以下命令:
mvn \
archetype:generate \
-DarchetypeGroupId=org.apache.flink \
-DarchetypeArtifactId=flink-quickstart-java \
-DarchetypeVersion=1.9.2

按提示输入groupId、artifactId、version、package等内容:

4. 现在maven工程已生成,用IDEA导入这个工程,如下图:

5. 以maven的类型导入:

6. 导入成功后的样子:

7. 修改StreamingJob.java,加入功能是监听本地18081端口,得到的字符串做word count操作,完整代码在此下载:https://raw.githubusercontent.com/zq2599/blog_demos/master/files/StreamingJob.java

8. 现在的代码已经能运行,但flink网页却还不能访问,会显示以下错误信息,需要继续做些设置:

9. 下载flink-1.9.2安装包,这里面有flink网页服务用到的一个jar,地址是:https://www-eu.apache.org/dist/flink/flink-1.9.2/flink-1.9.2-bin-scala_2.11.tgz
10. flink-1.9.2-bin-scala_2.11.tgz下载后解压,在lib目录下有个flink-dist_2.11-1.9.2.jar文件,记住此文件的位置,稍后会用到;
11. 回到IDEA,在项目上点击右键,点击菜单Open Module Settings:

12. 在弹出的窗口做如下操作,目的是给项目中增加jar:

13. 弹出选择文件的窗口,请选择刚才准备好的文件flink-dist_2.11-1.9.2.jar:

14. 设置工作已经完成,由于StreamingJob的工作是读取本机18081端口的数据,所以我们要把18081端口的服务启动起来,不然StreamingJob运行时是连不上端口的,打开一个控制台,执行命令:nc -l 18081
15. 现在可以将StreamingJob运行起来,如下图,右键点击StreamingJob,选择Run 'StreamingJob.main()':即可启动flink任务,如果想打断点调试,请选择Debug 'StreamingJob.main()'

16. 回到刚才执行nc命令的控制台,输入一些字符串,例如"aaa bbb aaa",然后回车;
17. 再回到IDEA,可见StreamingJob已经从18081端口读到了数据并且输出了统计结果:

18. 在IDEA的控制台搜索关键字localhost,如下图红框,可以查到flink网页的端口,我这里是62641:

19. 浏览器访问http://localhost:62641,如下图,可见flink网页已经正常显示,正在运行的任务也能看到:

至此,最简单的IDEA运行flink任务的实战就完成了,如果您也在学习flink,希望本文能给您一些参考;

https://github.com/zq2599/blog_demos

到此这篇关于IDEA上运行Flink任务的文章就介绍到这了,更多相关IDEA上运行Flink任务内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • IntellJ IDEA JAVA代码任务标记实例解析

    一.作用: 1.代码量非常大的项目,在某一行中需要在后续阶段实现一个功能,如果不标注下次再找的时候就非常困难了,可以大大的提高开发效率! 2.在团队合作中,还可以告诉别人某处敏感代码的状态. 二.以下为常见的两种注释标记: 1.// TODO: 表示在此处将要实现的功能,提醒你在后续阶段将会在此处添加代码 2.// FIXME: 表示此处的代码逻辑有出入,或者根本不能运行,提醒你在后续阶段将会修改此处代码 3.// 在Eclipse中除了上面两种还有一个标记XXX: 表示此处的代码虽然实现了功能

  • Flink开发IDEA环境搭建与测试的方法

    一.IDEA开发环境 1.pom文件设置 <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <encoding>UTF-8</encoding> <scala.version>2.11.12</scala.version>

  • IDEA上运行Flink任务的实战教程

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS等: IDEA是常用的IDE,我们编写的flink任务代码如果能直接在IDEA运行,会给学习和开发带来很大便利,例如改完代码立即运行不用部署.断点.单步调试等: 环境信息 电脑:2019版13寸MacBook Pro,2.3 GHz 四核Intel Core i5,8 GB 2133 MHz LPD

  • Mybatis实战教程之入门到精通(经典)

    什么是mybatis MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点: 1. 从配置文件(通常是XML配置文件中)得到 ses

  • Mysql实现企业级日志管理、备份与恢复的实战教程

    背景 随着业务的发展,公司业务和规模不断扩大,网站积累了大量的用户信息和数据,对于一家互联网公司来说,用户和业务数据是根基.一旦公司的数据错乱或者丢失,对于互联网公司而言就等于说是灭顶之灾,为防止系统出现操作失误或系统故障导致数据丢失,公司要求加强用户数据的可靠性,要求全面加强数据层面备份,并能在故障发生时第一时间恢复. 数据备份形式 文件备份: 通过Linux的备份命令把文件统一打个包存起来,可存在本地和远程服务器,等到要恢复时,再用这些文件恢复到指定位置. 数据库数据备份: 在一些对数据可靠

  • SpringBoot实战教程之新手入门篇

    目录 1.SpringBoot简介 2.SpringBoot安装 2.1.基于Maven的安装 2.2.基于Gradle的安装 3.创建HelloWorld应用 4.代码结构 5.Configuration类 5.1.导入其它配置 6.自动化配置 6.1.逐渐替换自动化配置 6.2.禁止特定的自动化配置 7.使用@SpringBootApplication注解 总结 1. SpringBoot 简介 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化 Spri

  • K8s实战教程之容器和 Pods资源分配问题

    目录 目标 一.启动服务 二.创建命名空间 2.1.查看名字空间 2.2.创建名字空间 2.3.删除名字空间 三.指定 CPU 请求和 CPU 限制 3.1.CPU 单位 3.2.设置超过节点能力的 CPU 请求 3.2.1.创建 Pod 3.2.2.Pod 的状态 3.2.3.Pod 详情 3.2.4.删除 Pod 四.不限制CPU 总结 目标 本篇文章我们将学习,如何为容器设置 CPU request(请求) 和 CPU limit(限制). 容器使用的 CPU 不能超过所配置的限制. 如果

  • Systemd 入门实战教程

    我介绍了 Systemd 的主要命令,今天介绍如何使用它完成一些基本的任务. 一.开机启动 对于那些支持 Systemd 的软件,安装的时候,会自动在/usr/lib/systemd/system目录添加一个配置文件. 如果你想让该软件开机启动,就执行下面的命令(以httpd.service为例). $ sudo systemctl enable httpd 上面的命令相当于在/etc/systemd/system目录添加一个符号链接,指向/usr/lib/systemd/system里面的ht

  • ORACLE 11g从 11.2.0.1升级到11.2.0.4 详细实战教程

     1.准备安装 查看当前oracle版本,确定是比较旧的11.2.0.1 [oracle@hch_test_121_90 ~]$ rlwrap sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Fri Mar 17 15:20:45 2017 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g E

  • Python调用C# Com dll组件实战教程

    之前公司有套C# AES加解密方案,但是方案加密用的是Rijndael类,而非AES的四种模式(ECB.CBC.CFB.OFB,这四种用的是RijndaelManaged类),Python下Crypto库AES也只有这四种模式,进而Python下无法实现C# AES Rijndael类加密效果了. 类似于这种C# 能实现的功能而在Python下实现不了的,搜集资料有两种解决方案,第一种方式,使用IronPython 直接调用C# dll文件,教程网上很多,不在赘述了,这种方式有个缺点,用的是ir

  • windows上安装Anaconda和python的教程详解

    一提到数字图像处理编程,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因此,我们这里使用Python这个脚本语言来进行数字图像处理. 要使用Python,必须先安装python,一般是2.7版本以上,不管是在windows系统,还是Linux系统,安装都是非常简单的. 要使用python进行各种开发和科学计算,还需要安装对应的包.这和matlab非常相似,只是matla

  • 微信小程序开发实战教程之手势解锁

    代码:https://github.com/jsongo/wx-gesture-lock 这个手势解锁的demo使用了https://github.com/lvming6816077/H5lock这个项目的算法和主逻辑,整合到微信小程序来,修改了很多地方的语法来适配小程序,去掉了window.document等函数,同时也添加了新的机制来解耦界面的操作和第三方库,这个下面会介绍到. 不过可惜的是,这个demo也只能在开发工具上玩玩,到真机上测试的时候,手指一滑动,页面会跟着滚动,手势没法使用.

随机推荐