Я пытаюсь настроить hive-site.xml
, чтобы MySQL был за пределами локального MySQL в EMR. Как изменить существующую конфигурацию кластера, чтобы добавить hive-site.xml
из S3?
Настройка хранилища метаданных aws emr hive hive-site.xml
Ответы (2)
Я не уверен, что вы подразумеваете под «добавить hive-site.xml из S3». Если вы просто хотите получить файл с S3 в свой каталог conf, вы можете сделать это с помощью aws-cli, войдя в свой кластер,
aws s3 cp s3://path/to/hive-site.xml ~/conf
Более подробные инструкции по миграции Hive MetaStore существующего кластера EMR во внешнюю службу, например RDS, можно найти ниже.
--
Настроить существующий кластер EMR для просмотра внешней базы данных MySQL очень просто. Во-первых, вам нужно сделать дамп базы данных MySQL, работающей на вашем главном узле, чтобы сохранить существующую информацию о схеме. Предполагая, что у вас большой объем эфемерного хранилища, а сокет вашей базы данных расположен по адресу /var/lib/mysql/mysql.sock
:
mysqldump -S /var/lig/mysql/mysql.sock hive > /media/ephemeral0/backup.sql
Затем вам нужно будет импортировать это во внешний экземпляр MySQL. Если это в RDS, вам сначала нужно создать базу данных hive
, а затем импортировать в нее свои данные:
mysql -h rds_host -P 3306 -u rds_master_user -prds_password mysql -e "create database hive"
и,
mysql -h rds_host -P 3306 -u rds_master_user -prds_password hive < /media/ephemeral0/backup.sql
Далее вам нужно создать пользователя для использования в улье. Войдите в свой внешний экземпляр MySQL и выполните следующую инструкцию (с лучшим именем пользователя и паролем):
grant all privileges on hive.* to 'some_hive_user'@'%' identified by 'some_password'; flush privileges;
Наконец, создайте/внесите такие же изменения в hive-site.xml
, как указано в документации, которую вы процитировали (заполнив правильную информацию о хосте, пользователе и пароле), и перезапустите MetaStore. Чтобы перезапустить ваш MetaStore, завершите уже запущенный процесс MetaStore и запустите новый.
ps aux | grep MetaStore
kill pid
hive --service metastore&
Если вы находитесь в EMR 3.x
, вы можете просто использовать метод по предоставленной вами ссылке (используя действие начальной загрузки).
Если вы находитесь в ERM 4.x+
, то это действие начальной загрузки недоступно. Вы могли
- либо добавьте пользовательские свойства через
EMR --configuration
с файломxxx.json
. Выгода очевидна. Минус в том, что все свойства конфигурации, которые вы добавили таким образом, будут находиться наaws web console
, что не идеально, если у вас есть такие вещи, как учетные данные базы данных хранилища метаданных, поскольку вы используете внешнее хранилище метаданных. - или вы добавляете
Step
после запуска кластера, чтобы перезаписать ваш файл hive.xml с S3, затем еще одинStep
для выполненияsudo reload hive-server2
для перезапуска сервера улья для получения новой конфигурации.