flink在Windows下单机启动及开发简单demo示例

一、单机环境部署

Flink是一款兼顾批处理和流处理的数据处理框架,具体的介绍网上很多,就不做赘述了,这篇主要讲一下环境启动及一个最简的运行示例,关于source和sink、slot和parallelism相关内容见后续文章,同时这里只针对Windows系统进行操作,Linux的操作大同小异,不做单独说明。

首先在官网下载解压,这一步就不多说了,可自行选择需要的版本,这里使用1.9.2(刚下载完没过一周就出了1.10.0...),根目录中%FlinkPath%\conf\flink-conf.yaml可以对flink的一些参数进行修改;%FlinkPath%\conf\examples种预置了一些flink的官方demo;Windows环境下双击%FlinkPath%\bin\start-cluster.bat即可启动一个本地单节点flink环境,弹出的两个java弹窗种其中一个会显示任务中print的输出内容,访问localhost:8081可以看到flink提供的web任务调度监控页面。

Flink启动项目有两种方式,一种是通过web页面的Submit New Job添加打包好的jar并点击对应的Submit按钮来启动,这种方式报错信息不够直观,不太方便调试,还有一种方法是通过%FlinkPath%\bin\flink.bat run %jarPath%来启动项目,这样可以看到相关报错的堆栈信息。

二、创建模板工程

flink的模板工程同样使用maven的archetype,首先使用mvn archetype:generate命令(如果速度太慢可以下载http://repo1.maven.org/maven2/archetype-catalog.xml放入maven仓库的根目录中,然后通过mvn archetype:generate -DarchetypeCatalog=local命令加载本地模板,可以使用迅雷下载,贼快,但是似乎更新并不及时,现在flink到1.10.0版本但下载的xml中只更新到1.9.1),然后输入flink回车,选择3再选择相应版本,最后按照提示输入工程相关信息即可,模板工程就生成成功了,模板工程中包含两个java文件,其中一个批处理(batch)和一个流处理(streaming),打包时修改pom文件中的main函数然后mvn clean install即可。

三、批处理简单demo及运行示例

这里只提供批处理读写文件的最简示例,后续文章在source和sink的部分会提供一个流处理kafka到数据库的demo。

代码如下:

public class BatchJob {
	
	public static void main(String[] args) throws Exception {
		final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
		DataSet text = env.readTextFile("E:\\flink.txt");
		DataSet resultTest = text.filter(line -> !"flink".equals(line));
		resultTest.writeAsText("E:\\" + System.currentTimeMillis() + ".txt");
		env.execute("flink test1");
	}
}

修改pom中的main之后打包,在web页面中(如果出错建议用另一种启动方式查看错误堆栈信息)Submit New Job→Add New→Submit启动任务,flink.txt中内容:

flink在Windows下单机启动及开发简单demo示例_第1张图片

生成文件内容:

flink在Windows下单机启动及开发简单demo示例_第2张图片

本例中只使用了filter一个operator,flink本身提供多个operator,按需使用。

你可能感兴趣的:(学习笔记)