Flink官网地址
我只想踏踏实实的学技术,用技术。那就从官网开始,翻阅着官网,一页一页翻译,一页一页的进步。
映入眼帘的第一句话是对Flink的整体性概括:
Apache Flink— Stateful Computations over Data Streams
在数据流上有状态的计算。Data Streams数据流,关键点是Stateful Computations,Flink如何设计Stateful 的概念?有状态的是什么样的状态呢? 现在可以想象到的是将状态做为数据流中某种标签一般,当数据流流过之后,我们可以对标签进行某种计算。
Flink官网的应用架构图:

Transactions(交易),Logs(日志),IOT(物联网),Clicks(网站点击)都能通过两种方式 Real-time Events(实时事件)或者 Database File System,KV-Store(数据库的键值对)去汇入Flink系统。
图的中间部分, Flink的底层支持HDFS,S3,NFS作为存储,8S,YARN,Mesos作为资源调度。顶层支持的应用类型有:
- Event-driven Applications(基于它流的Real-time Events 构建的实时事件应用)
- Streaming Pipelines 流式的数据通道
- Stream & Batch Analytics 流式的数据分析可以接入一些 Application 或是产生事件的日志。流式的数据处理作为通道的方式,将一个数据源的数据接入到另一个数据源。
Flink需要关注的功能点:
说的就是一些特性,比如构建上面说的一些应用,流数据的处理的一致性和可靠性,灵活部署,高可用。可扩展的框架,低延时,高吞吐和使用内存计算。还有一些常用的分层的API,SQL on Stream & Batch Data &DataStream API & DataSet API
首先需要一个类UNIX的环境,Ubuntu/Centos 虚拟机或者服务器等。Linux, Mac OS X, and Cygwin (for Windows)。安装了java8 或java11。
[root@192 ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@192 opt]# java -version
openjdk version "1.8.0_102"
OpenJDK Runtime Environment (build 1.8.0_102-b14)
OpenJDK 64-Bit Server VM (build 25.102-b14, mixed mode)
下载个Flink安装包
Flink目录下各文件夹的作用:

解压后启动集群
[root@192 flink-1.6.1]# bin/start-cluster.sh
Starting cluster.
[INFO] 1 instance(s) of standalonesession are already running on 192.168.154.132.
Starting standalonesession daemon on host 192.168.154.132.
[INFO] 1 instance(s) of taskexecutor are already running on 192.168.154.132.
Starting taskexecutor daemon on host 192.168.154.132.
[root@192 flink-1.6.1]# jps
12564 StandaloneSessionClusterEntrypoint
124308 TaskManagerRunner
13002 TaskManagerRunner
124363 Jps
启动后便能通过浏览器访问8081端口,看到Flink任务运行的UI界面。

提交示例的Flink作业:
提交Flink作业就是将JAR包和相关的依赖提交到Flink集群并执行。通过./bin/flink来进行提交。
[root@192 flink-1.6.1]# ./bin/flink run examples/streaming/WordCount.jar
Starting execution of program
Executing WordCount example with default input data set.
Use --input to specify file input.
Printing result to stdout. Use --output to specify output path.
Program execution finished
Job with JobID ef813e1879412871a30272c5458cea36 has finished.
Job Runtime: 454 ms
大数据的HelloWorld,就是经典的WordCount程序,聚合操作。查看下数据的输出结果:
[root@192 flink-1.6.1]# tail -f log/flink-root-taskexecutor-1-192.168.154.132.out
(nymph,1)
(in,3)
(thy,1)
(orisons,1)
(be,4)
(all,2)
(my,1)
(sins,1)
(remember,1)
(d,4)
到UI界面观察运行的任务:

examples中还有一些其他的例子,都可以进行尝试。
看图上的分析,理解上有些类似更快的MapReduce操作。实际上WordCount就是MapReduce的经典逻辑。也是分布式的最基础的逻辑。Flink是如何基于流,基于一致性状态,事件时间计算等这些我们现在只能抽象在脑海中的概念实现的快速的类似WordCount计算呢,需要我们进一步翻译、阅读理解肯思考。
1090

被折叠的 条评论
为什么被折叠?



