• 迁移hive,不同集群。


    step1: 设置默认需要导出的hive数据库为defaultDatabase

    在原集群中的任意节点上,新建“.hiverc”文件,加入如下内容:

    vi ~/.hiverc
    use defaultDatabase; 
    defaultDatabase可修改为需要迁移的其它名称

    step2: 创建数据临时目录

    hdfs dfs -mkdir /tmp/hive-export

    step3: 生成数据导出脚本

    执行如下命令生成数据导出脚本:

    hive -e "show tables" | awk '{printf "export table %s to @/tmp/hive-export/%s@;
    ",$1,$1}' | sed "s/@/'/g" > export.sql

    -- 这里是生成全部的表,如果是迁移几个表的话,那么直接可以自己写export.sql
    -- 例如:export table rv_Cloud_Source   to '/tmp/hive-export/rv_Cloud_Source';

    step4: 手工导出数据到HDFS

    执行脚本导出数据

    hive -f export.sql

    -- 这里可以在export.sql加上use database;

    step5: 下载数据

    下载HDFS数据到本地,并传送到目标集群(targetDir为目标集群地址)的/tmp/hive-export目录:

    hdfs dfs -get /tmp/hive-export/   
    scp -r hive-export/ export.sql root@targetDir
    hdfs dfs -put hive-export/ /tmp/hive-export

    step6: 生成数据导入脚本

    执行如下命令,复制导出脚本,并将脚本修改为导入脚本:

    cp export.sql import.sql
    sed -i 's/export table/import table/g' import.sql
    sed -i 's/ to / from /g' import.sql

    -- 这里是导入全部表,所以使用sed做了一下替换,如果只导入几个hive 表,那么这样即可:
    -- use database; import table rv_Cloud_ADSDKSource from '/tmp/hive-export/rv_Cloud_ADSDKActiveUser';

    step7: 导入数据

    hive -f import.sql 


    主要转自:https://docs.ucloud.cn/analysis/uhadoop/migration 中的hive迁移
  • 相关阅读:
    Java作业十(2017-11-8)
    Java作业九(2017-11-6)
    Java作业八(2017-10-30)
    Java作业七(2017-10-30)
    Java作业六(2017-10-30)
    Java作业五(2017-10-15)
    如何获取jqGrid中选择的行的数据
    如何修改WAMP中mysql默认空密码
    为 PhpStorm 配置 Xdebug 来调试代码
    MySQL load_file()/into outfile路径问题总结
  • 原文地址:https://www.cnblogs.com/hark0623/p/9018046.html
Copyright © 2020-2023  润新知