Mac 在IDEA 部署flink 并编写第一个流式WordCo
1、环境配置
Java 环境配置:https://www.runoob.com/java/java-environment-setup.html
Maven 教程:https://www.runoob.com/maven/maven-setup.html
Intellij Idea:https://www.jetbrains.com/idea/
2、创建Maven 项目
简单使用Intellij Idea内置的Maven工具创建
(1)
![](https://img.haomeiwen.com/i13398679/a27ea84cacec0130.png)
(2)
![](https://img.haomeiwen.com/i13398679/b892cd1afe701bf5.png)
(3)
![](https://img.haomeiwen.com/i13398679/a881d149d5bcd5e6.png)
(4)
![](https://img.haomeiwen.com/i13398679/cc9ce7670f84c987.png)
(5)
![](https://img.haomeiwen.com/i13398679/642209e09e0f27e7.png)
(6)
![](https://img.haomeiwen.com/i13398679/925cc8043e24d5e1.png)
这里特别重要,否则会没有src目录
(7)
![](https://img.haomeiwen.com/i13398679/d3940387a0030e56.png)
这里就算安装成功了,语句可以在这里写
object StreamingJob {
def main(args: Array[String]) {
// 创建 Flink 执行环境
val env = StreamExecutionEnvironment.getExecutionEnvironment
// 接收socket的输入流
// 使用本地9000端口,如端口被占用可换一个端口
val textStream = env.socketTextStream("localhost", 9000, '\n')
// 使用Flink算子对输入流的文本进行操作
// 按空格切词、计数、分组、设置时间窗口、聚合
val windowWordCount = textStream
.flatMap(line => line.split("\\s"))
.map(word => (word, 1))
.keyBy(0)
//.timeWindow(Time.seconds(5))
.sum(1)
// 单线程打印结果
windowWordCount.print().setParallelism(1)
// execute program
env.execute("Socket Window WordCount")
}
}
3、启动任务
(1)终端写入nc -l 9000
(2)
![](https://img.haomeiwen.com/i13398679/880626acc9a735a0.png)
(3)
![](https://img.haomeiwen.com/i13398679/120e7501f3e5830d.png)
(4)
![](https://img.haomeiwen.com/i13398679/10323dfaf92d13fc.png)
4、本地部署flink 集群
(1) 终端输入brew info apache-flink 查询你的安装目录
(2)$ cd /usr/local/Cellar/apache-flink/1.9.0
![](https://img.haomeiwen.com/i13398679/c6b1cc865f4fb366.png)
(3)$ ./libexec/bin/start-cluster.sh
![](https://img.haomeiwen.com/i13398679/1540b4264cb35448.png)
这就算启动起来了
(4) 网页输入http://localhost:8081/就能看到这样的页面
![](https://img.haomeiwen.com/i13398679/4d5631d9b6094bb6.png)
5、将任务打包成jar,发布到集群中
(1)
![](https://img.haomeiwen.com/i13398679/4ed197ec3d6ffcc4.png)
(2)
![](https://img.haomeiwen.com/i13398679/e9c89310c49559d5.png)
(3)
![](https://img.haomeiwen.com/i13398679/11ba12cecc4a93fa.png)
(4)
![](https://img.haomeiwen.com/i13398679/98ae7f660ccb342e.png)
6、停止集群
终端输入
$ cd /usr/local/Cellar/apache-flink/1.9.0
$ ./libexec/bin/stop-cluster.sh