为什么Apache Flink可以在Windows机器上写文件,而不能使用简单的FileSink和SimpleStringEncoder在Linux容器上写文件?

fslejnso  于 2023-02-06  发布在  Apache
关注(0)|答案(1)|浏览(132)

我正在使用GitHub库here中的“flink-training”中提供的示例,特别是“ride-cleaning”示例。
我用一个简单的FileSink替换了PrintSinkFunction,配置如下:

FileSink fileSink =
            FileSink.forRowFormat(new Path(args[0]),
                                           new SimpleStringEncoder<String>("UTF-8"))
                             .withRollingPolicy(DefaultRollingPolicy.builder()
                             .withRolloverInterval(Duration.ofMinutes(1))
                             .withInactivityInterval(Duration.ofSeconds(30))
                             .withMaxPartSize(512 * 512 * 512)
                             .build())
                    .build();

当我在Intellij中的本地计算机上运行此示例时,将创建预期的目录并创建文件以反映流到接收器的数据。
然而,当我在Linux机器上(在Google Colab上)运行这个相同的示例时,无论我让它运行多长时间(我已经尝试了10分钟以上),都会创建目录,但不会创建文件。
在Linux容器上,我使用gradle设置和以下命令运行示例:
./gradlew :ride-cleansing:runJavaSolution --args="/content/datastream"
在Windows系统上,我只是使用简单的“应用程序”运行配置执行RideCleansingSolution“main”。
在决定是否写入数据的两个系统上,我的设置可能有什么不同?

xdyibdwo

xdyibdwo1#

它可能不起作用,但如果你在任何 nx你使用的东西上设置mono develope,并通过VS.NET23中的Xamarin用c#编写它,它 * 可能 * 在所有平台和架构上无缝工作...但我只是在这里吐口水,所以'o/'

相关问题