繁体   English   中英

使用 Beam Java SDK 在 Google Dataflow 上安装 apt-get 依赖项

[英]Install apt-get dependencies on Google Dataflow with Beam Java SDK

我们目前正在尝试让 OpenCV 在 Google Cloud Dataflow 上的 Java 作业中运行。 不幸的是,我们无法将 Dataflow 使用的 Docker 容器替换为安装了 OpenCV 的容器。 请参阅其他问题)如果我们使用 Python SDK,则可以选择指定可用于调用apt-getsetup.py文件。 使用 Java SDK 创建的作业是否有类似的东西?

谢谢你的帮助!

我想出了一个解决方案,但可能有更优雅的方法来做到这一点。

@Setup
public void setupDoFn() {
    ProcessBuilder pb = new ProcessBuilder("apt-get", "install", "-y", "libopencv-dev");
    try {
        Process p = pb.start();
        String line;
        BufferedReader input =
                new BufferedReader
                        (new InputStreamReader(p.getInputStream()));
        while ((line = input.readLine()) != null) {
            logger.debug("Apt-get: " + line);
        }
        input.close();
        // Initialize the OpenCV Libarary
        nu.pattern.OpenCV.loadLibrary();
    } catch (IOException e) {
        e.printStackTrace();
        // If we could not install OpenCV, we have to terminate the stream
        System.exit(-1);
    }

}

Cloud Dataflow 现在支持自定义容器,可以安装其他库(例如 OpenCV)。 有关更多信息,请参阅此页面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM