我有一个java应用程序,其中使用 Flink Api
. 所以基本上我要用代码做的是创建两个数据集,其中只有很少的记录,然后将它们注册为两个表以及必要的字段。
DataSet<Company> comp = env.fromElements(
new Company("Aux", 1),
new Company("Comp2", 2),
new Company("Comp3", 3));
DataSet<Employee> emp = env.fromElements(
new Employee("Kula", 1),
new Employee("Ish", 1),
new Employee("Kula", 3));
tEnv.registerDataSet("Employee", emp, "name, empId");
tEnv.registerDataSet("Company", comp, "cName, empId");
然后我试着用 Table API
:
Table anotherJoin = tEnv.sql("SELECT Employee.name, Employee.empId, Company.cName FROM " +
"Employee RIGHT JOIN Company on Employee.empId = Company.empId");
我只是在控制台上打印结果。这在我的机器上非常有效。我创造了一个 fat-jar
通过使用 maven-shade-plugin
我正试图在aws中执行它 Lambda
.
因此,当我尝试在那里执行它时,抛出了以下异常(我只发布了前几行):
reference.conf@file:/var/task/reference.conf:804:无法将替换解析为值:${akka.stream.materializer}:com.typesafe.config.configexception$unsolvedsubstitution com.typesafe.config.configexception$unsolvedsubstitution:reference.conf@file:/var/task/reference.conf:804:无法将替换解析为值:${akka.stream.materializer}位于com.typesafe.config.impl.configreference.resolvesubstitutions(configreference)。java:111)在com.typesafe.config.impl.resolvecontext.realresolve(resolvecontext。java:179)在com.typesafe.config.impl.resolvecontext.resolve(resolvecontext。java:142)
在lambda中执行之前,我提取了jar,碰巧看到所有依赖项都在那里。我不知道哪里出了问题?
任何帮助都将不胜感激。
5条答案
按热度按时间ugmeyewa1#
对于sbt用户来说,这对我很有用。
kd3sttzy2#
最终,我发现了这个问题,这是我pom中的一些主要版本问题。然后我将所有依赖项降级为
Flink 1.3.2
还补充了<relocations>
在shade
插件。现在可以了。我把整个pom都贴上了,这样总有一天它会帮助别人:一定要把主课改成你的。
jbose2ul3#
在grad尔:
然后,在汇总akka从属关系的项目中:
有了它,您应该能够正常地构建(例如,通过调用组装和构建任务)。
intellij idea也支持这一点。ftw!它还支持下面的sbt构造。
tct7dpnv4#
您需要在pom->maven shaded plugin->configuration部分添加以下代码:
66bbxpm55#
这可能来得有点晚,但下面是来自flink网站关于这个主题的答案。
此外,还排除了有关meta inf文件夹的信息,这可能会导致在使用jar时出现安全问题。