Flink 1.9.0 刚刚发布,据说更改了约150万行代码,作为吃瓜群众,单集群模式并没有遇到坑点,而on yarn模式简直了,坑了快一周时间,中间不确定因素很多,比如到底是hadoop的配置不对,还是flink的配置不对,环境变量到底是生效了没有,所以记录下flink on yarn的配置流程和配置参数,流程基于前置hadoop教程而来,需要有hadoop yarn环境。
前置准备
虚拟机3台,本教程虚拟机IP:
192.168.43.143
192.168.43.144
192.168.43.145
前置教程
环境配置
-
Java环境:jdk8
-
scala版本:适配kafka集群2.11
-
zk集群:ZooKeeper集群安装教程(稳定版)
-
kafka集群(可选):kafka集群安装教程(稳定版)
-
hadoop集群环境:Hadoop2.8.5集群搭建教程(适配hbase2.2.0最新版)
-
flink地址:https://flink.apache.org/downloads.html#apache-flink-190
部署流程
-
上传:上传flink-1.9.0-bin-scala_2.11.tgz到三台虚拟机目录/usr/local
image
-
解压:三台虚拟机解压flink-1.9.0-bin-scala_2.11.tgz
-
适配包放置:将flink-hadoop包放入flink的lib包下(三台都要)
image
Hadoop配置
集成版,上节不一致的配置以此为准
core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-2.8.5/tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop-2.8.5/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop-2.8.5/dfs/data</value>
</property>
</configuration>
yarn-site.xml
<?xml version="1.0"?>
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
</configuration>
Flink配置文件修改
三台虚机都需做如下配置
flink-conf.yaml
vi /usr/local/flink-1.9.0/conf/flink-conf.yaml
只需要更改下面这一行(指向master节点)
jobmanager.rpc.address: 192.168.43.143
slaves(指向slaves节点)
vi /usr/local/flink-1.9.0/conf/slaves
192.168.43.144
master文件不用配置
Flink yarn session启动
****前提需启动dfs,yarn****
/usr/local/flink-1.9.0/bin/yarn-session.sh -n 1 -jm 1024m -tm 1024m
提交JOB测试
/usr/local/flink-1.9.0/bin/flink run -m yarn-cluster -p 4 -yjm 1024m -ytm 4096m ./examples/batch/WordCount.jar
显示结果,完成搭建
附录:
虚拟内存不足问题
解决方式一 :yarn-site.xml 增加下面配置
<property>
解决方式二 :创建虚拟内存
1. 查看swap分区
free -m
2.新建8G虚拟内存
fallcote -l 8G /swapfile
3.设置swap文件权限
chmod 600 /swapfile
4.通知系统挂载
mkswap /swapfile
5.通知启用swap
swapon /swapfile
Flink集群启动找不到tmp下log4j.jar
解答:hadoop环境变量问题
一 查环境变量
步骤 1
vi /etc/profile
步骤 2 加入如下配置
export HADOOP_HOME=/usr/local/hadoop-2.8.5
****步骤 3** 生效配置**
source /etc/profile
二 检查hadoop-env.sh
export JAVA_HOME=...
三 检查yarn-env.sh
export JAVA_HOME=...
网友评论