flink1.11.0基于java代码实现Application模式的踩坑总结

flink1.11提出了一种新的部署模式:Application模式

以下是在application模式中,通过java代码提交任务遇到的问题以及一些总结:

一、SubmitJobApplicationMode

1、将core-site.xml,flink-conf.yaml,hdfs-site.xml,mapred-site.xml,yarn-site.xml放到resources目录下

2、无法读取到本地的conf文件

org.apache.hadoop.conf.Configuration conf = new org.apache.conf.Configuration();
conf.set("fs.hdfs.impl","org.apache.hadoop.hdfs.DistributedFileSystem");

3、指定flink下的conf目录

String configurationDirectory = "/opt/flink-1.11.0/conf";

4、将flink目录下的lib目录中的文件上传至hdfs

String flinkLibs = "hdfs://192.168.30.100:8020/flinkApplication/libs";

5、指定要运行flink代码的jar

String userJarPath = "hdfs://192.168.30.100:8020/flinkApplication/jars/demo-1.0-SNAPSHOT.jar";

6、指定flink-yarn_2.11-1.11.0.jar的hdfs路径

String flinkDistJar = "hdfs://192.168.30.100:8020/flinkApplication/yarnJar/flink-yarn_2.11-1.11.0.jar";

7、设置用户jar的参数和主类

ApplicationConfiguration appConfig = new ApplicationConfiguration(args,"com.test.demo.TestDemo");

8、pom文件中

<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-client</artifactId>
    <version>3.0.0</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-yarn_${scala.binary.version}</artifactId>
    <version>${flink.version}</version>
    <exclusions>
        <exclusion>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-yarn-common</artifactId>
        </exclusion>
    </exclusions>
</dependency>

二、StopYarnJob

1、指定yarn的ApplicationId

2、指定flink的jobId

3、指定flink的savePoint的地址(hdfs上)

三、linux运行

java    -cp    demo-1.0-SNAPSHOT.jar    cluster.SubmitJobApplicationMode

四、其他问题:

根据flink官方文档:

在flink-conf.yaml中,配置参数:

rest.bind-port: 50010

 在防火墙后面的YARN上运行Flink

一些YARN群集使用防火墙来控制群集与网络其余部分之间的网络流量。在这些设置中,只能将Flink作业从群集网络内部(在防火墙之后)提交到YARN会话。如果这对于生产用途不可行,则Flink允许为其REST端点配置端口范围,该端口范围用于客户端群集通信。配置了此范围后,用户还可以将作业提交给穿越防火墙的Flink。

用于指定REST端点端口的配置参数如下:

  • rest.bind-port

此配置选项接受单个端口(例如:“ 50010”),范围(“ 50000-50025”)或两者的组合(“ 50010,50011,50020-50025,50050-50075”)。

请确保rest.port未指定配置选项,因为该选项优先于rest.bind-port并且不接受范围。

(Hadoop使用的是类似的机制,其中的配置参数称为yarn.app.mapreduce.am.job.client.port-range。)

参考文章

flink教程-详解flink 1.11中的新部署模式-Application模式

完整代码请参考:
https://github.com/zhangjun0x01/bigdata-examples/blob/master/flink/src/main/java/cluster/SubmitJobApplicationMode.java

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值