apache flink入门一

Posted 微小韦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了apache flink入门一相关的知识,希望对你有一定的参考价值。

Flink是什么

flink的前身是一个叫做Stratosphere的研究项目,2014年该项目更名为flink,并且在同年成为apache基金会项目,2015年成为apache顶级项目。flink是真正基于流的大数据处理框架,在数据分析、统计、监控、告警、报表等领域有广泛的应用场景。



Flink安装

当前时间点flink的最新稳定版本是1.10.1,我们先尝试本地安装[1]

确保本地java版本8或者11,java -version下载安装包[2]解压 tar -zxvf flink-1.10.1-bin-scala_2.11.tgz && cd flink-1.10.1启动服务 ./bin/start-cluster.sh

结构

进程

启动服务后,在进程层面,会多出两个进程,ps -ef | grep flink #查看进程:

jobmanager:webui和调度器taskmanager:任务执行单元

目录

bin:运行脚本conf:配置文件,包含日志、集群等相关配置example:示例代码jar包,可以直接在flink集群中运行lib:依赖jaroptflink和其他平台交互的jarplugin:扩展插件log:日志目录,.out代表标准日志输出

管理页面

默认webui使用8081端口,如果是本地直接访问:http://localhost:8081

运行示例

这里我们尝试运行一个安装包里面自带的示例,也是作为demo使用频度非常高的一个例子,统计单词出现次数。

找到示例包位置,examples/streaming/WordCount.jar创建输入文件,比如vi /tmp/input.txt 输入一些单词运行示例包,bin/flink run examples/streaming/WordCount.jar --input /tmp/input.txt --output /tmp/output.txt查看/tmp/output.txt文件的输出结果

流式应用

上面的例子,更多的给人的感觉,类似于批处理的案例,批量处理一些文件,那真实的流式处理是什么样子的?在真实世界里面,为了保证输入数据的准确性、实时性、可重放性,可能会选择将数据存放在类似kafka这样的消息队列中,然后由flink消费消息,这里只是为了演示流式的效果,我们依然使用自带示例包来完成,只不过这次不是通过文件,而是服务端口的方式读取数据。

启动一个端口模拟服务 nc -l 9010启动任务,bin/flink run examples/streaming/SocketWindowWordCount.jar --port 9010在nc的命令下面不断输入字词最后ctrl+c关闭端口结果在log/taskexecutor.out文件查看

在上面的示例中,nc全名叫做netcat,是非常强大的网络工具包,上面的例子是使用nc创建一个监听9010的服务。

References

[1] 本地安装: https://ci.apache.org/projects/flink/flink-docs-release-1.10/getting-started/tutorials/local_setup.html
[2] 安装包: https://mirror.bit.edu.cn/apache/flink/flink-1.10.1/flink-1.10.1-bin-scala_2.11.tgz


以上是关于apache flink入门一的主要内容,如果未能解决你的问题,请参考以下文章

新一代大数据计算引擎 Flink从入门到实战

新一代大数据处理引擎 Apache Flink

Flink入门及实战(上+下)

Apache Flink 入门,了解 Apache Flink

Apache Flink 入门,了解 Apache Flink

Apache Flink 入门,了解 Apache Flink