1.版本选择
采用flink-1.16.2稳定版本
flink官网:https://nightlies.apache.org/flink/flink-docs-release-1.16/
flink安装包下载:https://archive.apache.org/dist/flink/flink-1.16.2/
2.安装
2.1 解压
tar -zxvf /data/software/flink-1.16.2-bin-scala_2.12.tgz -C /data/module/
#重命名
mv flink-1.16.2-bin-scala_2.12.tgz flink-1.16.2
2.2 修改配置
vim flink-conf.yaml
#解决flink日志文件乱码问题
env.java.opts: "-Dfile.encoding=UTF-8"
#flink任务高可用重启配置
yarn.application-attempts: 3
high-availability: zookeeper
high-availability.zookeeper.quorum: xxx:2181,xxx:2181,xxx:2181
high-availability.storageDir: hdfs://yourcluster/flink/recovery
#由于classloader已经被释放,但是hook中仍然持有该classloader而抛出异常。该异常不影响正常功能,仅在控制台打印日志。
classloader.check-leaked-classloader: false
#解决flink state.savepoint.timeout问题
yarn.application-client.timeout.ms: 300000
2.3 将hadoop的core-site.xml和hdfs-site.xml复制到flink的conf文件夹中
复制完成启动即可使用
2.4 flink on yarn启动配置文件
bin/flink run \
#指定checkpoint或者savepoint地址
-s hdfs://yourcluster/flink/ck/xxxx \
#任务类型,持久任务建议用yarn-per-job
-t yarn-per-job \
#选择队列名称
-Dyarn.application.queue=xxx \
#指定并行度
-p 1 \
-d \
#指定任务名称
-Dyarn.application.name=xxxxx \
#flink任务失败重试次数
-Dyarn.application-attempts=3 \
#指定jobmanager的总内存占用
-Djobmanager.memory.process.size=1024mb \
#指定taskmanager的总内存占用
-Dtaskmanager.memory.process.size=2048mb \
#指定taskmanager分片数量
-Dtaskmanager.numberOfTaskSlots=1 \
#指定taskmanager管理内存大小
-Dtaskmanager.memory.managed.size=256mb \
#指定taskmanager堆内存大小
-Dtaskmanager.memory.task.heap.size=917mb \
#指定jar包内运行的主任务名称
-c cece.app.dwd.DwdTrafficUserPostTrait_Clickhouse \
#指定本地jar包位置,不支持jar放入hdfs
xxxxxxx.jar
内存参数配置详见官网:
https://nightlies.apache.org/flink/flink-docs-release-1.16/docs/deployment/memory/mem_setup_tm/