Установите зависимости apt-get в Google Dataflow с помощью Beam Java SDK

В настоящее время мы пытаемся запустить OpenCV в задании Java в Google Cloud Dataflow. К сожалению, мы не можем заменить контейнер Docker, который использует Dataflow, на контейнер с установленным OpenCV. (См. другой вопрос) Если мы использовали в Python SDK есть возможность указать setup.py файл, который можно использовать для вызова apt-get. Есть ли что-то подобное для рабочих мест, созданных с помощью Java SDK?

спасибо за помощь!

См. также:  Как скачать универсальные артефакты из пользовательского интерфейса артефактов
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 2
  1. Simon

    Я придумал решение, но может быть более элегантный способ сделать это.

    @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);
        }
    
    }
    
  2. Simon

    Cloud Dataflow теперь поддерживает настраиваемые контейнеры, в которых могут быть установлены другие библиотеки (например, OpenCV). Дополнительную информацию см. на этой странице.

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: