Использование двух Hive / Spark SQL Metastores в одном кластере - PullRequest
1 голос
/ 13 июня 2019

У меня есть кластер 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. Возможно ли это?Я провел небольшое исследование, но не смог найти ничего очевидного.

...