数据流管道未以-v参数开头



我正在编写一个用于处理python中的大数据文件的apachebeam管道。该管道的参数由argparsePipelineOptions管理。我在_add_argparse_args():中创建了一个详细参数(用于处理日志级别(

parser.add_argument('-v', '--verbosity', action='count', help='Increase output verbosity', default=0)

此参数允许为日志INFO指定-v,为日志DEBUG指定-vv,为日志ALL指定-vvv。如果未指定参数,则只显示WARN和ERROR日志。

当我使用DirectRunner运行此代码时,一切都很顺利,并且基于-v参数的计数正确应用了日志级别。然而,当我在GCP Dataflow上运行相同的代码时,管道不会启动(有或没有-v或--verbose参数(:Dataflow解析管道,执行其解压缩和融合步骤的内部逻辑,然后准备工作池,准备第一个融合步骤但不运行,然后在这里等待。几分钟后,Dataflow注意到没有活动,并减少了工作人员池,最终在1小时后关闭。

如果删除该参数定义,则管道在GCP数据流上运行良好。

所以我想知道这个参数(甚至不是使用它,而是

定义它更新:我进一步调查了数据流日志,发现这个日志很多次(可能每次数据流启动一个工作程序?(。它链接到sdk_worker_main.py:

2022-04-11 10:25:38.993 CEST "Logging handler created."
2022-04-11 10:25:38.996 CEST "semi_persistent_directory: /var/opt/google"
2022-04-11 10:25:39.024 CEST "usage: sdk_worker_main.py [-h] [--runner RUNNER] [--streaming] "
2022-04-11 10:25:39.024 CEST " [--resource_hint RESOURCE_HINTS] "
2022-04-11 10:25:39.024 CEST " [--beam_services BEAM_SERVICES] "
2022-04-11 10:25:39.024 CEST " [--type_check_strictness {ALL_REQUIRED,DEFAULT_TO_ANY}] "
2022-04-11 10:25:39.024 CEST " [--type_check_additional TYPE_CHECK_ADDITIONAL] "
...[lists all possible parameters]...
2022-04-11 10:25:39.025 CEST " [--s3_verify S3_VERIFY] [--s3_disable_ssl] "
2022-04-11 10:25:39.025 CEST " --root_path ROOT_PATH --period PERIOD [-v] "
2022-04-11 10:25:39.025 CEST "sdk_worker_main.py: error: argument -v/--verbosity: ignored explicit argument '0' "
2022-04-11 10:25:39.060 CEST "2022/04/11 08:25:39 Python exited: exit status 2 "

在上面的日志中,--root_path、--period和-v是我为管道创建的参数。

我怀疑您的更改在执行Dataflow作业时会以某种方式导致失败。您能否根据此处的说明检查Dataflow工作日志?

最新更新