hive 集群内复制数据库

引子
工作中碰到几个外部项目使用相同数据库结构和基础数据的数据库
为了每个项目的数据独立性
可复制数据库出来给每个项目单独操作
使用非导出的方式在hive集群内复制数据库
  1. 创建数据库
    create database if not exists new_db_name;
  2. 编写建表语句,表比较多的可以将表名全部拿出来后使用shell或python处理成创建表的文本
    use new_db_name;
    create table table_name like old_db_name.table_name;
  3. 复制数据到新的warehouse目录
    hadoop fs -cp /user/hive/warehouse/old_db_name.db/* /user/hive/warehouse/new_db_name.db/
  4. 在新数据库中修复表的元数据
    use new_db_name;
    MSCK REPAIR TABLE table_name;
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
有以下几种方法可以从一个Hive集群迁移数据到另外一个集群: 1. 使用Hadoop命令行工具将数据从一个HDFS集群复制到另一个HDFS集群。首先,您需要在源集群中使用Hadoop命令行工具将数据从HDFS中导出到本地文件系统。然后,将数据上传到目标集群中的HDFS。最后,在目标集群上使用Hive命令行工具将数据加载到目标集群Hive中。 2. 使用Sqoop将数据从一个RDBMS中导出并加载到另一个RDBMS中。Sqoop是一个用于在Hadoop和关系数据库之间传输数据的开源工具。您可以使用Sqoop将数据从源RDBMS中导出为CSV文件,然后将文件上传到目标集群中,并将数据加载到目标RDBMS中。 3. 使用Hive复制表功能将数据从源集群中的Hive复制到目标集群中的Hive。在源集群中,您可以使用Hive的CREATE TABLE语句创建一个新表,并使用INSERT INTO语句将数据从旧表中复制到新表中。然后,在目标集群上使用Hive的CREATE TABLE语句创建一个新表,该表与源集群中的新表具有相同的结构。最后,在目标集群上使用INSERT INTO语句从源集群中的新表中复制数据到目标集群中的新表中。 4. 使用Hive的导出功能将数据从源集群中的Hive导出为CSV文件,然后将文件上传到目标集群中,并使用Hive的导入功能将数据加载到目标集群中的Hive中。在源集群中,您可以使用Hive的INSERT OVERWRITE语句将数据导出为CSV文件。然后,将文件上传到目标集群中,并使用Hive的LOAD DATA语句将数据加载到目标集群中的Hive中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值