Flink1.9系列-Flink on Yarn配置篇

接上篇Flink1.9系列-CDH版本源码编译篇,在编译完cdh版本后,我们接下来需要做的事情就是怎么样使用Flink提交一个简单代码!

ok!正题来了

依赖包拷贝

由于我们在上篇编译源码的时候,Flink官方是将hadoop以及其他的一些依赖包没有编译进flink的lib目录中,所以正式运行前,我们首先要将上篇中已经编译好的flink-shaded-7.0目录中的flink-shaded-hadoop-2-2.6.0-cdh5.14.2-7.0.jar拷贝到flink的lib目录中

cp flink-shaded-7.0/flink-shaded-hadoop-2/target/flink-shaded-hadoop-2-2.6.0-cdh5.14.2-7.0.jar flink-release-1.9.0/build-target/lib

这样就ok了吗?并不会,这样运行flink的代码的时候会发生很多的类似于NoSuchMethod 或者 ClassNotFound的现象,所以还需要做下面的操作

指定hadoop的依赖包路径

运行flink脚本前,需要指定hadoop环境的依赖包的路径,让flink程序能找到它所需要的依赖包,但是如果我们手工一个一个的指定的话,会比较麻烦而且很有可能出错,这里提供一个一劳永逸的方法:导出hadoop classpath环境变量

export HADOOP_CLASSPATH=`hadoop classpath`

这里比较灵活,你可以在每次运行脚本前执行这个操作,也可以把系统或者用户的环境变量中一次性指定这个环境变量

Flink On Yarn两种模式

我们知道,flink on yarn有两种运行模式,一种是在yarn上建立一个长连接,即yarn-session,这种模式下所有的job都会提交到这一个session下,所有的job一起同享session所申请的资源;另一种模式时每个job作为单独的session提交任务,相互之间并不影响。

yarn-session

bin/yarn-session.sh -tm 1024 -s 4

flink job

bin/flink run -m yarn-cluster -yn 3 -s 4 examples/batch/WordCount.jar

至此!恭喜你!你已经可以向你的cdh yarn上提交一个flink example代码了!

你可能感兴趣的:(Flink)