我试图配置hive-site.xml
让MySQL在EMR上的本地MySQL之外。如何修改现有群集配置以从S3添加hive-site.xml
?
答案 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+
,那么该引导操作不可用。你可以
EMR --configuration
文件添加自定义内容xxx.json
。好处很简单。 con是您以aws web console
方式添加的所有配置属性,如果您使用外部Metastore ,那么您可以使用Metastore数据库凭据。 Step
以覆盖来自S3的hive.xml,然后添加另一个Step
以执行sudo reload hive-server2
以重新启动配置单元以获取新配置。< / LI>
醇>