flink入门例子,经典wordCount

该博客介绍了如何使用Flink进行实时WordCount计算。首先启动socket服务作为数据源,然后运行Flink计算任务对输入数据进行处理,实现单词计数的功能。

步骤:运行socket服务,再运行flink计算服务即可

这是提供数据源的服务

package wikiedits;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class SocketServer {

	public static void main(String[] args) {
		try {
			ServerSocket ss = new ServerSocket(9000);
			System.out.println("启动服务器....");
			Socket s = ss.accept();
			System.out.println("客户端:" + s.getInetAddress().getLocalHost() + "已连接到服务器");

			BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
			// 读取客户端发送来的消息
			BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
			while (true) {
				bw.write(((int) (Math.random() * 100)) % 10 + "\t");
				bw.write(((int) (Math.random() * 100)) % 10 + "\n");
				bw.flush();
				try {
					Thread.sleep(1000);
				} catch 
好的,下面是 Flink 入门例子的环境搭建、编码和测试步骤: 1. 环境搭建 首先,您需要下载并安装 Flink。您可以在 Flink 官方网站(https://flink.apache.org/)下载 Flink 的最新版本。下载完成后,解压缩文件并将其放在您喜欢的目录下。 然后,您需要设置 Flink 的环境变量。在 Linux 或 macOS 上,您可以将以下代码添加到您的 .bashrc 文件中: ```bash export FLINK_HOME=/path/to/your/flink export PATH=$FLINK_HOME/bin:$PATH ``` 在 Windows 上,您可以在系统属性中设置环境变量。 2. 编码 接下来,您需要创建一个新的 Java 项目。您可以使用 Maven、Gradle 或其他构建工具来创建项目。本例使用 Maven。 首先,创建一个名为 WordCount 的 Maven 项目: ```bash mvn archetype:generate \ -DarchetypeGroupId=org.apache.flink \ -DarchetypeArtifactId=flink-quickstart-java \ -DarchetypeVersion=1.13.0 ``` 在创建项目的过程中,您需要提供一些信息,例如项目的 GroupId、ArtifactId 和版本号。 然后,打开 WordCount/src/main/java/com/example/WordCount.java 文件,并将其替换为以下代码: ```java package com.example; import org.apache.flink.api.common.functions.FlatMapFunction; import org.apache.flink.api.java.DataSet; import org.apache.flink.api.java.ExecutionEnvironment; import org.apache.flink.api.java.tuple.Tuple2; import org.apache.flink.util.Collector; public class WordCount { public static void main(String[] args) throws Exception { final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); // 读取文本文件 DataSet<String> text = env.readTextFile("path/to/your/file"); // 对每行文本进行单词拆分并计数 DataSet<Tuple2<String, Integer>> counts = text.flatMap(new FlatMapFunction<String, Tuple2<String, Integer>>() { private static final long serialVersionUID = 1L; @Override public void flatMap(String value, Collector<Tuple2<String, Integer>> out) { for (String word : value.split("\\s")) { out.collect(new Tuple2<>(word, 1)); } } }).groupBy(0).sum(1); // 输出计数结果 counts.print(); } } ``` 请注意,您需要将“path/to/your/file”替换为您要读取的文本文件的路径。 3. 测试 最后,您可以使用以下命令来编译和运行 WordCount 项目: ```bash mvn clean package flink run target/wordcount-1.0-SNAPSHOT.jar ``` 这将编译 WordCount 项目并将其打包成一个名为 wordcount-1.0-SNAPSHOT.jar 的 JAR 文件。然后,您可以使用 Flink 运行此 JAR 文件。 如果一切顺利,您应该能够看到类似以下内容的输出: ```bash (Hello,2) (World,1) ``` 这表明“Hello”出现了2次,“World”出现了1次。 至此,您已经成功地完成了 Flink 入门例子的环境搭建、编码和测试。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值