Hive跨集群数据迁移过程

文章目录

环境

  • Hive集群A
  • Hive集群B
  • 跳转机一台

数据迁移需求

本次迁移数据100G,15亿条,数据流转方向从集群A经过跳转机到集群B,通过HDFS拉取和重新建表导入的方式完成数据库迁移。

迁移过程记录

- 当前操作在集群A

  1. 通过执行desc formatted,查看并记录数据库的:①存储位置,②文件存储压缩格式,③表字段;
  2. 对迁移的数据库执行count(*)操作,记录数据量,整体把握,最后做校验;

- 当前操作在跳转机

  1. 获取1.②位置之后,通过hdfs hds -du -h命令检查原始表数据在HDFS中的存储大小,确认是否能拉取到跳转机;
  2. 执行df -h检查跳转机可用存储空间,执行hdfs dfs -get命令,将存储的数据库源文件从集群A的HDFS拉取到跳转机本地;
  3. 执行ls | wc -l命令,检查拉取的数据库源文件数量,此步骤操作是为了校验文件数量;
  4. 如果不是压缩存储的文件,比如CSV,请执行head命令,查看源文件首行是否包含表字段,如果包含表字段,需要在建表时添加TBLPROPERTIES ('skip.header.line.count'='1');
  5. 执行hdfs dfs -put命令,将数据库源文件上传至集群B的HDFS,并执行hdfs hds -du -h检查存储大小是否一致,请提前mkdir准备好存储目录;

- 当前操作在集群B

  1. 根据1.③编辑建表语句并执行,根据压缩存储格式的不同,MapReduce在执行时的输入输出结果也不同;
不指定格式
InputFormat org.apache.hadoop.hive.ql.io.RCFileInputFormat
OutputFormat org.apache.hadoop.hive.ql.io.RCFileOutputFormat
指定TEXTFILE格式
InputFormat org.apache.hadoop.mapred.TextInputFormat
OutputFormat org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat

本次迁移方案数据源文件为.snappy.parquet压缩存储格式,新建的表为TEXTFILE格式,指定了分隔符为,;

  1. 通过beeline执行LOAD DATA INPATH 'hdfs location' into table table_name命令,将HDFS中的数据源文件导入Hive表,至此完成迁移;
  2. 若对存储格式在后续有新的需求,可以在完成导入后,通过创建新的附带存储格式的表,再执行insert overwrite table table_name_new select * from table_name_old;命令,完成Hive存储格式的转换;
  3. 对于数据完整性、一致性的考虑:可以在完成后再次执行count(*),校验数据量,此方法是为了避免出现因格式不同,忽略CSV首行字段问题,或者建表语句错误,剔除了有效数据导致数据缺失的危险行为。
相关推荐
王小王-1235 小时前
基于Hadoop的京东厨具商品数据分析及商品价格预测系统的设计与实现
hadoop·数据分析·京东厨具·厨具分析·商品分析
谷新龙0017 小时前
大数据环境搭建指南:基于 Docker 构建 Hadoop、Hive、HBase 等服务
大数据·hadoop·docker
百度Geek说10 小时前
搜索数据建设系列之数据架构重构
数据仓库·重构·架构·spark·dubbo
爱吃面的猫12 小时前
大数据Hadoop之——Hbase下载安装部署
大数据·hadoop·hbase
王小王-12314 小时前
基于Hadoop的餐饮大数据分析系统的设计与实现
hive·hadoop·flask·sqoop·pyecharts·hadoop餐饮大数据分析·hadoop美食数据分析
大数据CLUB18 小时前
基于spark的航班价格分析预测及可视化
大数据·hadoop·分布式·数据分析·spark·数据可视化
A5资源网10 天前
为WordPress 网站创建一个纯文本网站地图(Sitemap)
前端·数据仓库·html·php
大数据CLUB10 天前
基于pyspark的北京历史天气数据分析及可视化_离线
大数据·hadoop·数据挖掘·数据分析·spark
Cachel wood11 天前
Spark教程1:Spark基础介绍
大数据·数据库·数据仓库·分布式·计算机网络·spark
張萠飛11 天前
hive集群优化和治理常见的问题答案
数据仓库·hive·hadoop