flink集成yarn(flink on yarn)

一:组件

     1、hadoop(包含了yarn和hdfs),hadoop 2.8.5版本

     2、flink,版本 flink-1.7.2-bin-hadoop28-scala_2.11.tgz

    3、centos7   

二:步骤。

     1、自行安装hadoop集群,很多帖子,随意找。

     1)关于配置  core-site.xml

  fs.defaultFS

  hdfs://master:8020

 

  hadoop.tmp.dir

  /data/hadoop/data/tmp

2)关于配置hadoop-env.sh

export JAVA_HOME=/data/soft/jdk1.8.0_181

3)关于配置hdfs-site.xml

  dfs.replication

  1

  dfs.namenode.secondary.http-address

  slave2:50090

  dfs.namenode.name.dir

  /data/hadoop/data/dfs/namenode

  dfs.datanode.data.dir

  /data/hadoop/data/dfs/datanode

4)关于配置mapred-env.sh

export JAVA_HOME=/data/soft/jdk1.8.0_181

5)关于配置 mapred-site.xml

mapred-site.xml文件默认是没有的,需要cp  mapred-site.xml.template  mapred-site.xml

    mapreduce.framework.name

    yarn

    mapreduce.jobhistory.address

    master:10020

    mapreduce.jobhistory.webapp.address

    master:19888

    mapreduce.map.memory.mb

    2048

报错如下:

Diagnostics: Container [pid=16377,containerID=container_1533988876407_0004_02_000001] is running beyond virtual memory limits. Current usage: 59.9 MB of 1 GB physical memory used; 2.2 GB of 2.1 GB virtual memory used. Killing container.


6)关于配置slaves(此时把master也当做一个slave了)

vim  slaves   

master

slave1

slave2

7)关于配置 yarn-site.xml

    yarn.nodemanager.aux-services

    mapreduce_shuffle

    yarn.resourcemanager.hostname

    master

    yarn.log-aggregation-enable

    true

    yarn.log-aggregation.retain-seconds

    106800

    yarn.nodemanager.resource.cpu-vcores

    8

  yarn.log-aggregation-enable

  true

  yarn.log.server.url

  http://master:19888/jobhistory/logs/

    yarn.nodemanager.vmem-pmem-ratio

    5

注:日志聚集功能不配置


flink集成yarn(flink on yarn)_第1张图片

这点点进去会报错。

三:flink部署

下载flink包

1)配置flink-conf.yaml

#Jobmanager的IP地址,即master地址。

jobmanager.rpc.address: master

#每一个TaskManager的堆大小(单位是MB),由于每个taskmanager要运行operator的各种函数(Map、Reduce、CoGroup等,包含sorting、hashing、caching),因此这个值应该尽可能的大。如果集群仅仅跑Flink的程序,建议此值等于机器的内存大小减去1、2G,剩余的1、2GB用于操作系统。如果是Yarn模式,这个值通过指定tm参数来分配给container,同样要减去操作系统可以容忍的大小(1、2GB)。

#本地方设置6G

taskmanager.heap.size: 6144

#每个TaskManager的并行度。一个slot对应一个core,默认值是1.一个并行度对应一个线程。总的内存大小要且分给不同的线程使用。

taskmanager.numberOfTaskSlots: 4

#启动job默认用的parallelism数量

parallelism.default:8

#临时目录

taskmanager.tmp.dirs: /tmp

#JobManager的堆大小(单位是MB)。当长时间运行operator非常多的程序时,需要增加此值。具体设置多少只能通过测试不断调整。

jobmanager.heap.size: 2048

#jobmanager.web.port: 8081

#JobMamanger的端口,默认是6123。

jobmanager.rpc.port: 6123

state.backend: filesystem

state.backend.fs.checkpointdir: hdfs:///flink/checkpoints

fs.hdfs.hadoopconf: /var/apps/hadoop285/etc/hadoop

注:如果配置高可用,这里面少了zookeeper的配置

2)配置master

vim masters

master:8081

3)配置slaves

vim slaves

slave1

slave2


三:启动yarn  和flink

四:提交任务。

./bin/flink run -m yarn-cluster -yn 2 -yjm 1024 -ytm 1024 -d -c com.xxxxx.flink.app.xxxxxFlinkData  /var/apps/xxxx-xxxxx.jar

页面如下:


flink集成yarn(flink on yarn)_第2张图片


flink集成yarn(flink on yarn)_第3张图片

完成!

你可能感兴趣的:(flink集成yarn(flink on yarn))