开发者社区> 问答> 正文

如何从统一元数据库迁出到用户自建的RDS?

如何从统一元数据库迁出到用户自建的RDS?

展开
收起
Puppet 2020-03-20 09:39:34 826 0
1 条回答
写回答
取消 提交回答
  • 操作步骤

    1. 购买RDS实例,保证RDS可以和集群的master节点网络是通的;最好是跟E-MapReduce的ECS在同一个安全组,这样可以直接使用RDS的内网地址。

    2. 在RDS中创建一个database,名称为hivemeta,同时创建一个用户,把hivemeta的读写权限赋给这个用户。

    3. 导出统一元数据库的内容(只导出数据,不用导表结构)。

    i. 为保证数据的一致性, 在Hive服务页面停止Hive的metastore服务,保证导出期间不会有新的元数据变化。

    ii. 在Hive服务页面,单击配置页签。

    iii. 在配置页面,查找javax.jdo.option.ConnectionUserName、javax.jdo.option.ConnectionPassword和javax.jdo.option.ConnectionURL的值。

    说明  如果是老版本集群,请在$HIVE_CONF_DIR/hive-site.xml中查找。  javax.jdo.option.ConnectionUserName表示对应数据库用户名;javax.jdo.option.ConnectionPassword表示对应数据库访问密码;javax.jdo.option.ConnectionURL对应数据库访问地址和库名。 iv. 进入集群master节点,执行以下命令。 mysqldump -t DATABASENAME -h HOST -P PORT -u USERNAME -pPASSWORD > /tmp/metastore.sql 说明 密码为上一步骤在配置页面获取的密码。

    1. 修改集群Master节点(如果是HA集群两个master都需要)上的/usr/local/emr/emr-agent/run/meta_db_info.json,把里面的use_local_meta_db设置为false,meta数据库的链接地址、用户名和密码换成RDS的信息。 说明 对于无此文件的集群,直接忽略此步骤。

    2. 在Hive配置页面,把元数据库的链接地址、用户名和密码换成新RDS的信息。 如果是老版本集群,修改$HIVE_CONF_DIR/hive-site.xml中对应的配置为需要连接的数据库。

    3. 在一台Master节点上,把hive-site.xml里面的元数据库链接地址、用户名和密码换成RDS的信息,然后执行init schema。

    4. cd /usr/lib/hive-current/bin ./schematool -initSchema -dbType mysql

    5. 把之前导出来的meta数据导入RDS。命令行登录MySQL。 mysql -h {rds的url} -u {rds的用户名} -p 进入MySQL的命令行之后,执行source /tmp/metastore.sql正常情况可以完全导入,不会报错。

    6. 重启Hive所有组件。 验证Hive功能是否正常,可以在Master节点上,执行hive cli,确认数据是否和先前一样。

    2020-03-20 09:39:58
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像