Что происходит при вызове конвейера Apache Crunch, считываемого дважды из двух разных источников? - PullRequest
0 голосов
/ 24 мая 2018

При выполнении следующего вызова:

    PCollection<KeyValue> data1 = pipeline.read(source1);
    PCollection<KeyValue> data2 = pipeline.read(source2);
    PCollection<KeyValue> data3 = data1.union(data2);

Согласно документации чтения Apache Crunch, используется ли один и тот же конвейер для чтения из обоих источников, а затем данные объединяются?

1 Ответ

0 голосов
/ 24 мая 2018

Apache Crunch Pipeline может читать столько источников, сколько вы хотите, и затем вы можете начать преобразовывать данные по своему усмотрению, например, объединения PCollections, передавая источники через DoFn или MapFn, чтобы выполнить составление объектов Documents с помощью MapReduce, средимногие другие.

Следует иметь в виду, что Apache Crunch, как и Apache Spark, использует ленивую модель выполнения, что означает, что процесс преобразования данных не будет запущен, пока вы не выполните действие.Ниже я приведу небольшую часть документации Crunch , в которой говорится об этом.

В Crunch используется ленивая модель исполнения.Задания не запускаются и не создаются выходные данные, пока пользователь явно не вызовет один из методов в интерфейсе конвейера, который управляет планированием и выполнением задания.Простейшим из этих методов является метод PipelineResult run (), который анализирует текущий график выходных данных PCollections и Target и разрабатывает план для обеспечения того, чтобы каждый из выходных данных был создан, а затем выполнил его, возвращая только после завершения заданий.,PipelineResult, возвращаемый методом run, содержит информацию о том, что было выполнено, включая количество заданий, выполненных во время выполнения конвейера, и значения счетчиков Hadoop для каждого из этих этапов с помощью классов компонентов StageResult.

Отвечая на ваш вопрос, да, один и тот же конвейер будет читать оба источника.

Примечание: вероятно, вы захотите иметь только один конвейер для преобразования данных.

...