栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/358343.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号