在Apache Fink中使用C/C++


0

我和我的团队正在开发一个利用Flink的应用程序。

问题是:在 Flink中使用C/C++代码是可能的吗?也许是把它包装到Java库中?

1 答案


0

我从来没有特别 test过这个案子。一般来说,您总是可以使用JNI(Java本机接口)从Java使用本机代码。

其想法是让一个Java facade公开您的本机代码,并在Java(或其他JVM语言,如Scala)中用Flink定义的计算图中使用这些方法。您必须使Java和本机库在所有相关节点上都可用,才能使这项 job 正常进行。如果您有一个Hadoop集群,那么可以利用YARN在您的 job中发送文件(这里的文档,请参阅--YARN ship CLI选项)。

我建议您用一个非常小的本机函数进行增量 test。另外,不要低估Java在性能方面的能力:通过一些经过深思熟虑的编程和利用JIT和其他运行时优化,长时间运行的进程可以比具有非托管内存的类似本机代码获得更好的性能。

请记住,使用本机代码当然意味着将代码的可移植性限制到要编译库的平台上。


我来回答

写文章

提问题

面试题