flinkx部署

flink

flink 版本:flink-1.10.1
flink部署目录: /data/flink/flink-1.10.1

flinkx

flinkx基于flink做的开源数据集成服务,目前改名DTStack
flinkx 版本:flinkx_1.10
部署目录: /data/flinkx/flinkx_1.10

flinkx插件分发脚本

需要分发到所有yarn nodemanager节点

#!/bin/bash env
#flinkx_deploy.sh

YARN_HOSTS=bdphdp01,bdphdp02,bdphdp03,bdphdp04,bdphdp05
REMOTE_PLUGIN_ROOT=/data/flinkx/flinkx_1.10/syncplugins
LOCAL_PLUGIN_ROOT=/data/flinkx/flinkx_1.10/syncplugins

for host in ${YARN_HOSTS//,/ }
do
    echo $host
    ssh $host  "[ -d "$REMOTE_PLUGIN_ROOT" ] || mkdir -p $REMOTE_PLUGIN_ROOT"
    scp -r $LOCAL_PLUGIN_ROOT/* $host:$REMOTE_PLUGIN_ROOT/ 
done

flinkx 运行模式

1. Local模式运行任务,写入分布式不能用local模式,用于测试

flinkx \
    -mode local \
    -job ./mysql_hive.json \
    -flinkconf /data/flink/flink-1.10.1/conf \
    -pluginRoot /data/flinkx/flinkx_1.10/syncplugins  

2. yarn session 模式运行任务,用于测试

yarn-session.sh -nm “Flink session cluster” -d
Flink Session启动节点可以查看当前Session,启动名称必须为"Flink session cluster"

flinkx \
    -mode yarn \
    -job ./mysql_hive.json \
    -flinkconf /data/flink/flink-1.10.1/conf \
    -yarnconf /etc/hadoop/conf \
    -pluginRoot /data/flinkx/flinkx_1.10/syncplugins \
    -pluginLoadMode classpath \
    -confProp "{\"flink.checkpoint.interval\":1000}"

3. yarn perjob 模式运行任务,生产环境推荐

flinkx \
    -mode yarnPer \
    -job ./mysql_hive.json \
    -jobid mysql_hive \
    -flinkconf /data/flink/flink-1.10.1/conf \
    -yarnconf /etc/hadoop/conf \
    -pluginRoot /data/flinkx/flinkx_1.10/syncplugins \
    -flinkLibJar /data/flink/flink-1.10.1/lib \
    -pluginLoadMode classpath \
    -confProp "{\"flink.checkpoint.interval\":10000}"

从指定快照(checkpoint)恢复:

flinkx \
    -mode yarnPer \
    -job ./mysql_hive.json \
    -jobid mysql_hive \
    -flinkconf /data/flink/flink-1.10.1/conf \
    -yarnconf /etc/hadoop/conf \
    -pluginRoot /data/flinkx/flinkx_1.10/syncplugins \
    -flinkLibJar /data/flink/flink-1.10.1/lib \
    -pluginLoadMode classpath \
    **-s hdfs://bdptest/flink-checkpoints/64a7e714ea8c5cf6ab24c82788bc8fc3/chk-2 \**
    -confProp "{\"flink.checkpoint.interval\":10000}"

变量传递的用法:

flinkx \
    -mode yarn \
    -job ./mysql_hive.json \
    -flinkconf /data/flink/flink-1.10.1/conf \
    -yarnconf /etc/hadoop/conf \
    -pluginRoot /data/flinkx/flinkx_1.10/syncplugins \
    -pluginLoadMode classpath \
    **-p id1=1,id2=7 \**
    -confProp "{\"flink.checkpoint.interval\":1000,\"flink.checkpoint.stateBackend\":\"hdfs://bdptest/flinkxckp\"}"

#配置文件配置
"customSql": "select * from product where id > ${id1} and id < ${id2}"   

参数说明

名称说明可选值是否必填默认值
mode执行模式,也就是flink集群的工作模式1.local: 本地模式
2.standalone: 独立部署模式的flink集群
3.yarn: yarn模式的flink集群,需要提前在yarn上启动一个flink session,使用默认名称"Flink session cluster"
4.yarnPer: yarn模式的flink集群,单独为当前任务启动一个flink session,使用默认名称"Flink per-job cluster"
local
job数据同步任务描述文件的存放路径;该描述文件中使用json字符串存放任务信息
jobid任务名称Flink Job
pluginRoot插件根目录地址,也就是打包后产生的pluginRoot目录。$FLINKX_HOME/syncplugins
flinkconfflink配置文件所在的目录(单机模式下不需要)$FLINK_HOME/conf$FLINK_HOME/conf
flinkLibJarflink lib所在的目录(单机模式下不需要),如/opt/dtstack/flink-1.10.1/lib$FLINK_HOME/lib$FLINK_HOME/lib
yarnconfHadoop配置文件(包括hdfs和yarn)所在的目录$HADOOP_HOME/etc/hadoop$HADOOP_HOME/etc/hadoop
queueyarn队列,如defaultdefault
pluginLoadModeyarn session模式插件加载方式1.classpath:提交任务时不上传插件包,需要在yarn-node节点pluginRoot目录下部署插件包,但任务启动速度较快
2.shipfile:提交任务时上传pluginRoot目录下部署插件包的插件包,yarn-node节点不需要部署插件包,任务启动速度取决于插件包的大小及网络环境
shipfile
confPropcheckpoint配置flink.checkpoint.interval:快照生产频率
flink.checkpoint.stateBackend:快照存储路径jobmanager.memory.mb:perJob模式下jobmanager内存设置
taskmanager.memory.mb:perJob模式下taskmanager内存设置
taskmanager.slots:perJob模式下每个jobmanager分配的 slots个数设置
parallelism:perJob模式下任务的并行度
scheckpoint快照路径
p自定义入参,用于替换脚本中的占位符,如脚本中存在占位符 p t 1 , {pt1}, pt1,{pt2},则该参数可配置为pt1=20200101,pt2=20200102
appIdyarn模式下,提交到指定的的flink session的application Id
krb5conf提交到开启kerberos的Hadoop集群的krb5文件路径
keytab提交到开启kerberos的Hadoop集群的keytab文件路径
principalkerberos认证的principal

特殊说明

pluginLoadMode作用:
  1. 在yarn-session模式下,控制插件包的加载方式
  2. 控制类的加载顺序,classpath模式优先从用户程序自身加载,shipfile模式优先从应用程序类路径加载
TaskManager(yarn container) 计算

TaskManager的数量就是:max(parallelism) / yarnslots(向上取整)

Flink Running yarn restApi

http://yarnHost:yarnPort/ws/v1/cluster/apps/appid

实例demo:

通过
http://11.51.197.0:8088/ws/v1/cluster/apps/application_1611574369090_0167/
获取:"amRPCAddress": "bdphdp04:35039"
再通过
http://bdphdp04:35039/jobs/overview
获取
"jid": "8d40dc1828f199b09b97c874531ecdcb"
最后通过
http://bdphdp04:35039/jobs/8d40dc1828f199b09b97c874531ecdcb/accumulators
获取指标数据

Flink HistoryServer restApi

Flink HistoryServer配置

jobmanager.archive.fs.dir: hdfs://bdptest/flink/completed-jobs/
historyserver.web.address: 11.51.196.255 #必须为对外的IP或域名
historyserver.web.port: 8082
historyserver.archive.fs.dir: hdfs://bdptest/flink/completed-jobs/
historyserver.archive.fs.refresh-interval: 10000
historyserver.web.tmpdir: /tmp/flinkhistoryserver/

Flink HistoryServer启动

historyserver.sh start或者flink-daemon.sh start historyserver

Flink HistoryServer接口:

http://hostname:port/jobs/<jobid>/exceptions 
http://11.51.196.255:8082/jobs/17c332029fadc4f7188d3eb08bc82584/accumulators

/config
/jobs/overview
/jobs/<jobid>
/jobs/<jobid>/vertices
/jobs/<jobid>/config
/jobs/<jobid>/exceptions
/jobs/<jobid>/accumulators
/jobs/<jobid>/vertices/<vertexid>
/jobs/<jobid>/vertices/<vertexid>/subtasktimes
/jobs/<jobid>/vertices/<vertexid>/taskmanagers
/jobs/<jobid>/vertices/<vertexid>/accumulators
/jobs/<jobid>/vertices/<vertexid>/subtasks/accumulators
/jobs/<jobid>/vertices/<vertexid>/subtasks/<subtasknum>
/jobs/<jobid>/vertices/<vertexid>/subtasks/<subtasknum>/attempts/<attempt>
/jobs/<jobid>/vertices/<vertexid>/subtasks/<subtasknum>/attempts/<attempt>/accumulators
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值