本文主要介绍如何用三台虚拟机搭建flink的standalone系统,并通过prometheus结合grafanna监控flink集群的作业情况。

        本集群环境是由三台centOS 7.5的虚拟机搭建的

        虚拟机安装: 

                 centos7.5的镜像文件如下:

        链接:https://pan.baidu.com/s/1FWiHEn_TyI_nHDZiQYdBSg  提取码:w4l3
             

                新建虚拟机

                  

                 选典型

                

        接下来一路默认点就行

                 

        同样的操作创建另外两台虚拟机

Java环境

因为flink执行依赖于jvm,因为我们需要在每台服务器上安装JDK (1.8及以上)

查看java版本

java -version

  flink安装:

flink对应的下载地址:

Apache Flink: 下载

本文安装的是  flink-1.14.5-bin-scala_2.11.tgz

Apache Downloads

把安装包放到centos虚拟机里

获取root权限

[hadoop@localhost Public]$ su

解压缩

本文的flink压缩包放在Public下面

[root@localhost Public]# tar -xzvf flink-1.14.5-bin-scala_2.11

修改名字

[root@localhost Public]# mv flink-1.14.5/ flink

当然也可以在图形界面直接解压缩和修改名字

设置静态ip

由于虚拟机的ip一般是动态分配的,而后续配置需要用三台虚拟机的ip地址来配置jobmanager和taskmanager,故动态的ip导致每次都要重新设置,较麻烦。

首先查看虚拟机ip地址

ifconfig

 

查看虚拟机子网ip,子网掩码,网关

回到根目录下

[root@localhost /]# vim  etc/sysconfig/network-scripts/ifcfg-ens33

将对应配置改为 static

并在最后加入

IPADDR=通过ifconfig查看的本主机的ip
NETMASK=子网掩码
GATEWAY=网关地址
DNS1=8.8.8.8

修改完后,按ESC键,然后键入 :wq(冒号wq)保存退出

ps:如因输入错误打开了一个本来不存在的文件夹或者不想保存修改退出,按ESC键,然后键入 :q(冒号q)不保存退出

保存退出后,重启网络服务

service network restart

 检查网络是否通

ping baidu.com

免密配置

首先,在某一台服务器上执行生成SSH KEY 命令

ssh-keygen -t rsa

然后将公匙发送到需要免密的机器上

ssh-copy-id -i ~/.ssh/id_rsa.pub 需要免密的机器IP

将Flink所有服务器节点之间互相访问均开放免密登录

操作手法:每个服务器都执行生成SSH KEY命令,然后将公钥发送给Flink所有机器节点(含自己)

flink配置

进入flink文件夹下面的conf文件夹

[root@localhost Public]# cd flink/conf

需要修改三个文件

1.修改flink-conf.yaml

[root@localhost conf]# vim flink-conf.yaml

   将localhost改为欲设为jobmanager的主机的ip地址

每个taskmanager的槽的数量 和 并行度 的设置(自行按需设置)

 2.修改masters 

[root@localhost conf]# vim masters

将预设主机ip键入 ,ESC :wq保存退出

3.修改workes(旧版本的flink为slavers)

[root@localhost conf]# vim workers

将欲作为taskmanager的主机的ip键入,也同样可将jobmanager的ip键入,即该主机既做jm,又作tm,保存退出

三台主机同样的配置

在master主机启动flink集群

进入flink的bin文件夹下

[root@localhost bin]# . start-cluster.sh

打开浏览器,输入   master主机的ip:8081

例如:

172.16.72.129:8081

即可看到flink对应的Web ui界面

 至此,flink standalone集群环境搭建完毕。

flink作业提交

 在submit new job 点击add new可添加作业

可以设置并行度,点击submit即提交作业

在flink的UI的界面上点击任务详情,然后点击Task Metrics会弹出如下的界面,在 add metic按钮上可以添加需要的监控指标,即可查看对应的指标情况。

使用Prometheus+Grafana 监控flink作业情况

参考Prometheus+Grafana集成监控Flink_弥生i的博客-CSDN博客_prometheus监控flink集群

1、Prometheus


Prometheus是一套开源的系统监控报警框架。它受启发于Google的Brogmon监控系统,由工作在SoundCloud的前google员工在2012年创建,作为社区开源项目进行开发,并于 2015年正式发布。

2016年,Prometheus正式加入Cloud Native Computing Foundation(CNCF)基金会的项目,成为受欢迎度仅次于Kubernetes 的项目。2017年底发布了基于全新存储层的2.0版本,能更好地与容器平台、云平台配合。和展示工具Grafana有很好的集成性。

prometheus项目地址:https://github.com/prometheus/prometheus
pushgateway项目地址:https://github.com/prometheus/pushgateway

2、Grafana


Grafana是一款用Go语言开发的开源数据可视化工具,可以做数据监控和数据统计,带有告警功能。

项目地址:https://github.com/grafana/grafana

Flink App :需要监控的数据来源
Prometheus :收集数据
nodeManger :Prometheus 生态中的组件,nodeMnager负责监控运行机器的状态
Pushgateway:Prometheus 生态中的组件,pushGateway服务收集Flink的指标
Grafana :进行可视化展示

 

安装步骤:

配置在jobmanager一台主机即可

flink配置

1.将flink中plugins文件夹下的jar拷贝至lib目录下

cd plugins/metrics-prometheus/
cp flink-metrics-prometheus-1.14.5.jar /Public/flink/lib/

2.修改flink-conf.yaml

[root@localhost conf]# vim flink-conf.yaml

将下面添加到flink-conf.yaml中

下图中localhost为主机的ip

##### 与 Prometheus 集成配置 #####
metrics.reporter.promgateway.class: 
org.apache.flink.metrics.prometheus.PrometheusPushGatewayReporter
# PushGateway 的主机名与端口号
metrics.reporter.promgateway.host: localhost
metrics.reporter.promgateway.port: 9091
# Flink metric 在前端展示的标签(前缀)与随机后缀
metrics.reporter.promgateway.jobName: myJob
metrics.reporter.promgateway.randomJobNameSuffix: true
metrics.reporter.promgateway.deleteOnShutdown: false
metrics.reporter.promgateway.interval: 30 SECONDS

pushgateway安装


下载:https://prometheus.io/download/
解压:tar -zxvf pushgateway-1.4.3.linux-amd64.tar.gz
启动:./pushgateway
访问:http://localhost:9091/

localhost为主机ip

node_exporter安装


下载:https://prometheus.io/download/
解压:tar -zxvf node_exporter-1.3.1.linux-amd64.tar.gz
启动:./node_exporter
访问:http://localhost:9100/metrics

localhost为主机ip

prometheus安装


下载:https://prometheus.io/download/
解压:tar -zxvf prometheus-2.37.0-rc0.linux-amd64.tar.gz
编辑 prometheus.yml

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
        labels:
          instance: 'prometheus'
  - job_name: 'linux'
    static_configs:
      - targets: ['localhost:9100']
        labels:
          instance: 'localhost'
  - job_name: 'pushgateway'
    static_configs:
      - targets: ['localhost:9091']
        labels:
          instance: 'pushgateway'

localhost为主机ip

启动:./prometheus --config.file=prometheus.yml
访问:http://localhost:9090/targets

grafana安装
下载:wget https://dl.grafana.com/oss/release/grafana-7.4.0.linux-amd64.tar.gz
解压:tar -zxvf grafana-7.4.0.linux-amd64.tar.gz
启动:./bin/grafana-server web
访问:http://localhost:3000/login
查看进程:netstat -apn | grep -E ‘9091|3000|9090|9100’

访问:http://localhost:3000/login

1.点击Add data source

2.点击Prometheus

3.输入URL地址,点击保存(localhost为主机IP)

 4.点击New dashbpoard

 5.点击Add Quary

 6.如下操作,成功显示

至此,本文工作结束

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐