cdh集群数据同步到cdp集群-distcp

照例先上官网地址

 

https://hadoop.apache.org/docs/r3.2.2/hadoop-distcp/DistCp.htmlz

再上百度地址

hadoop之 distcp(分布式拷贝) - 张冲andy - 博客园

遇到的问题

hadoop集群传输(kerberos、非kerberos、kerberos与非kerbers)_大D饲养员的博客-CSDN博客_kerberos集群distcphadoop集群传输(kerberos、非kerberos、kerberos与非kerbers)_大D饲养员的博客-CSDN博客_kerberos集群distcp

 上面都是学习的属于有没有都可以的 

这篇属于干货。。

配置两个Hadoop集群Kerberos认证跨域互信 - XIAO的博客 - 博客园

正题:

目前CDH集群都kerberos认证,然后又搭建了一套CDP集群,同时也认证了kerberos。

那么需要我在cdh集群上能够访问cdp集群。运维根据上篇文章直接配好了。。

 注意事项如果cdp集群开启了ha,hdfs dfs -ls / 只能访问活动点

 如图上述在cdh的集群上已经能够访问cdp的了。

开始distcp之旅 复制cdh的hive数据到 cdp上。

先复制一个表。

cdh上已经有odsiadata.label_dict表了, 我先在cdp上建表

 cdp上的hdfs目录为空

 cdh上的hdfs目录

多次试验...执行命令

hadoop distcp /user/hive/warehouse/odsiadata.db/label_dict/ hdfs://cdp-node02:8020/user/hive/warehouse/odsiadata.db/

成功 

 进入cdp查看表

 接着需要复制库

hadoop distcp /user/hive/warehouse/odsiadata.db/ hdfs://cdp-node02:8020/user/hive/warehouse/

覆盖和更新

对于单个文件

hadoop distcp /user/devuser/distcp/cc.txt hdfs://cdp-node02:8020/user/hive/warehouse/distcp/

将cc.txt 从cdh复制到cdp后

然后修改cc.txt再上传到cdh。

 hadoop distcp /user/devuser/distcp/cc.txt hdfs://cdp-node02:8020/user/hive/warehouse/distcp/

 发现默认是不覆盖的 hadoop distcp --help

-append         Reuse existing data in target files and append new data to them if possible
-delete           Delete from target, files missing in source
-overwrite      Choose to overwrite target files
 -update        Update target, copying only missing files or directories
主要是这几种再加一种啥参数不加的。

cdh上

cdp上

 

注意cdh的和cdp的10 20  内容不一样 

cdp

  hdfs dfs -put 1  /user/hive/warehouse/distcp/overwrite
  hdfs dfs -put 10 /user/hive/warehouse/distcp/overwrite
  hdfs dfs -put 20 /user/hive/warehouse/distcp/overwrite
  hdfs dfs -put 1  /user/hive/warehouse/distcp/update
  hdfs dfs -put 10 /user/hive/warehouse/distcp/update
  hdfs dfs -put 20 /user/hive/warehouse/distcp/update
  hdfs dfs -put 1  /user/hive/warehouse/distcp/append
  hdfs dfs -put 10 /user/hive/warehouse/distcp/append
  hdfs dfs -put 20 /user/hive/warehouse/distcp/append
  hdfs dfs -put 1  /user/hive/warehouse/distcp/delete
  hdfs dfs -put 10 /user/hive/warehouse/distcp/delete
  hdfs dfs -put 20 /user/hive/warehouse/distcp/delete
  hdfs dfs -put 1  /user/hive/warehouse/distcp/
  hdfs dfs -put 10 /user/hive/warehouse/distcp/
  hdfs dfs -put 20 /user/hive/warehouse/distcp/

cdh 

  hdfs dfs -put 1  /user/devuser/distcp/first
  hdfs dfs -put 2   /user/devuser/distcp/first
  hdfs dfs -put 10 /user/devuser/distcp/second
  hdfs dfs -put 20 /user/devuser/distcp/second

 

 

 官网示例

这里我简直是日了狗,官网说明就不对

hadoop distcp /user/devuser/distcp/first /user/devuser/distcp/second  hdfs://cdp-node02:8020/user/hive/warehouse/distcp
这个就是把first文件夹和second文件给复制过来放到 cdp的/user/hive/warehouse/distcp目录下。

实际上你只想移动文件 1 2 10 20 到cdp的文件夹 命令如下

1. 源生的

hadoop distcp /user/devuser/distcp/first/* /user/devuser/distcp/second/*  hdfs://cdp-node02:8020/user/hive/warehouse/distcp

复制了1个,忽略3个

2.-overwrite

hadoop distcp -overwrite /user/devuser/distcp/first/* /user/devuser/distcp/second/*  hdfs://cdp-node02:8020/user/hive/warehouse/distcp

 

复制了4个。。。

3.-update

 hadoop distcp -update/user/devuser/distcp/first/* /user/devuser/distcp/second/*  hdfs://cdp-node02:8020/user/hive/warehouse/distcp

复制了3个忽略了1个 忽略的那个是1因为两个(内容size)一模一样

4.-update -append

hadoop distcp -update -append /user/devuser/distcp/first/* /user/devuser/distcp/second/*  hdfs://cdp-node02:8020/user/hive/warehouse/distcp/append

复制了3个 忽略了1个 和update一样,区别是 字节copy了15 而update字节copy了20,应该就是10文件cdh里的是1111 1111 而cdp里的是1111 ,update全量更新, -update -append  追加更新。

5 -update -delete

hadoop distcp -update -delete /user/devuser/distcp/first/* /user/devuser/distcp/second/*  hdfs://cdp-node02:8020/user/hive/warehouse/distcp/delete

6.-overwrite -delete

有点懒了... 不研究了

其实我觉得用个overwrite 不管三七二十一 全部覆盖。

或者啥也不加的 只复制没有的就行。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值