У меня есть задание Dataflow, которое стабильно работает несколько месяцев. Последние 3 дня или около того у меня проблемы с работой, она застревает по прошествии определенного времени, и единственное, что я могу сделать, это остановить работу и начать новую. Это произошло через 2, 6 и 24 часа обработки. Вот последнее исключение:
java.lang.ExceptionInInitializerError
at org.apache.beam.runners.dataflow.worker.options.StreamingDataflowWorkerOptions$WindmillServerStubFactory.create (StreamingDataflowWorkerOptions.java:183)
at org.apache.beam.runners.dataflow.worker.options.StreamingDataflowWorkerOptions$WindmillServerStubFactory.create (StreamingDataflowWorkerOptions.java:169)
at org.apache.beam.sdk.options.ProxyInvocationHandler.returnDefaultHelper (ProxyInvocationHandler.java:592)
at org.apache.beam.sdk.options.ProxyInvocationHandler.getDefault (ProxyInvocationHandler.java:533)
at org.apache.beam.sdk.options.ProxyInvocationHandler.invoke (ProxyInvocationHandler.java:158)
at com.sun.proxy.$Proxy54.getWindmillServerStub (Unknown Source)
at org.apache.beam.runners.dataflow.worker.StreamingDataflowWorker.<init> (StreamingDataflowWorker.java:677)
at org.apache.beam.runners.dataflow.worker.StreamingDataflowWorker.fromDataflowWorkerHarnessOptions (StreamingDataflowWorker.java:562)
at org.apache.beam.runners.dataflow.worker.StreamingDataflowWorker.main (StreamingDataflowWorker.java:274)
Caused by: java.lang.RuntimeException: Loading windmill_service failed:
at org.apache.beam.runners.dataflow.worker.windmill.WindmillServer.<clinit> (WindmillServer.java:42)
Caused by: java.io.IOException: No space left on device
at sun.nio.ch.FileDispatcherImpl.write0 (Native Method)
at sun.nio.ch.FileDispatcherImpl.write (FileDispatcherImpl.java:60)
at sun.nio.ch.IOUtil.writeFromNativeBuffer (IOUtil.java:93)
at sun.nio.ch.IOUtil.write (IOUtil.java:65)
at sun.nio.ch.FileChannelImpl.write (FileChannelImpl.java:211)
at java.nio.channels.Channels.writeFullyImpl (Channels.java:78)
at java.nio.channels.Channels.writeFully (Channels.java:101)
at java.nio.channels.Channels.access$000 (Channels.java:61)
at java.nio.channels.Channels$1.write (Channels.java:174)
at java.nio.file.Files.copy (Files.java:2909)
at java.nio.file.Files.copy (Files.java:3027)
at org.apache.beam.runners.dataflow.worker.windmill.WindmillServer.<clinit> (WindmillServer.java:39)
Похоже, на устройстве не осталось места, но разве это не должно управляться Google? Или это как-то ошибка в моей работе?
ОБНОВЛЕНИЕ: Рабочий процесс выглядит следующим образом:
- Чтение массовых данных из PubSub (до 1500 / с)
- Отфильтровать некоторые сообщения
- Сохранение окна сеанса по ключу и группировка по нему
- Сортируйте данные и делайте расчеты
- Вывести данные в другой PubSub
No space left on device
действительно похожа на проблему с загрузкой файлов, а не с их удалением. - person robertwb   schedule 07.07.2020If a streaming job uses Streaming Engine, then the default is 30 GB; otherwise, the default is 400 GB.
В 10 раз меньше места на устройствах, вы быстрее выходите из строя - person guillaume blaquiere   schedule 07.07.2020