当前位置: 首页 > news >正文

Hive跨集群迁移

Hive跨集群迁移数据工作是会出现的事情, 其中涉及到数据迁移, metastore迁移, hive版本升级等。

1. 迁移hdfs数据至新集群
hadoop distcp -skipcrccheck -update hdfs://xxx.xxx.xxx.xxx:8020/user/risk hdfs://xxx.xxx.xxx.xxx:8020/user/
-skipcrccheck 因本次迁移涉及低版本迁移高版本, 如果Hadoop版本则不需要
-update 增量更新, 通过名称和大小比较,源与目标不同则更新

hadoop distcp /apps/hive/warehouse/userinfo hdfs://10.11.32.76:8020/apps/hive/warehouse/(我的环境操作)

hadoop distcp -update /apps/hive/warehouse/ hdfs://10.11.32.76:8020/apps/hive/warehouse/ (差异复制)

xxx.xxx.xxx.xxx这个位置最好使用IP地址,尽量不要使用主机名或集群名称,否则需要配置hosts文件解析

2. 源集群metastore数据备份导出(mysql导出)
mysqldump -u root -p’密码’--skip-lock-tables -h xxx.xxx.xxx.xxx hive > mysql_hive.sql
mysqldump -uroot -p --database hive > mysql_hive_data.sql (我的环境操作)

3. 新的集群导入metastore数据(mysql导入)

mysql -u root -proot --default-character-set=utf8 hvie < mysql_hive.sql
mysql -uroot -p < mysql_data.sql(我的环境操作)

4. 升级hive内容库(如果hive版本需要升级操作,同版本不需要操作)
mysql -uroot -proot risk -hxxx.xxx.xxx.xxx < mysqlupgrade-0.13.0-to-0.14.0.mysql.sql
mysql -uroot -proot risk -hxxx.xxx.xxx.xxx < mysqlupgrade-0.14.0-to-1.1.0.mysql.sql
版本要依据版本序列升序升级,不可跨越版本,如当前是hive0.12打算升级到0.14,需要先升级到0.13再升级到0.14

5. 修改 metastore 内容库的集群信息(重要)

因为夸集群,hdfs访问的名字可能变化了,所以需要修改下hive库中的表DBS和SDS内容,除非你的集群名字或者HA的名字跟之前的一致这个就不用修改了

登录mysql数据库,查看:

mysql> use hive;

mysql> select * from DBS;
+-------+-----------------------+--------------------------------------+---------+------------+------------+
| DB_ID | DESC                  | DB_LOCATION_URI                      | NAME    | OWNER_NAME | OWNER_TYPE |
+-------+-----------------------+--------------------------------------+---------+------------+------------+
|     1 | Default Hive database | hdfs://HACluster/apps/hive/warehouse | default | public     | ROLE       |
+-------+-----------------------+--------------------------------------+---------+------------+------------+
1 row in set (0.00 sec)

mysql> select * from SDS;
+-------+-------+------------------------------------------+---------------+---------------------------+-----------------------------------------------+-------------+------------------------------------------------------------+----------+
| SD_ID | CD_ID | INPUT_FORMAT                             | IS_COMPRESSED | IS_STOREDASSUBDIRECTORIES | LOCATION                                      | NUM_BUCKETS | OUTPUT_FORMAT                                              | SERDE_ID |
+-------+-------+------------------------------------------+---------------+---------------------------+-----------------------------------------------+-------------+------------------------------------------------------------+----------+
|     6 |     9 | org.apache.hadoop.mapred.TextInputFormat |               |                           | hdfs://HACluster/apps/hive/warehouse/userinfo |          -1 | org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat |        6 |
+-------+-------+------------------------------------------+---------------+---------------------------+-----------------------------------------------+-------------+------------------------------------------------------------+----------+
1 row in set (0.00 sec)
修改操作:

update DBS  set DB_LOCATION_URI = replace(DB_LOCATION_URI,'hdfs://源1','hdfs://目标') ;
update SDS set LOCATION = replace(LOCATION ,'hdfs://ns2','hdfs://adhoc') ;
如果操作,我这里需要将hdfs://HACluster修改为hdfs://HACluster_New,我为了操作简单,新集群HA起了同样的名字hdfs://HACluster

 

6. 拷贝hive安装包, 拷贝core-site.xml 与 hdfs-site.xml至 conf中, 后续则正常启动即可。(一般不用操作)

参考:
hive 跨集群迁移
http://blog.csdn.net/w412692660/article/details/50551409
不同hadoop集群之间迁移hive数据
http://blog.csdn.net/ggz631047367/article/details/50754005
HIVE 数据迁移,利用hive提供的export/import工具实现批量同步
http://blog.csdn.net/u9999/article/details/34119441
hadoop 集群 跨 版本数据迁移 hadoop1迁移到hadoop2上
http://blog.itpub.net/30089851/viewspace-2062010
---------------------
作者:levy_cui
来源:CSDN
原文:https://blog.csdn.net/levy_cui/article/details/70156682
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/gaoyuechen/p/11142577.html

相关文章:

  • hadoop 参数调优重点参数
  • Hive的配置详解和日常维护
  • AspNet分页控件AjaxPager的使用
  • Thinkpad E430+CentOS 6.4+ linux-3.10.12内核网卡驱动(无线+有线)配置
  • HBase Shell输入命令无法删除问题解决技巧
  • java 表格项的删除、编辑、增加 修改版
  • 《敏捷个人》周刊 第5期 (可下载)
  • 暂时性死区
  • nginx实现最简单的直播
  • java项目代码上线
  • MySQL引擎之innodb介绍及特点
  • mybatis一级缓存二级缓存
  • 高德,百度,84经纬度坐标系的相互转换
  • 解决 Elasticsearch 超过 10000 条无法查询的问题
  • 链表插入排序、链表归并排序
  • [ JavaScript ] 数据结构与算法 —— 链表
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • Elasticsearch 参考指南(升级前重新索引)
  • input实现文字超出省略号功能
  • PHP 的 SAPI 是个什么东西
  • Shadow DOM 内部构造及如何构建独立组件
  • spring security oauth2 password授权模式
  • tweak 支持第三方库
  • 阿里云应用高可用服务公测发布
  • 创建一个Struts2项目maven 方式
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 第十八天-企业应用架构模式-基本模式
  • 浮动相关
  • 设计模式(12)迭代器模式(讲解+应用)
  • 写代码的正确姿势
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​油烟净化器电源安全,保障健康餐饮生活
  • # 达梦数据库知识点
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #13 yum、编译安装与sed命令的使用
  • #控制台大学课堂点名问题_课堂随机点名
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • %@ page import=%的用法
  • (poj1.2.1)1970(筛选法模拟)
  • (Python第六天)文件处理
  • (接口封装)
  • (九十四)函数和二维数组
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)ObjectiveC 深浅拷贝学习
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (轉貼) UML中文FAQ (OO) (UML)
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • **CI中自动类加载的用法总结
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .NET 的程序集加载上下文
  • .net和jar包windows服务部署
  • .NET上SQLite的连接