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集群distcpcdh集群数据同步到cdp集群-distcp_第1张图片hadoop集群传输(kerberos、非kerberos、kerberos与非kerbers)_大D饲养员的博客-CSDN博客_kerberos集群distcp

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

这篇属于干货。。

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

正题:

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

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

cdh集群数据同步到cdp集群-distcp_第2张图片

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

cdh集群数据同步到cdp集群-distcp_第3张图片

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

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

先复制一个表。

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

cdh集群数据同步到cdp集群-distcp_第4张图片

 cdp上的hdfs目录为空

 cdh上的hdfs目录

多次试验...执行命令

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

成功 

cdh集群数据同步到cdp集群-distcp_第5张图片

 进入cdp查看表

cdh集群数据同步到cdp集群-distcp_第6张图片

 接着需要复制库

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。

cdh集群数据同步到cdp集群-distcp_第7张图片

 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上

cdh集群数据同步到cdp集群-distcp_第8张图片

cdp上

 cdh集群数据同步到cdp集群-distcp_第9张图片

注意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集群数据同步到cdp集群-distcp_第10张图片

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

cdh集群数据同步到cdp集群-distcp_第11张图片

 

 

 官网示例cdh集群数据同步到cdp集群-distcp_第12张图片

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

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
cdh集群数据同步到cdp集群-distcp_第13张图片

复制了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

cdh集群数据同步到cdp集群-distcp_第14张图片

复制了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

cdh集群数据同步到cdp集群-distcp_第15张图片

复制了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

cdh集群数据同步到cdp集群-distcp_第16张图片

6.-overwrite -delete

有点懒了... 不研究了

cdh集群数据同步到cdp集群-distcp_第17张图片

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

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

 

你可能感兴趣的:(hadoop,hadoop,distcp)