aws emr hive metastore配置hive-site.xml

时间:2015-03-08 20:08:23

标签: mysql amazon-web-services amazon-s3 emr

我试图配置hive-site.xml让MySQL在EMR上的本地MySQL之外。如何修改现有群集配置以从S3添加hive-site.xml

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

2 个答案:

答案 0 :(得分:0)

我不确定你的意思"从S3"添加hive-site.xml。如果您只想将文件从S3中删除并进入conf目录,则可以在登录群集时使用aws-cli执行此操作,

aws s3 cp s3://path/to/hive-site.xml ~/conf

有关将现有EMR集群的Hive MetaStore迁移到外部服务(如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

接下来,您需要创建一个供hive使用的用户。登录到您的外部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&

答案 1 :(得分:0)

如果您在EMR 3.x,则可以在您提供的链接中使用该方法(使用引导操作)。

如果您在ERM 4.x+,那么该引导操作不可用。你可以

  1. 通过EMR --configuration文件添加自定义内容xxx.json。好处很简单。 con是您以aws web console方式添加的所有配置属性,如果您使用外部Metastore ,那么您可以使用Metastore数据库凭据。
  2. 或者在群集启动后添加Step以覆盖来自S3的hive.xml,然后添加另一个Step以执行sudo reload hive-server2以重新启动配置单元以获取新配置。< / LI>