Как отлаживать функции DoFn конвейера потока данных /Apache Beam в затмении, используя прямой запуск

Я хочу запустить свой конвейер, используя прямой запуск в eclipse и поставить точку останова в моих функциях DoFn и отладке выполнения. Я попытался настроить прямой бегун с помощью следующих шагов:

  1. Добавить прямой бегун Maven пакет
  2. Настройте профиль maven для прямого бегуна в pom.xml. Мой pom.xml имеет этот профиль

<profiles> <profile> <id>direct-runner</id> <activation> <activeByDefault>true</activeByDefault> </activation> <dependencies> <dependency> <groupId>org.apache.beam</groupId> <artifactId>beam-runners-direct-java</artifactId> <version>0.2.0-incubating</version> </dependency> </dependencies> </profile> </profiles>

  1. У меня есть этот плагин Maven под управлением плагинов в моем pom.xml

<pluginManagement> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.4.0</version> <executions> <execution> <goals> <goal>java</goal> </goals> </execution> </executions> <configuration> <cleanupDaemonThreads>false</cleanupDaemonThreads> <mainClass>com.MyMainClass</mainClass> </configuration> </plugin> </plugins> </pluginManagement>

  1. Ниже приведен снимок экрана с моей конфигурацией отладки Eclipse. Когда я запускаю с использованием вышеуказанного, задание конфигурации отладки запускается в потоке данных GCP вместо локальных потоков JVM, и мои контрольные точки никогда не достигаются.

1 ответ

Решение

Возможно, именно так вы создаете свой конвейер в своих методах тестирования. Попробуйте создать конвейер, используя класс утилиты TestPipeline, как это

public TestPipeline p = TestPipeline.create();
Другие вопросы по тегам