运行Fink应用程序建议(当然在IDE之外)



我很乐意在运行Flink应用程序上接受任何建议,因为它似乎有点像雷区。我在这里说的Linux(Centos 7 Dist),因为我甚至不想分享Windows向我抛回的问题。

从命令行运行只是一场长期的灾难,似乎永远不会运行。最初,我尝试通过Maven使用Maven进行"正确"的插座文件夹,用于属性文件等,这是一场灾难,因为它永远不会找到任何东西(通过Java -Jar ..启动时)。然后,我尝试了Maven Shade插件来获得一个Uber Jar(并且在各个词义上都可以是Uber) - 但是他死了,而Flink无法找到自己的参数工具依赖性。(另外,请注意,如果您使用-dlog4j.configuration.file,则以上任何一个可能会更少关心,因为它完全忽略了它)。因此,我们放弃与Java -Jar Anapp.jar有关的任何事情继续前进,我们尝试通过Web界面提交它。这至少显示出承诺(即实际上确实找到了参数),但是很快就会消失。似乎上传将其放置(并将其删除在失败中,因此很难说出它)进入/tmp目录,从那里,任何配置类或支持类都是我的应用程序需求是看不见的,因为Flink永远找不到它们。因此它崩溃了(并将Web应用程序与之降低,因此我必须从划痕重新加载Uber jar并再次重置我的所有命令行选项。(在明亮的一面,我不需要将我的-dlog4j参数放入由于这里也被忽略了)。

欢迎任何建议...

(通过Java -jar启动时)

好吧,这里是一个大危险信号。

与在IDE中运行的作业相比,您刚刚运行了类的主要方法,以在IDE之外运行作业,它必须将其提交给Flink群集。原因是在IDE中,在执行工作时会自动启动集群,但是在IDE之外,您通常需要重新使用现有群集。

鉴于您能够访问Web-Interface,我将假设您已经使用/bin/start-cluster.sh/bin/start-local.sh开始了Flink。如果没有,现在是这样做的最佳时机。

要提交您的工作,请运行/bin/flink run <your jar>。您的应用程序所需的任何库,尚未包含在JAR 中的库,都必须放入Flink Distribution的/lib目录中。

请注意,我建议首先提交捆绑的WordCount示例(/examples/batch/wordcount.jar),因此您不必立即处理依赖项。(让我们一次解决一个问题)

感谢您的Ches。确实确实放弃了Java -Jar。尽管仍然不理想,但设法通过对集群作弊来取得重大进展。基本上,添加了一个命令行参数(在Web界面上可用),该参数使我能够通过参数文字来挑选属性文件的位置。然后,此配置文件将包含支持资源的位置,因此应用程序将愉快地运行。我确实必须在应用程序中添加一些额外的代码,以确定它是在Windows还是Linux上,以便可以从配置文件中选择硬编码位置的正确格式。当然,理想情况下,当我首先将文件放入/src/main/资源中时,我认为Flink会在平台上单独找到它们(或至少要延迟到Java以找到正常),但没有。硬编码(ISH至少是通过属性文件可配置的硬位置)现在可以做到的。

相关内容

  • 没有找到相关文章

最新更新