美文网首页
hive 迁移数据

hive 迁移数据

作者: 后知不觉1 | 来源:发表于2023-03-11 20:00 被阅读0次

1、discp传输数据

再传输过程中有写入或者删除会导致传输失败

#增量更新,更新时覆盖,带宽100MB/s,跳过检查版本,设置队列
hadoop distcp   -Dmapreduce.job.queuename=ana hdfs://xxx/user/hive/warehouse hdfs://xxx/apps/warehouse/

#可以设置队列
#设置带宽

详细设置

2、导出元数据表

mysqldump -uhive -hxxxx -phive hive > hive-cmal-metastore.sql
#替换hive-metastore.bak的存储位置,需要根据当时调整
 
 
替换defaultFS:ssed  's/hdfs:\/\/bigdatacluster\/user\/hive\/warehouse\/hdfs:\/\/testCluster\/apps\/hive_test\/warehouse/g' hive-cmal-metastore.sql

3、导入到新的meta 元数据库

mysql -h xxx -uhive -pxxx  hive_meta < hive-metastore.sql

4、修复分区

因为分区表中目录没有分区字段,只能通过alter

附录: 导出原有hive 表分区

1、 导出库名
export HADOOP_USER_NAME=hive
mkdir ./sql
mkdir ./tmp

#查找库名
hive -e 'show databases;' > ./tmp/dbname.txt

#导出建库语句
while read dbname
do
    hive -e "show create database $dbname;" >> ./sql/create_dbs.sql
    echo ";" >> ./sql/create_dbs.sql
done < ./tmp/dbname.txt


#查找表
while read dbname
do
    hive -e "use $dbname;show tables;" > ./tmp/${dbname}_tables.txt
done < ./tmp/dbname.txt


#导出建表语句
while read dbname
do
    echo "use ${dbname};" > ./sql/create_${dbname}_tables.sql
    while read tbname
    do
        hive -e "use $dbname;show create table $tbname;" >> ./sql/create_${dbname}_tables.sql
        echo ";" >> ./sql/create_${dbname}_tables.sql
    done < ./tmp/${dbname}_tables.txt
done < ./tmp/dbname.txt
2、生层alter语句
#添加分区
while read dbname
do
    while read tbname
    do
       echo "dbname: ${dbname},tbname: ${tbname}" 
       partition_file=./partitions/${dbname}/${tbname}_partitions.txt
       if [[ -s ${partition_file} ]]; then
           while read partions
           do
            partion_key=`echo $partions |awk -F'=' '{print $1}'`
            partion_value=`echo $partions |awk -F'=' '{print $2}'`
            echo "alter table ${dbname}.${tbname} add partition(${partion_key}='"${partion_value}"');" >> ./alter_partitions.txt
           done < ${partition_file}
       else
           echo "empty"
       fi
    done < ./tmp/${dbname}_tables.txt
done < ./tmp/dbname.txt

相关文章

  • hdfs文件迁移

    hadoop跨集群之间迁移HDFS数据 不同hadoop集群之间迁移hive数据 hadoop跨集群之间迁移hiv...

  • 一篇文章教你自建hadoop集群迁移到EMR

    自建集群要迁移到EMR集群,往往需要迁移已有数据。本文主要介绍hdfs数据和hive meta数据如何迁移。 前置...

  • hive数据迁移

    hive的数据迁移一般需要考虑多个部分。1.元数据怎么迁移2.数据怎么迁移3.迁移过后元数据和数据怎么产生关联 1...

  • Hive数据迁移

    版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/5e0b1...

  • hive的这些事(一)——hive数据迁移

    比如需要把生产的hive集群数据迁移到另一个集群,hive提供了2个命令工具,可以实现表的批量迁移。 [expor...

  • hive数据迁移实例

    公司要完成hive数据迁移1.创建hdfs临时文件夹来保存数据 生成数据导出脚本执行以下的命令,生成数据导出的脚本...

  • HIVE数据迁移2

    版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/c1cb1...

  • HIVE数据迁移3

    版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/77c1c...

  • 那些年 CDH 5.13 所踩过的坑

    默认情况下hive访问不到子目录下面数据的问题 我们通过把hdp的数据迁移到了cdh,然后发现一些hive表存储的...

  • HDFS源文件迁移

    在工作中难免会遇到需要迁移大数据库,这时候就涉及到迁移hive等HDFS文件 解决方案: 采用hadoop dis...

网友评论

      本文标题:hive 迁移数据

      本文链接:https://www.haomeiwen.com/subject/hokzldtx.html