我想要为我的Java数据流代码调用一些C ++可执行文件(有时我需要编译成可执行文件的源代码)。那可能吗?如果是这样,我如何安装并可能将C ++代码编译到数据流使用的虚拟机上,以及如何通知dataflow使用这些特定的虚拟机?此外,如果需要,我的Java代码可以写入光盘(例如,有一些令人难以置信的大对象可能无法存储在RAM中,因此我暂时需要在处理时将其存储到磁盘)。 (通常,我知道应该重写Google云数据流分布式架构中的代码,但在某些情况下,它在短期内“更容易”,而且对于特定用例而言只是为了写入磁盘,因为某些库已经写好了等)
答案 0 :(得分:1)
是的,可以执行其他二进制文件或使用JNI从Dataflow调用C ++代码。您可以使用--filesToStage选项将所需的任何文件转储到工作虚拟机,然后根据工作人员的喜好使用它们。您需要在传递给--filesToStage的列表中包含运行Java代码所需的所有jar文件。
工人都有磁盘,所以你也可以使用它。请注意,无法保证任何特定工作人员的存在时间,因此只保证磁盘可用于单个工作包。由于您只需要临时缓冲数据,这对您来说应该没问题。