Google Dataflow создает только один рабочий для большого файла .bz2 - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь обработать JIK-дамп Wikidata с помощью Cloud Dataflow.

Я скачал файл с https://dumps.wikimedia.org/wikidatawiki/entities/latest-all.json.bz2 и поместил его в корзину GS.Это большой (50G) файл .bz2, содержащий список кодов json (по одному на строку).

Я понимаю, что apache_beam.io.ReadFromText может обрабатывать .bz2 (я проверял это на наборах игрушечных данных) и тому подобное.bz2 разделяется.Поэтому я надеялся, что будет создано несколько рабочих, которые будут работать параллельно над различными блоками этого уникального файла (я не совсем уверен, будут ли / как блоки сохраняться.

В конечном счете, я хочу провести некоторую аналитикукаждая строка (каждый json dict), но в качестве теста для приема внутрь я просто использую слово проекта wordcount.py:

python -m apache_beam.examples.wordcount \
--input gs://MYBUCKET/wikidata/latest-all.json.bz2 \
--output gs://MYBUCKET/wikidata/output/entities-all.json \
--runner DataflowRunner \
--project MYPROJECT \
--temp_location gs://MYBUCKET/tmp/ 

При запуске автоматическое масштабирование быстро увеличивает количество работников 1-> 6, но только одного работникавыполняет какую-либо работу, а затем через несколько минут автоматически масштабируется до 6-> 1 (jobid: 2018-10-11_00_45_54-9419516948329946918)

Если отключить автоматическое масштабирование и явно указать количество рабочих, то все, кроме одного, останутсяidle.

Можно ли добиться параллелизма на вводе такого рода? Большое спасибо за любую помощь.

...