Flink(四)Standalone 模式部署 Flink 集群实践

Flink(四)Standalone 模式部署 Flink 集群实践,第1张

Flink(四)Standalone 模式部署 Flink 集群实践

版本:Flink 1.13.2 - 2021-08-02

Standalone 独立模式的集群:

Standalone 独立模式的 Flink 集群不支持 Per-Job Mode 作业模式。

部署前期准备:

  • 四台虚拟机(一个 master,三个 worker,集群节点之间最好可以免密登录)
    192.168.116.10
    192.168.116.11
    192.168.116.12
    192.168.116.13
  • jdk环境 :
  • 下载 flink 二进制包:flink-1.13.2-bin-scala_2.12.tgz
Session Mode 作业模式

将压缩包分别解压到四台机器的相同路径下:

在master节点修改配置文件 (flink 的配置文件都在 ./flink-1.13.2/conf/ 目录下,所有 cd 到 conf 目录下)

  1. 集群节点配置:

    在解压目录 flink-1.13.2/conf 中有两个配置文件配置集群的 master 和 worker

    vi masters

    #添加master节点 IP:PORT,也就是 Flink Web 页面的服务地址 
    192.168.116.10:8081
    

    vi workers

    #添加 worker 节点 IP 地址,一行一个,也就是将要部署 TaskManager 的节点 
    192.168.116.11
    192.168.116.12
    192.168.116.13
    
  2. 修改master节点关于Flink运行时环境的配置
    vi flink-conf.yaml

    几个重要的配置:

    jobmanager.rpc.address: 192.168.116.10
    指向 master 节点 jobmanager
    jobmanager.rpc.port: 6123
    master 节点 jobmanager 的访问端口
    jobmanager.memory.process.size
    每个 JobManager 进程的可用内存值
    taskmanager.memory.process.size
    每个 TaskManager 进程的可用内存值
    taskmanager.numberOfTaskSlots
    每台 taskmanager 机器的可用 Slot 数,一般配置为 宿主机的 CPU 这样可以避免 Slot 之间抢占 cpu 资源
    parallelism.default
    默认并行度,只有在没有指定任务并行度时才生效
    classloader.resolve-order
    The classloading resolve order. Possible values are ‘child-first’ (Flink’s default) and ‘parent-first’ (Java’s default).
    意思就是 Java 默认用 parent-first ,如果使用 Flink 默认的 child-first ,在提交 java 作业时任务会启动不起来

    其他配置可以看注释。配置完成后同步到其他节点,如果需要针对特定的 TaskMavager 配置不一样的参数,可以在对应节点的配置文件中重写这些配置。

启动集群

./bin/start-cluster.sh

因为没有配置 ssh 免密登录,所以在地洞TaskMavager时需要输入其他主机的密码:

英文都是 Java 程序,所可以用 jps 命令产看各个节点启动的进程:

访问 JobMavager 的 Web 页面:192.168.116.10:8081 (注意防火墙策略)

提交作业测试集群

准备一个 Flink 程序,这里使用之前文章中写的一个 WordCount 程序:
参考地址:Flink (二)经典用例 WordCount 之实时流处理和批处理实验

也可以直接下载我打好的 jar 包
该 jar 包中有两个可执行程序,本文后面使用无界流数据处理程序测试,另一个的详细参考之前的文章。

如果要测试无界流数据处理,需要在一台虚拟机上利用 nc -lk 9999 开一个 socket 用来实时的输入数据流

在 master 节点开启 9999 端口的监听,在 192.168.116.10 上执行:nc -lk 9999

通过web页面提交作业:

相关参数
入口类(Entry Class):org.flink.study.practice01.StreamWordCount
程序启动参数(Program Arguments):--isNetcat true --host 192.168.116.10 --port 9999


独立模式部署也可以借助 Docker 或者 K8s,这里使用虚拟机直接搭建,方便之后学习 Flink 的相关特性。

Application Mode 作业模式

参考官网的例子:

# 在 master 节点 flink 的根目录下执行,通过启动 Application 来启动 JobManager
cp ./examples/streaming/TopSpeedWindowing.jar lib/
./bin/standalone-job.sh start --job-classname org.apache.flink.streaming.examples.windowing.TopSpeedWindowing

# 在 worker 节点 flink 的根目录下执行,启动TaskMavager
$ ./bin/taskmanager.sh start

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/4965649.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-13
下一篇 2022-11-13

发表评论

登录后才能评论

评论列表(0条)

保存