Как настроить 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: //.

Надеюсь, что это ответ на ваш вопрос.

Другие вопросы по тегам