- 《从0到1学习Flink》—— Mac 上搭建 Flink 1.
- 《从0到1学习Flink》—— Mac 上搭建 Flink 1.
- 《从0到1学习Flink》—— Flink 读取 Kafka 数
- Flink Data transformation(转换)
- 《从0到1学习Flink》—— Flink Data trans
- Flink 源码解析 —— 深度解析 Flink 序列化机制
- 《从0到1学习Flink》—— 如何自定义 Data Sink
- 《从0到1学习Flink》—— Flink 写入数据到 Kafk
- 《从0到1学习Flink》—— 如何自定义 Data Sourc
- 《从0到1学习Flink》—— Data Sink 介绍
准备工作
1、安装查看 Java 的版本号,推荐使用 Java 8。
2、在 Mac OS X 上安装 Flink 是非常方便的。推荐通过 homebrew 来安装。
1
brew install apache-flink
3、检查安装:
1
flink --version
结果:
1
Version: 1.6.0, Commit ID: ff472b4
4、启动 flink
1
2
3
4
zhisheng@zhisheng /usr/local/Cellar/apache-flink/1.6.0/libexec/bin ./start-cluster.sh
Starting cluster.
Starting standalonesession daemon on host zhisheng.
Starting taskexecutor daemon on host zhisheng.
接着就可以进入 web 页面(http://localhost:8081/) 查看
1、新建一个 maven 项目
创建一个 SocketTextStreamWordCount 文件,加入以下代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
packagecom.zhisheng.flink;
importorg.apache.flink.api.common.functions.FlatMapFunction;
importorg.apache.flink.api.java.tuple.Tuple2;
importorg.apache.flink.streaming.api.datastream.DataStreamSource;
importorg.apache.flink.streaming.api.datastream.SingleOutputStreamOperator;
importorg.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
importorg.apache.flink.util.Collector;
/**
* Created by zhisheng_tian on 2018/9/18
*/
publicclassSocketTextStreamWordCount{
publicstaticvoidmain(String[] args)throwsException{
//参数检查
if(args.length !=2) {
System.err.println("USAGE:\nSocketTextStreamWordCount <hostname> <port>");
return;
}
String hostname = args[0];
Integer port = Integer.parseInt(args[1]);
// set up the streaming execution environment
finalStreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
//获取数据
DataStreamSource<String> stream = env.socketTextStream(hostname, port);
//计数
SingleOutputStreamOperator> sum = stream.flatMap(newLineSplitter())
.keyBy(0)
.sum(1);
sum.print();
env.execute("Java WordCount from SocketTextStream Example");
}
publicstaticfinalclassLineSplitterimplementsFlatMapFunction>{
@Override
publicvoidflatMap(String s, Collector<Tuple2<String, Integer>> collector){
String[] tokens = s.toLowerCase().split("\\W+");
for(String token: tokens) {
if(token.length() >0) {
collector.collect(newTuple2(token,1));
}
}
}
}
}
接着进入工程目录,使用以下命令打包。
1
mvn clean package -Dmaven.test.skip=true
然后我们开启监听 9000 端口:
1
nc -l 9000
最后进入 flink 安装目录 bin 下执行以下命令跑程序:
1
flink run -c com.zhisheng.flink.SocketTextStreamWordCount /Users/zhisheng/IdeaProjects/flink/word-count/target/original-word-count-1.0-SNAPSHOT.jar 127.0.0.1 9000
注意换成你自己项目的路径。
执行完上述命令后,我们可以在 webUI 中看到正在运行的程序:
我们可以在 nc 监听端口中输入 text,比如:
然后我们通过 tail 命令看一下输出的 log 文件,来观察统计结果。进入目录 apache-flink/1.6.0/libexec/log,执行以下命令:
1
tail -f flink-zhisheng-taskexecutor-0-zhisheng.out
注意:切换成你自己的路径和查看自己的目录。
本文描述了如何在 Mac 电脑上安装 Flink,及运行它。接着通过一个简单的 Flink 程序来介绍如何构建及运行Flink 程序。
转载请注明地址:http://www.54tianzhisheng.cn/2018/09/18/flink-install
微信公众号:zhisheng
网友评论