美文网首页Blink+Flink
《从0到1学习Flink》—— Mac 上搭建 Flink 1.

《从0到1学习Flink》—— Mac 上搭建 Flink 1.

作者: 生活的探路者 | 来源:发表于2019-02-20 16:06 被阅读31次

准备工作

1、安装查看 Java 的版本号,推荐使用 Java 8。

安装 Flink

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/) 查看

demo

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

相关文章

网友评论

    本文标题:《从0到1学习Flink》—— Mac 上搭建 Flink 1.

    本文链接:https://www.haomeiwen.com/subject/dmmhyqtx.html