从零开始搭建 Flink

从零开始搭建 Flink

安装:下载并启动 Flink

Flink 可以运行在 Linux,Mac OS X 和 Windows 上,唯一的要求就是已经安装了 Java 8.x。

可以通过下面的命令查看是否正确安装了 Java:

java -version

如果已经安装了 Java 8,输出会是这个样子的:

java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)

如果没有安装 Java,可以到这里下载安装:https://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html。安装好之后,需要在文件 ~/.bash_profile 中加入如下内容,注意“Internet\ Plug-Ins”中的“\”一定不要少了,否则后续执行 Flink 的命令时会有问题:

export JAVA_HOME="/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"
export PATH=${JAVA_HOME}/bin:$PATH

https://flink.apache.org/downloads.html 下载并解压。

启动一个本地的 Flink 集群

$ cd flink-1.6.1
$ ./bin/start-cluster.sh  # Start Flink

通过网址 http://localhost:8081 查看确保 Flink 的各个组件都运行起来了。网页上应该显示有一个可用的 TaskManager 实例。启动过程中的日志都在 log 目录下。

运行一个实例

下面我们将会运行一个 Flink 实例。这个实例会从 socket 中读取文本,每隔 5 秒钟会打印之前 5 秒内每种单词出现的次数。

首先,我们用 netcat 启动一个本地服务器:

$ nc -l 9000

然后提交 Flink 程序:

$ ./bin/flink run examples/streaming/SocketWindowWordCount.jar --port 9000
Starting execution of program

这个程序会连接 socket 并等待输入。你可以通过检查网页 http://localhost:8081 来验证这个 job 已经跑起来了。

通过 nc 输入一些文本,输入是按行发送给 Flink 的:

$ nc -l 9000
lorem ipsum
ipsum ipsum ipsum
bye

文件 .out 将会在每个时间窗口的最后打印出来单词出现的次数,只要有单词输入就会一直打印下去,关闭 nc 之后 Flink 程序就会退出:

$ tail -f log/flink-*-taskexecutor-*.out
lorem : 1
bye : 1
ipsum : 4

如果要停止 Flink 集群,执行如下命令即可:

$ ./bin/stop-cluster.sh

参考资料

https://ci.apache.org/projects/flink/flink-docs-release-1.6/quickstart/setup_quickstart.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注