本篇文章首发于头条号Flink本地安装和创建Flink应用,欢迎关注我的头条号和微信公众号“大数据技术和人工智能”(微信搜索bigdata_ai_tech)获取更多干货,也欢迎关注我的CSDN博客


本地安装

Flink可以在Linux、Mac OS X和Windows上运行,要求安装Java 8.x。

java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

下载并启动Flink

#从官网下载页面 http://flink.apache.org/downloads.html 下载Flink
wget http://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.8.0/flink-1.8.0-bin-scala_2.11.tgz
tar xzf flink-1.8.0-bin-scala_2.11.tgz
cd flink-1.8.0
#启动本地Flink群集
./bin/start-cluster.sh
#停止本地Flink群集
#./bin/stop-cluster.sh

启动成功后可以打开http://127.0.0.1:8081看到Flink的web UI,如下图所示。

Flink本地安装和创建Flink应用-LMLPHP

本地安装也可以通过Flink源码构建的方式,具体操作可以参考Flink源码分析-源码构建

运行示例

使用nc命令监听指定端口。

nc -l 9002
#然后随便输入点东西,比如像下面这样
#这些东西在提交SocketWindowWordCount Job之前或之后输入都是可以的
hello world
word count
hi
flink
ha ha

运行Flink测试example,这里用Flink WordCount Job来测试一下。

#在源码目录下执行,指定9002端口,这个端口要和刚刚nc命令监听的端口一致
./build-target/bin/flink run ./build-target/examples/streaming/SocketWindowWordCount.jar --port 9002

查看SocketWindowWordCount Job的输出。

#在源码目录下执行
tail -100f ./build-target/log/flink-*-taskexecutor-0-*.out
#执行后输出如下
hello : 1
world : 1
word : 1
count : 1
hi : 1
flink : 1
ha : 2

也可以在Flink web UI里查看输出,如下图所示。

Flink本地安装和创建Flink应用-LMLPHP

创建项目

Flink可以使用Maven和Gradle来构建,这里只介绍使用Maven构建,要求使用Maven 3.x和Java 8.x。

  1. 使用Maven创建
#使用Maven创建
mvn archetype:generate                              \
  -DarchetypeGroupId=org.apache.flink               \
  -DarchetypeArtifactId=flink-quickstart-java       \
  -DarchetypeVersion=1.8.0                          \
  -DgroupId=flink-demo                              \
  -DartifactId=flink-demo                           \
  -Dversion=0.1                                     \
  -Dpackage=myflink                                 \
  -DinteractiveMode=false

如果没有指定groupIdartifactIdversionpackage,在创建的过程中会提示定义这几个参数的值并确认,如下图所示。

Flink本地安装和创建Flink应用-LMLPHP

  1. 使用官方提供的快速入门脚本创建
#使用官方提供的快速入门脚本创建
curl https://flink.apache.org/q/quickstart.sh | bash -s 1.8.0
  1. 使用IntelliJ IDEA等集成开发环境新建

创建好的项目结构如下

tree myflink/
.
├── pom.xml
└── src
    └── main
        ├── java
        │   └── myflink
        │       ├── BatchJob.java
        │       └── StreamingJob.java
        └── resources
            └── log4j.properties

接下来就可以开始开心愉快的coding啦^_^

03-09 21:35