Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态或无状态的计算,能够部署在各种集群环境,对各种规模大小的数据进行快速计算。
当 Flink 集群启动后,首先会启动一个 JobManger 和一个或多个的 TaskManager。由 Client 提交任务给 JobManager,JobManager 再调度任务到各个 TaskManager 去执行,然后 TaskManager 将心跳和统计信息汇报给 JobManager。TaskManager 之间以流的形式进行数据的传输。上述三者均为独立的 JVM 进程。
)Task Slot 是一个 TaskManager 中的最小资源分配单位,一个 TaskManager 中有多少个 Task Slot 就意味着能支持多少并发的 Task 处理。需要注意的是,一个 Task Slot 中可以执行多个 Operator,一般这些 Operator 是能被 Chain 在一起处理的。
最简单的运行 Flink 应用的方法就是以单机 Standalone 的方式运行。
启动flink:
[root@localhost flink-1.11.3]# ./bin/start-cluster.sh
打开 http://ip:8081/ 就能看到 Flink 的 Web 界面。尝试提交 Word Count 任务:
[root@localhost flink-1.11.3]# ./bin/flink run examples/streaming/SocketWindowWordCount.jar --hostname 127.0.0.1 --port 9000
[root@localhost home]# nc -l 9000
qwer
asdf
zxcv
查看TaskManager 的 stdout ,就可以看到 输出结果。还可以通过--input
参数指定我们自己的本地文件作为输入。
[root@localhost flink-1.11.3]# ./bin/flink run examples/streaming/WordCount.jar --input /tmp/z.txt
停止flink:
[root@localhost flink-1.11.3]# ./bin/stop-cluster.sh
workers 用于配置 TaskManager 的部署,默认配置下只会启动一个 TaskManager 进程,如果想增加一个 TaskManager 进程的,只需要文件中追加一行“localhost”。
也可以直接通过./bin/taskmanager.sh start
这个命令来追加一个新的 TaskManager:
[root@localhost flink-1.11.3]# ./bin/taskmanager.sh start|start-foreground|stop|stop-all
flink-conf.yaml 用于配置 jobmanager和 taskmanager 的运行参数,常用配置:
jobmanager.rpc.address: localhost
# The RPC port where the JobManager is reachable.
jobmanager.rpc.port: 6123
# The total process memory size for the JobManager.
jobmanager.memory.process.size: 1600m
# The total process memory size for the TaskManager.
taskmanager.memory.process.size: 1728m
# The number of task slots that each TaskManager offers. Each slot runs one parallel pipeline.
taskmanager.numberOfTaskSlots: 1
JobManager 和 TaskManager 的启动日志可以在 Flink目录下的 log 子目录中找到。
JobManager日志:
TaskManager日志:
日志的配置文件在 Flink binary 目录的 conf 子目录下,其中:
这三个log4j.properties
文件分别有三个logback.xml
文件与之对应,如果想使用 Logback ,需要把与之对应的“log4j.*properties”文件删掉即可,对应关系如下:
原文:https://www.cnblogs.com/FongZhang/p/15176969.html