gpt4 book ai didi

java - 在不提供 .jar 的情况下在远程集群上运行 Flink 作业

转载 作者:行者123 更新时间:2023-12-03 11:20:26 31 4
gpt4 key购买 nike

我有以下问题:我想在本地机器上的 IntelliJ 中创建一个 Flink 作业,并在位于 VM 中的远程集群上运行它。我用了 创建远程环境 函数,但匿名类以及 lambda 表达式需要 jar 文件(如果我没有遗漏任何东西)。是否有(或另一种)方法可以在不提供 jar 文件的情况下在远程集群上运行 Flink 作业?下面的代码是我想在远程集群上运行的一个简单的 Flink 作业(没有 jar)。

public static void main(String[] args) throws Exception {
StreamExecutionEnvironment env = StreamExecutionEnvironment.createRemoteEnvironment("192.168.56.101", 6123);

DataStream<Tuple2<String, Integer>> dataStream = env
.socketTextStream("192.168.56.102", 8080)
.flatMap((String sentence, Collector<Tuple2<String, Integer>> out) ->
{
for (String word: sentence.split(" ")) {
out.collect(new Tuple2<String, Integer>(word, 1));
}
});


// Alternative approach with an anonymous class
/*DataStream<Tuple2<String, Integer>> dataStream = env
.socketTextStream("localhost", 8080)
.flatMap(new FlatMapFunction<String, Tuple2<String, Integer>>() {
@Override
public void flatMap(String sentence, Collector<Tuple2<String, Integer>> out)
throws Exception {
for (String word: sentence.split(" ")) {
out.collect(new Tuple2<String, Integer>(word, 1));
}
}
});*/

dataStream.print();

env.execute("Window WordCount");
}

谢谢你的帮助!

最佳答案

基于描述 here错误可能不太直观,但它本质上意味着您需要一个依赖项。
从概念上讲,这意味着您需要提供依赖项。
这通常是通过将它放在一个 jar 里来完成的。
因此,基于依赖项的一般工作方式,我认为答案是您确实必须提供 Jar 来运行需要依赖项的代码。

关于java - 在不提供 .jar 的情况下在远程集群上运行 Flink 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51274585/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com