Flink官方入门项目简介

本文由林伟兵讲师解读Flink官方的Batch和Streaming代码实现,不涉及Flink基础概念,而是直接从用户角度出发,通过下载官方案例并分析代码,展示了如何在Flink 1.6.1版本下运行和理解批处理与流处理任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文作者:林伟兵,叩丁狼高级讲师。原创文章,转载请注明出处。

1. Flink简介

Flink 提供了三个核心的用户API:

  1. Batch
  2. Streaming
  3. Talbe & SQL

​ 本文不介绍Flink是什么,Flink的核心组件和特性,本文从用户的角度解读Batch和Streaming代码的实现方式,本文使用Flink1.6.1版本作为讲解。首先需要下载官方的案例,地址是:https://ci.apache.org/projects/flink/flink-docs-release-1.6/quickstart/java_api_quickstart.html.

2. 官方案例搭建

  1. 通过maven工具下载源码:

    $ mvn archetype:generate                               \
         -DarchetypeGroupId=org.apache.flink              \
         -DarchetypeArtifactId=flink-quickstart-java      \
         -DarchetypeVersion=1.6.1
    
  2. 也可以使用官方提供的地址下载,但是不管如何 都必须保证有maven环境:

    $ curl https://flink.apache.org/q/quickstart.sh | bash -s 1.6.1
    
  3. 下载后的项目架构是这样的:

    $ tree quickstart/
    quickstart/
    ├── pom.xml
    └── src
        └── main
            ├── java
            │   └── org
            │       └── myorg
            │           └── quickstart
            │               ├── BatchJob.java
            │               └── StreamingJob.java
            └── resources
                └── log4j.properties
    
  4. 将源码导入IDE中。打开IDE,点击“open”,将项目导进去,此时需要加载对应的maven依赖。等待项目构建完毕后,删除BatchJob.java和StreamingJob.java代码,因为这个两个代码只是提供了一个模板,并没有实质性的代码。

  5. 打开github网站,找到flink项目的example代码,将batch和streaming代码粘贴到项目中。

01.png
02.png
03.png

粘贴后的代码如下,运行程序后打印出单词统计的结果:

04.png

3. Batch代码解读:

如下贴出源代码,重要的代码部分参考注释:

public class WordCount {
   
   

	public static void main(String[] args) throws Exception {
   
   

		final ParameterTool params = ParameterTool.fromArgs(args);

		//创建执行环境,这里的环境可以是本地环境,也可以是集群环境.
		// 用户可以调用createLocalEnvironment()运行本地环境 也可以调用createRemoteEnvironment()运行集群环境
		//getExecutionEnvironment()可以动态获取环境
		final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();

		// ParameterTool就是对参数的一个封装类,这里将传递进来的参数作为全局参数
		env.getConfig().setGlobalJobParameters(params);

		// get input data
		DataSet<String> text;
		if (params.has("input")) {
   
   
			//如果运行程序携带input参数,则从input参数后面获取文件地址,从而读取文件的内容
			text 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值