flink集群使用yarn per-job提交jar任务
需求
把flink的资源调度管理交给专业的框架yarn框架去做!
怎么做?
-
搭建好hadoop集群,启动hdfs集群和yarn集群
-
安装好flink集群
-
进入flink集群下面,用per-job的方式启动
bin/flink run -m yarn-cluster -yn 2 -yjm 1024 -ytm 1024 /home/bigdata/server/jar/productDownLine-1.0-SNAPSHOT.jar

出了一个错误,java.lang.IllegalStateException: No Executor found. Please make sure to export the HADOOP_CLASSPATH environment variable or have hadoop in your classpath. For more information refer to the "Deployment" section of the official Apache Flink documentation.
百度以后的解决方案是
link 1.11开始官方不再维护flink-shaded-hadoop-2-uber jar,可以使用之前版本的shade,社区建议导入hadoop classpath,执行这行代码,不需要改任何东西
执行这个命令 export HADOOP_CLASSPATH=`hadoop classpath`

解决这个问题以后,继续启动刚才的命令
还是报错,但是报的是另一种错误

这个错误的原因是没有指定入口类的地址,如org.example.job.T4301MesDownline

bin/flink run -t yarn-per-job -c org.example.job.T4301MesDownline /home/bigdata/server/jar/productDownLine-1.0-SNAPSHOT.jar

启动成功不报错!我们看看页面的情况吧

查看yarn集群正在运行的任务有哪些?
yarn application -list

杀掉正在进行的任务
yarn application -kill a_id

有一个疑问,当我把flink任务提交给yarn集群进行资源调度管理的时候,
-
为什么flink集群里面没有任何任务显示?
因为此时用的是hadoop的yarn的集群,而不是自带的集群!!
-
Tracking UI根本点不开?为什么?

无法访问含有host主机名的任何链接,但是把主机名改成ip就可以了!!
浏览器的主机没有设置host与ip识别

设置hosts文件可以修改权限
然后添加集群的ip与hostname进去,保存退出

现在可以正常访问了
