Hive跨集群数据迁移

参考链接:

方式一:

拷贝表结构:

#!/bin/bash
rm -f databases
hive -e " show databases; exit ;" > databases
#sleep(2)
rm -rf ./tables/*
mkdir -p ./tables
rm -rf ./desc_table/*
mkdir -p ./desc_table
for database in `cat databases`
do
  {
  echo "database:${database}"
  hive -e " use $database ;  show tables ; exit ;" > ./tables/$database
  rm -rf ./desc_table/$database
  for table in `cat ./tables/$database`
  do
     echo "table:${database}.${table}"
     hive -e "use $database ; show create table $table ;" >> ./desc_table/$database
     echo >> ./desc_table/$database
  done
  }
done
#wait

数据:http://www.cnblogs.com/airnew/p/9788122.html

方式二:

采用Hive提供的export/import工具实现:https://blog.csdn.net/github_39577257/article/details/82390507

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值