Я думаю, что у вас может быть проблема XY здесь. Вы почти наверняка не хотите иметь удаленную файловую систему HDFS на EMR.
EMR предоставляет две HDFS-совместимые файловые системы для Had oop и Spark изначально:
1) Переходная файловая система, к которой осуществляется доступ через hdfs: //. Это в первую очередь для временных / временных данных. Он длится столько же, сколько и кластер, и поддерживается EBS.
2) Постоянная файловая система, доступ к которой осуществляется через s3: //. Это упоминается как EMRFS в документации. Он поддерживается S3.
Так, например, если вы находитесь в Spark и вы привыкли делать что-то вроде spark.read.parquet ("hdfs: // mydata / somepartition /") .doWork ( ) .write.parquet ("hdfs: // mynewdata / somepartition /")
теперь вы просто делаете spark.read.parquet ("s3: // mybucket / mydata / somepartition /") .doWork () .write.parquet ("s3: // mybucket / mynewdata / somepartition /")
и все просто работает. s3: // оптимизирован для EMR людьми с точки зрения скорости, так как они знают, что ваш кластер EMR совместно использует центр данных с данными S3.
EFS, согласно ответу Шубхам Джейн, вероятно, вызовет проблемы с EMR, поскольку вы эффективно работает второй бэкэнд HDFS помимо переходного, обеспеченного EMR. Я полагаю, вы могли бы, но это было бы немного странно. В вашем кластере EMR вам понадобятся узлы имен для HDFS EMR (в EMR они называются базовыми узлами) и отдельные узлы имен для HDFS с EFS-поддержкой (которые, я полагаю, должны были бы работать как узлы задач EMR?). EFS будет медленнее, чем поддерживаемая EBS HDFS для переходных данных, и дороже, чем S3 для постоянных данных.
Если по какой-то причине вы не хотите использовать EMRFS (я понятия не имею, почему), вы Вероятно, было бы лучше развернуть свой собственный кластер и не использовать EMR, потому что в этот момент вы хотите настроить способ установки HDFS, и цель EMR - сделать это для вас.