linux运维、架构之路-Flink集群部署

摘要:
它是有状态和容错的,可以在维护完整的应用程序状态时无缝修复错误。在数千个节点上运行时,具有良好吞吐量和低延迟的大规模操作。Flink要求在主节点和所有工作节点上设置JAVA_ HOME环境变量,并指向安装JAVA的目录。
一、介绍

         Flink 是一个开源的分布式流式处理框架,Flink标准的实时处理引擎。用于在无边界和有边界数据流上进行有状态的计算。

  • 提供准确的结果,甚至在出现无序或者延迟加载的数据的情况下。
  • 它是状态化的容错的,同时在维护一次完整的的应用状态时,能无缝修复错误。
  • 大规模运行,在上千个节点运行时有很好的吞吐量和低延迟。
二、特性
  • Flink灵活的窗口。
  • Exactly once语义保证。
三、Flink集群部署

1、前置条件

  • 配置从master到worker节点的SSH无密登录,并保持保节点上相同的目录结构。
  • Flink要求在主节点和所有工作节点上设置JAVA_HOME环境变量,并指向Java安装的目录。

①配置SSH免秘钥

ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.56.175 #Master
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.56.176 #worker1
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.56.182 #worker2

②配置JAVA环境变量(所有节点)

vi ~/.bash_profile
export JAVA_HOME=/app/jdk1.8.0_181
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
source ~/.bash_profile

2、下载Flink安装包

官方地址:https://flink.apache.org/downloads.html

linux运维、架构之路-Flink集群部署第1张

wget https://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.12.2/flink-1.12.2-bin-scala_2.11.tgz

①解压软件

tar xf flink-1.12.2-bin-scala_2.11.tgz -C /app/
#修改配置文件:
[root@k8s-node1 conf]# egrep -v "#|^$" flink-conf.yaml 
env.java.home: /app/jdk1.8.0_181       # 配置java环境
jobmanager.rpc.address: 192.168.56.175 # 配置主节点主机名,指向master节点
jobmanager.rpc.port: 6125 
jobmanager.memory.process.size: 1600m  #定义允许JVM在每个节点上分配的最大主内存量
taskmanager.memory.process.size: 1728m
taskmanager.numberOfTaskSlots: 4       #你希望每台机器能并行运行多少个slot, 机器上一个核可以运行一个slot
parallelism.default: 4                 #整个集群最大的可并行度,slave的节点数*节点cpu核数
jobmanager.execution.failover-strategy: region 
rest.port: 8081                        #UI页面访问端口

修改文件/conf/masters、worekers文件

[root@k8s-node1 conf]# cat masters 
192.168.56.175:6125
[root@k8s-node1 conf]# cat workers 
192.168.56.176
192.168.56.182

②分发修改后的文件

scp -rp flink-1.12.2 192.168.56.176:/app/
scp -rp flink-1.12.2 192.168.56.182:/app/

3、启动集群(只需要在主节点启动即可)

[root@k8s-node1 app]# /app/flink-1.12.2/bin/start-cluster.sh 
Starting cluster.
Starting standalonesession daemon on host k8s-node1.
Starting taskexecutor daemon on host k8s-node2.
Starting taskexecutor daemon on host k8s-node3.
[root@k8s-node1 app]# jps
25673 Jps
25453 StandaloneSessionClusterEntrypoint

节点查看:

[root@k8s-node2 ~]# jps
10458 TaskManagerRunner
11020 Jps

4、页面访问

linux运维、架构之路-Flink集群部署第2张

 ①创建一个Flink自带的流处理程序

./bin/flink run examples/streaming/SocketWindowWordCount.jar --hostname 192.168.56.175 --port 9000

linux运维、架构之路-Flink集群部署第3张

linux运维、架构之路-Flink集群部署第4张

免责声明:文章转载自《linux运维、架构之路-Flink集群部署》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇BurpSuite抓取本地包方法centos7安装.net5.0(core)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

龙芯 3A4000 安装 Debian10 (via debootstrap)

由于一些原因,Debian 的内核不能直接在龙芯的 cpu 上使用。据悉 Linux 5.7 kernel 改进了对龙芯的支持,不久的将来我们应该就能更愉快地在龙芯上运行 Debian 了。 感谢龙芯群大佬的指导~~ 免去了编译内核等繁琐的工作。 龙芯 3A3000 及更早的机子可以参考刘世伟的文章:传送门 。 思路 Debian Wiki:https:/...

linux下关闭桌面模式使用命令行模式及其它模式

vim/etc/inittab 把其中的id:5:initdefault中的5改为3。 Linux操作系统有六种不同的运行级(run level),在不同的运行级下,系统有着不同的状态,这六种运行级分别为:0:停机(记住不要把initdefault 设置为0,因为这样会使Linux无法启动)1:单用户模式,就像Win9X下的安全模式。2:多用户,但是没有...

Linux性能监控、调优(CPU篇)

前言: 网上其实有很多关于这方面的文章,那为什么还会有此篇呢,有这么几个原因,是我翻译的动力,第一,概念和内容虽然老套,但都讲得很透彻,而且还很全面.第二,理论结合实际,其中案例分析都不错.第三,不花哨,采用的工具及命令都是最基本的,有助于实际操作.但本人才疏学浅,译文大多数都是立足于自己对原文的理解,大家也可以自己去OSCAN上找原文,如果有什么较大出入...

Linux下的crontab定时、执行任务命令详解 oracle 自动备份

在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。cron的配置文件称为“crontab”,是“cron table”的简写。 一、cron服务  cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。  se...

linux任务计划cron chkconfig工具 systemd管理服务 unit介绍 target介绍

[root@lizhipenglinux01 ~]# crontab -e  编写任务计划no crontab for root - using an empty one 20 11 29 01 1 echo "OK" > /root/cron.log      表示在1月29日(星期一)的11点20分执行:echo  "OK" > /ro...

LINUX挂接UNIX系统NFS文件共享

类似于windows的网络共享,UNIX(Linux)系统也有自己的网络共享,那就是NFS(网络文件系统),下面我们就以SUN Solaris2.8和REDHAT as server 3 为例简单介绍一下在linux下如何mount nfs网络共享。   在linux客户端挂接(mount)NFS磁盘共享之前,必须先配置好NFS服务端。   1、Solar...