flink_java 学习笔记

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文件依赖

 
            org.apache.flink
            flink-java
            1.10.0
        
        
            org.apache.flink
            flink-streaming-java_2.12
            1.10.0
        
        
            org.apache.flink
            flink-clients_2.12
            1.10.0
        
        
            org.apache.flink
            flink-scala_2.12
            1.10.0
        
        
            org.apache.flink
            flink-streaming-scala_2.12
            1.10.0
        
        
            org.apache.flink
            flink-table_2.12
            1.7.2
            provided
        


2.开启这个方法

 public void test() throws Exception {

        // set up the streaming execution environment
        final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

        DataStream text = env.socketTextStream("192.168.2.148", 9000);
        DataStream> dataStream = text.flatMap(new FlatMapFunction>() {
            @Override
            public void flatMap(String s, Collector> collector) throws Exception {
                String[] tokens = s.toLowerCase().split("\\W+");

                for (String token : tokens) {
                    if (token.length() > 0) {
                        collector.collect(new Tuple2(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

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