Я создаю кластер EMR (emr-5.24.0) с Terraform, развернутый в частной подсети, в которую входят Spark, Hive и JupyterHub.
Я добавил дополнительную конфигурацию JSON для развертывания, которая должна добавить устойчивость для ноутбуков Jupiter в S3 (вместо локально на диске).
Общая архитектура включает в себя конечную точку VPC для S3, и я могу получить доступ к корзине, в которую пытаюсь записать записные книжки.
Когда кластер подготовлен, сервер JupyterHub не может запуститься.
Вход в главный узел и попытка запустить / перезапустить докер-контейнер для jupyterhub не помогают.
Конфигурация для этого постоянства выглядит следующим образом:
[
{
"Classification": "jupyter-s3-conf",
"Properties": {
"s3.persistence.enabled": "true",
"s3.persistence.bucket": "${project}-${suffix}"
}
},
{
"Classification": "spark-env",
"Configurations": [
{
"Classification": "export",
"Properties": {
"PYSPARK_PYTHON": "/usr/bin/python3"
}
}
]
}
]
В определении ресурса terraform EMR на него ссылаются:
configurations = "${data.template_file.configuration.rendered}"
Это читается с:
data "template_file" "configuration" {
template = "${file("${path.module}/templates/cluster_configuration.json.tpl")}"
vars = {
project = "${var.project_name}"
suffix = "bucket"
}
}
Когда я не использую постоянство на ноутбуках, все работает нормально, и я могу войти в JupyterHub.
Я вполне уверен, что это не проблема политики IAM, поскольку политика роли кластера EMR Разрешить действие определяется как "s3: *".
Есть ли какие-либо дополнительные шаги, которые необходимо предпринять, чтобы это функционировало?
/ K