博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hadoop集群迁移记录(主要针对Impala)
阅读量:5347 次
发布时间:2019-06-15

本文共 1455 字,大约阅读时间需要 4 分钟。

前言

hadoop集群(应该说hadoop生态系统,现在spark、storm、kafka这些都包含在一起)迁移是很很多公司都很难避免的一个场景,个人理解,集群迁移主要分三方面:集群环境搭建、数据迁移、服务迁移。

新集群的搭建,不管是CDH或者是APACHE的版本,已经属于基本功范畴。

服务迁移又和具体的公司业务十分相关,这点应该是最麻烦的一点,需要和各个负责人确认。

数据迁移也是比较重要的一环,一般和数据比较相关的组件包括但不限于:hdfs、hbase、impala/hive、zookeeper、kafka。

下面将主要考虑impala的迁移,impala的迁移和hdfs最相关,因此两者在一起介绍。

迁移介绍

迁移场景

1.hadoop新老集群之间的迁移,由资源紧张或者配置较低的老集群向新集群迁移。

2.迁移需要数天或者数周才能完成。(需要测试新集群的稳定性,以及业务是否能正常运行)

3.本文暂不考虑各种应用以及服务,只考虑hdfs和impala的数据迁移。

迁移方案

impala集群迁移主要有两部分内容:

1.hdfs中的数据

2.impala中所有表和分区

全量迁移

在某一个时间点将现有的数据统一迁移一次,该阶段主要包括:

1.hdfs数据迁移

2.impala数据库、数据表、分区的建立

增量迁移

在进行全量迁移到新老集群完全迁移完成之前,定时进行增量迁移,可以考虑以一天为单位。

1.hdfs数据的增量迁移,相应目录的增量迁移。

2.impala分区增量添加。

HDFS迁移

hive和impala大都会在hdfs上建外部表,因此需要先迁移hdfs相应数据。

hdfs的迁移主要使用distcp,写起来很简单啦,该命令在新老集群上都可以执行,具体的使用方式,看看官方文档就OK。

注意

1.记得新建根目录。
2.在进行hdfs数据迁移的时候, 最好先进行时间的估算,根据集群的带宽情况估算一下迁移的总时间(大致的数量级)。然后尽量避免集群使用的高峰期来迁移。

IMPALA迁移

准备工作

外部表的数据文件

在hdfs迁移完成后相应的目录应该已经存在了,如果没有存在,执行impala建表语句时会报没有写权限的错误。

老集群impala信息

1.所有的impala数据库:直接使用show databases;

2.所有的数据库建表语句(后两者我写了程序统一抓取)
3.所有表的分区(在程序中拼接成相应的添加分区的语句)

附github地址:

程序里面的一些参数需要修改:impala地址,生成sql的路径。

补充

关键字字段

show create table name的时候,不会自动加

建表的时候有些字段需要加,比如date,需要改为date

增量更新

增量更新的时候考虑新建impala分区

跳过sql错误

执行脚本的时候跳过sql错误,继续执行。

impala-shell -c -f jiaoben.sql

日志

建议执行的操作,将日志写入文件,方便查找哪些操作失败。

错误

权限错误

org.apache.hadoop.security.AccessControlException Permission denied:user=impala

impala建表的时候,这个错误很大程度上是在建表的时候location中的地址,在hdfs中不存在引起的。

文章来源:

转载于:https://www.cnblogs.com/dantezhao/p/5365142.html

你可能感兴趣的文章
【算法】—— 随机音乐的播放算法
查看>>
mysql asyn 示例
查看>>
DataGrid 点击 获取 行 ID
查看>>
git 使用
查看>>
边框圆角方法
查看>>
asp.net WebApi自定义权限验证消息返回
查看>>
php中eval函数的危害与正确禁用方法
查看>>
20172315 2017-2018-2 《程序设计与数据结构》第十一周学习总结
查看>>
MySQL添加、修改、撤销用户数据库操作权限的一些记录
查看>>
关于谷歌浏览器Chrome正在处理请求的问题解决
查看>>
Git核心技术:在Ubuntu下部署Gitolite服务端
查看>>
平面波展开法总结
查看>>
建造者模式
查看>>
ArraySort--冒泡排序、选择排序、插入排序工具类demo
查看>>
composer 安装laravel
查看>>
8-EasyNetQ之Send & Receive
查看>>
Android反编译教程
查看>>
List<string> 去重复 并且出现次数最多的排前面
查看>>
js日志管理-log4javascript学习小结
查看>>
Android之布局androidmanifest.xml 资源清单 概述
查看>>