У меня есть кластер AWS EMR, который используется исключительно для выполнения запросов Spark SQL на S3 для заданий ETL.Он использует базу данных MySQL как внешнее метасторское хранилище .
Я могу настроить внешнее метасторное хранилище, переписав hiveConfiguration.json
:
[
{
"Classification": "hive-site",
"Properties": {
"javax.jdo.option.ConnectionURL": "jdbc:mysql:\/\/${db_url}:3306\/hive?createDatabaseIfNotExist=true",
"javax.jdo.option.ConnectionDriverName": "org.mariadb.jdbc.Driver",
"javax.jdo.option.ConnectionUserName": "${db_username}",
"javax.jdo.option.ConnectionPassword": "${db_password}"
}
}
]
Затем создайте таблицу, котораясохраняется, даже если мой кластер завершен, например:
CREATE EXTERNAL TABLE IF NOT EXISTS table_name
(
key int,
value int
)
LOCATION s3://mybucket/{...}
Я хотел бы иметь возможность отправлять запросы Spark SQL в один и тот же кластер, но использовать другое внешнее метасторское хранилище на основе некоторой конфигурации - например,В заданиях на порте 10001 используется метасторное хранилище на БД 1, а на заданиях на порту 10002 используется метасторное хранилище, записанное на БД 2. Возможно ли это?Я провел небольшое исследование, но не смог найти ничего очевидного.