Как настроить AWS EMR для использования s3 в качестве хранилища hdfs
Я пытаюсь создать кластер EMR с приведенными ниже конфигурациями, но на этапе начальной загрузки происходит сбой. Я использую EMR-релиз EMR 5.13.0
[
{
"Classification": "core-site",
"Properties": {
"fs.defaultFS": "s3://my-s3-bucket",
"fs.s3a.imp": "org.apache.hadoop.fs.s3.S3FileSystem"
}
}
]
Если я удалю эту конфигурацию, кластер будет успешно подготовлен. Любая идея, как можно сделать s3-поддержку hdfs конфигурации?
1 ответ
Короче говоря, то, что вы пытаетесь достичь, невозможно.
Причина: HDFS является реализацией Hadoop FileSystem API, которая моделируется на основе поведения файловой системы POSIX.
В то время как файловая система EMR (EMRFS) является хранилищем объектов в ядре, которое имитирует HDFS, которую все кластеры Amazon EMR используют для чтения и записи обычных файлов из Amazon EMR непосредственно в Amazon S3. Он по-прежнему нарушает некоторые требования API Hadoop FileSystem, которые можно считать заменой HDFS. См. Раздел "Хранилища объектов и файловые системы" в приведенной выше ссылке.
С учетом вышесказанного вы все равно можете использовать Amazon S3 в качестве опции хранения в EMR, не конфигурируя ничего, просто используя схему URI s3: //.
Надеюсь, что это ответ на ваш вопрос.