Как настроить Stocator на Amazon EMR

Я пытаюсь настроить Stocator в кластере Amazon EMR для доступа к данным на Amazon s3. Я нашел ресурсы, которые указывают, что это должно быть возможно, но очень мало деталей о том, как заставить это работать.

Когда я запускаю свой кластер EMR, я использую следующую конфигурацию:

{
    "classification": "core-site",
    "properties": {
        "fs.stocator.scheme.list": "cos",
        "fs.cos.impl": "com.ibm.stocator.fs.ObjectStoreFileSystem",
        "fs.stocator.cos.impl": "com.ibm.stocator.fs.cos.COSAPIClient",
        "fs.stocator.cos.scheme":"cos"
    }
}

Затем я пытаюсь получить доступ к файлу, используя cos://mybucket.service/myfile

Это приводит к ошибке из-за отсутствия учетных данных.

Я добавляю учетные данные, в spark-shell, к свойствам используя:

val credentials = new com.amazonaws.auth.DefaultAWSCredentialsProviderChain().getCredentials
sc.hadoopConfiguration.set("fs.cos.service.access.key",credentials.getAWSAccessKeyId)
sc.hadoopConfiguration.set("fs.cos.service.secret.key",credentials.getAWSSecretKey)

Теперь, когда я пытаюсь получить доступ cos://mybucket.service/myfile Я получаю ошибку: org.apache.spark.sql.AnalysisException: Path does not exist:,

доступ к файлу с помощью s3://mybucket/myfile работает, так как не использует Stocator. Также работает доступ к файлу через интерфейс командной строки amazon.

Существуют ли онлайн-ресурсы, подробно описывающие, как получить Stocator работа над AWS?

Кто-нибудь успешно сделал это самостоятельно, и вы можете поделиться своей конфигурацией?

1 ответ

  1. Вы можете просто связаться с Гилом Верником и попросить совета. Убедитесь, что он работает с семантикой согласованности EMR S3; Я считаю, что это должно.
  2. Hadoop 3.1 имеет свои собственные высокопроизводительные коммиттеры, вероятно, быстрее, чем Stocator. (но я бы сказал, не так ли?)
  3. И часть исходного кода для этого кода поступила от коммиттера Netflix S3A.

Я бы поиграл с Netflix, так как я уверен, что он там хорошо работает.

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