文档章节

hadoop集群和hive数据迁移方案

aibati2008
 aibati2008
发布于 2017/04/07 16:51
字数 805
阅读 525
收藏 0

最近公司要做hadoop集群和hive数据的迁移,如何在保证原有业务稳定运行的情况下完成所有数据的迁移,也是一个不容易的过程。我总结了一下流程,给其他hadoop集群和hive数仓的管理员做参考。

1. 首先肯定要保证新的hadoop集群和hive的顺利安装和配置,为了减少遇到不必要的麻烦,新集群采用了跟之前一样的版本,都是hadoop2.6.3和hive1.2.1。如果是跨版本迁移可能要更注意细节了。

2. 复制hdfs数据到新的集群,直接采用distcp命令即可在2个集群间方便的进行数据迁移和同步。参数参考如下:

[hadoop@master1 hive]$ hadoop distcp 
usage: distcp OPTIONS [source_path...] <target_path>
              OPTIONS
 -append                Reuse existing data in target files and append new
                        data to them if possible
 -async                 Should distcp execution be blocking
 -atomic                Commit all changes or none
 -bandwidth <arg>       Specify bandwidth per map in MB
 -delete                Delete from target, files missing in source
 -f <arg>               List of files that need to be copied
 -filelimit <arg>       (Deprecated!) Limit number of files copied to <= n
 -i                     Ignore failures during copy
 -log <arg>             Folder on DFS where distcp execution logs are
                        saved
 -m <arg>               Max number of concurrent maps to use for copy
 -mapredSslConf <arg>   Configuration for ssl config file, to use with
                        hftps://
 -overwrite             Choose to overwrite target files unconditionally,
                        even if they exist.
 -p <arg>               preserve status (rbugpcaxt)(replication,
                        block-size, user, group, permission,
                        checksum-type, ACL, XATTR, timestamps). If -p is
                        specified with no <arg>, then preserves
                        replication, block size, user, group, permission,
                        checksum type and timestamps. raw.* xattrs are
                        preserved when both the source and destination
                        paths are in the /.reserved/raw hierarchy (HDFS
                        only). raw.* xattrpreservation is independent of
                        the -p flag. Refer to the DistCp documentation for
                        more details.
 -sizelimit <arg>       (Deprecated!) Limit number of files copied to <= n
                        bytes
 -skipcrccheck          Whether to skip CRC checks between source and
                        target paths.
 -strategy <arg>        Copy strategy to use. Default is dividing work
                        based on file sizes
 -tmp <arg>             Intermediate work path to be used for atomic
                        commit
 -update                Update target, copying only missingfiles or
                        directories

具体执行命令如下,nn1和nn2分别为集群的namenode节点(如果是hadoop1.x到2.x的迁移,hdfs可能会报错,只能使用hftp的方式进行数据传输,具体方法自行搜索)

hadoop distcp hdfs://nn1/user/hive/ hdfs://nn2:8020/user

 

由于distcp命令也是转换成MR任务来执行,会消耗集群大量的资源,所以如果数据量较大,最好选择在MR job运行较少的时间段做迁移。

 

3. 大家知道Hive数据就是存在HDFS里的,而元数据(metastore)一般会选择存在mysql里,如果新集群的元数据存储数据库还是mysql的话,可以直接选择mysqldump把数据同步过去就ok了。当然要把warehouse全部distcp到目标集群对应目录下,都是存储在/somepath/hive/warehouse/dbname.db/tablename目录下。

我试过数据和元数据同步之后,可以直接在新的hive命令行直接查询所有数据,即使是分区表也没问题。

 

  当然如果你的元数据存储有变化或者元数据出错的话,可能只有采用建表语句+动态分区的方法来迁移hive数据了,具体方案可以参考

https://odinliu.com/2016/02/02/%E6%9C%80%E8%BF%91%E6%90%9EHadoop%E9%9B%86%E7%BE%A4%E8%BF%81%E7%A7%BB%E8%B8%A9%E7%9A%84%E5%9D%91%E6%9D%82%E8%AE%B0/

© 著作权归作者所有

aibati2008
粉丝 14
博文 87
码字总数 61726
作品 0
成都
技术主管
私信 提问
大数据迁移(简单案例)(41 )

大数据迁移: 所谓的大数据迁移就是把某个节点上的数据(或者几个节点上的数据)分别拷贝到不同数据节点上的过程. 就像我在的公司就是这样做的,在CDHhadoop的版本中,一个命令就能完成上面的大数...

肖鋭
2014/05/11
278
1
hadoop2.7集群迁移namenode

我的hadoop集群是2.7.0的集群。 hadoop是机器不相关的,迁移namenode的话,可以按以下步骤迁移。 1、关闭所有hadoop集群、zookeeper、hive、hbase集群,设置hosts和ssh互信,调整服务器时间 ...

灵宝
2015/09/14
131
0
Hadoop数据迁移MaxCompute最佳实践

本文向您详细介绍如何通过使用DataWorks数据同步功能,将Hadoop数据迁移到阿里云MaxCompute大数据计算服务上。 1. 环境准备 1.1 Hadoop集群搭建 进行数据迁移前,您需要保证自己的Hadoop集群...

付帅
2018/09/10
0
0
大数据hadoop是什么?初学者如何进行系统学习?

大数据的火爆程度在不断的增加,似乎一个行业不和大数据相对接就会显得很“LOW”。大数据行业的薪资水平越来越高,决定了更多的人纷纷学习大数据,hadoop作为大数据的一个核心自然就是学习的...

hainiubuluo
2018/05/25
0
0
十八款Hadoop工具帮你驯服大数据

Hadoop已经通过自身的蓬勃发展证明,它不仅仅是一套用于将工作内容传播到计算机群组当中的小型堆栈--不,这与它的潜能相比简直微不足道。这套核心的价值已经被广泛证实,目前大量项目如雨后春...

openthings
2016/01/05
323
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
今天
224
4
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
10
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
6
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部