Настройка хранилища метаданных aws emr hive hive-site.xml

Я пытаюсь настроить hive-site.xml, чтобы MySQL был за пределами локального MySQL в EMR. Как изменить существующую конфигурацию кластера, чтобы добавить hive-site.xml из S3?

http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-dev-create-metastore-outside.html


person user3327034    schedule 08.03.2015    source источник


Ответы (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&
person cbrown    schedule 21.09.2015

Если вы находитесь в EMR 3.x, вы можете просто использовать метод по предоставленной вами ссылке (используя действие начальной загрузки).

Если вы находитесь в ERM 4.x+, то это действие начальной загрузки недоступно. Вы могли

  1. либо добавьте пользовательские свойства через EMR --configuration с файлом xxx.json. Выгода очевидна. Минус в том, что все свойства конфигурации, которые вы добавили таким образом, будут находиться на aws web console, что не идеально, если у вас есть такие вещи, как учетные данные базы данных хранилища метаданных, поскольку вы используете внешнее хранилище метаданных.
  2. или вы добавляете Step после запуска кластера, чтобы перезаписать ваш файл hive.xml с S3, затем еще один Step для выполнения sudo reload hive-server2 для перезапуска сервера улья для получения новой конфигурации.
person LeOn - Han Li    schedule 06.01.2017