Я хочу запустить задание EMR Pig, которое в настоящий момент логически разделено на два сценария (и, следовательно, два шага), однако некоторые из файлов данных являются общими между этими двумя сценариями, мой вопрос заключается в том, что Pig распознает это при запуске второй этап (второй скрипт) и повторное использование файлов, считанных с S3, или он очистит все и сделает это с нуля?EMR и Pig работают два шага, будут ли распространены общие файлы из S3 для повторного использования?
EMR и Pig работают два шага, будут ли распространены общие файлы из S3 для повторного использования?
ответ
Вы можете использовать s3distcp для загрузки файлов в формате HDFA по EMR. используйте файлы из HDFS для обоих скриптов свиньи. Так что файлы не будут загружаться каждый раз.
Если ваш EMR-кластер считывает входные данные с S3, он вообще не копирует данные в HDFS.
Amazon EMR не копирует данные на локальный диск; вместо этого картостроители открытых многопоточные HTTP подключения к Amazon S3, извлекать данные и процесс их в потоках
Однако, это не «кэширование» эти потоки для нескольких проходов:
Для итеративного обработки данных, где данные нуждаются в обработке несколько раз с несколькими проходами, это не эффективная архитектура . Это связано с тем, что данные извлекаются из Amazon S3 по сети сети несколько раз.
Для этого сценария, то, вероятно, лучше, чтобы скопировать общие данные в HDFS сначала S3DistCp. Если некоторые из артефактов, которые вы производите на первом этапе, полезны на втором этапе, вы можете записать их в HDFS для второго шага, чтобы забрать в любом случае.