1.在Windows10..Windowsserver2008R2X64..MacOS10.15.3下都无法正常运行Flink1.10.0 推测应该是权限问题,看日志里面无法启动.
2.同样的文件使用ubuntu18直接就可以启动,解压flink-1.10.0-bin-scala_2.12.tgz,配置好环境变量后,在bin目录输入
./start-cluster.sh
image.png
启动成功,此时可以再8081端口看到管理实例,注意windows和mac系统我也启动不起来
image.png
可以跑一个demo
./flink run ../examples/batch/WordCount.jar
image.png
再跑一个大点的demo,先要开启本地的9000端口监听
nc -l 9000
./flink run ../examples/streaming/SocketWindowWordCount.jar --port 9000
同时在flink的log目录下监控输出文件
tail -f flink-*-taskexecutor-*.out
运行中
image.png
同时开启这3个终端的时候,在监听终端输入字符,日志监控这边能看到
image.png
二:使用java案例
1.pom文件依赖
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-java</artifactId>
<version>1.10.0</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-java_2.12</artifactId>
<version>1.10.0</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-clients_2.12</artifactId>
<version>1.10.0</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-scala_2.12</artifactId>
<version>1.10.0</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-scala_2.12</artifactId>
<version>1.10.0</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table_2.12</artifactId>
<version>1.7.2</version>
<scope>provided</scope>
</dependency>
2.开启这个方法
public void test() throws Exception {
// set up the streaming execution environment
final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
DataStream<String> text = env.socketTextStream("192.168.2.148", 9000);
DataStream<Tuple2<String, Integer>> dataStream = text.flatMap(new FlatMapFunction<String, Tuple2<String, Integer>>() {
@Override
public void flatMap(String s, Collector<Tuple2<String, Integer>> collector) throws Exception {
String[] tokens = s.toLowerCase().split("\\W+");
for (String token : tokens) {
if (token.length() > 0) {
collector.collect(new Tuple2<String, Integer>(token, 1));
}
}
}
}).keyBy(0).timeWindow(Time.seconds(5)).sum(1);
dataStream.print();
// execute program
env.execute("Java WordCount from SocketTextStream Example");
}
3.在ubuntu中开启终端.输入
nc -l 9000
然后再下面随便输入点啥
image.png
此时idea这边能看到输出
image.png
参考文档
https://blog.csdn.net/baichoufei90/article/details/82891909