我使用Apache Ambari在4节点上安装了Apache Hadoop。我用Apache Flink写了一篇简单的工作。我想将这份工作提交给我的YARN集群。但是Flink需要在本地机器上的YARN配置文件(core-site.xml,yarn-site.xml等)。所以,如果我没有误解,有两种方式
我认为,这两种方式并不是很好。如何将作业提交到远程YARN群集。有没有合适的方式?
答案 0 :(得分:1)
在Hadoop / YARN世界中,您始终需要客户端计算机上的配置文件。所以,你需要在本地获取它们。但是,您通常需要其中一些而不是全部。在大多数情况下,如果我没有弄错的话,应该有足够的hdfs-site.xml,core-site.xml和yarn-site.xml。为了安全起见,请将它们全部复制到本地目录中。
然后在机器上的flink-conf.yaml文件中配置以下参数,该文件将扮演客户端的角色。你将从那里开始你的工作。
fs.hdfs.hadoopconf: path_to_hadoop_conf_dir
然后你应该能够通过告诉flink工具使用纱线大师作为工作经理来启动YARN工作。
flink run -m yarn-cluster -yn <num_task_managers> -yjm <job_manager_memory> -ytm <task_manager_memory -c <main_class> <jar>
如果您在flink-conf.yaml中配置了上述内存参数,则应该可以通过省略所有那些详细参数来启动具有默认值的作业
flink run -m yarn-cluster -n <num_task_managers> -c <main_class> <jar>
作为快速测试,您可以尝试在YARN上启动Scala shell。
start-scala-shell.sh yarn -n <num_task_managers> -nm test_job
答案 1 :(得分:0)
我认为这更像是一个关于启动你的YARN客户端的问题Flink碰巧比Flink本身。
我对Flink知之甚少,但鉴于我对YARN上的Spark的了解,我可以说你只能做2,即将配置文件下载到你将用来启动你的Flink应用程序的机器上。您还可以使用YARN群集中的边缘计算机作为从中部署应用程序的计算机。
同样,我认为这是关于如何向YARN进行应用程序部署的问题。