Hadoop大数据平台数据迁移方案(跨集群)

本文介绍了三种在不同大数据平台间迁移数据的方法:HQL和Linux原生命令、Hive外表远程引用以及使用HadoopDistcp。重点强调了网络互通、数据格式和服务器活跃模式的要求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

准备大数据平台迁移工作

 由于公司项目业务需求,需要将两个项目的大数据平台进行迁移,业务数据进行跨平台平移。
 

前提(大数据平台之间网络互通)

第一种方案(HQL和Linux原生远程Shell命令拷贝)

①将Hive数据通过MR写到其他Linux文件夹中:

hive> insert overwrite local directory '/usr/test' select * from test;
上述是通过MR任务计算!

②    通过Linux原生SCP拷贝
将本机文件复制到远程服务器上

scp /home/test/* root@192.168.1.1:/usr/local

/user/test/              本地文件的绝对路径
new.txt                  要复制到服务器上的本地文件
root                     通过root用户登录到远程服务器(也可以使用其他拥有同等权限的用户)
192.168.1.1              远程服务器的ip地址(也可以使用域名或机器名)
/usr/local               将本地文件复制到位于远程服务器上的路径(提供指定文件地址)

第二种方案 Hive外表远程引用(远程指向)

[服务器2]创建Hive外表,其中外表的(location)地址远程指向迁移地址[服务器1]数据的(location)地址,
在我们的Hive中创建Hive外部引用表,将引用路径指向需要迁移的服务器地址 

注意:

[保证数据必须TextFile文件格式(Orc等压缩文件格无用),可以将压缩表数据插入非压缩表中insert ****** select ******]

第一步:拷贝服务器2host地址,粘贴在本地Host 做好映射
第一步:创建External外表
CREATE External TABLE TEST(
id String,
id1 String,
id2 String
)location 'hdfs://bigdata/test/data';bigdata 为IP地址别名  必须为主节点
/test/data   数据存储地址

注意:

访问IP:50070端口 查看是否是主节点! 如果是备用节点就不支持,切记要切换

在本地建表,直接查询,即可查询远端数据
通过insert into My_test  Select * from test;
将远端数据插入到本地! 在我们测试环境,亲测方案可行
方案要求:远程指向的IP必须为active模式,IP地址,端口都可以进行连接, 拥有权限,对两服务器之间网络要求高!

第三种方案:使用Hadoop集群叫远程拷贝Distcp命令

Distcp最常用于在集群之间的拷贝:

实例:

hadoop distcp hdfs://nn1:8020/source hdfs://nn2:8020/destination

注意:

nn1:(服务器1活跃NM节点的IP)

nn2:(服务器2活跃NM节点的IP)

上述命令会把nn1集群的/source目录下的所有文件或目录展开并存储到一个临时文件中,这些文件内容的拷贝工作被分配给多个map任务,
然后每个NodeManager分别执行从nn1到nn2的拷贝操作。【拷贝到的服务器不需要创建文件夹】
注意:DistCp使用绝对路径进行操作。
命令行中还可以指定多个源目录:

hadoop distcp hdfs://nn1:8020/source/a hdfs://nn1:8020/source/b hdfs://nn2:8020/destination方案要求:上述实现基于Hdoop 的MR任务实现,对端口,网络有要求,在本地测试环境亲测方案可行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值