热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在BDR不可用时复制数据

更多精彩,请点击上方蓝字关注我们!1实验环境介绍Kerberos集群与非Kerbero

更多精彩,请点击上方蓝字关注我们!

1 实验环境介绍


  • Kerberos集群与非Kerberos集群已搭建完成,并正常运行

  • 两个集群都安装了HttpFS服务

2 CDH的BDR功能验证

  • 分别在两个集群进行BDR配置



    • 在CM主页点击“备份”->“同行”,进入配置界面



    • 点击“Add Peer”添加集群信息



    • 分别在两个集群进行同行集群配置,以下为配置步骤。

  • PeerName:定义一个同行集群的名称

  • PeerURL:同行集群CM访问地址

  • PeerAdmin Username:同行集群的管理员账号

  • PeerAdmin Password:同行集群的管理密码

  • 点击添加,查看状态是否为“已连接”



3 在非Kerberos集群测试BDR

  • 在CM主页点击“备份”->“复制计划”



  • 创建一个HDFS复制计划



  • 点击保存,提示如下错误



  • 在Kerberos集群测试BDR

    • 创建一个HDFS复制计划



    • 点击保存,提示如下错误



  • 通过如上操作得出,CDH的BDR功能不支持安全集群与非安全集群之间的数据复制;

4 Hadoop的DistCp集群间数据复制

源集群(Source):指要迁移和复制数据的集群
目标集群(Destination):指存储迁移数据的集群

  • 集群间数据迁移的要求和限制

    • 运行DistCp命令的集群必须启动MapReduce服务(MRV1或YARN(MRV2)),因为DictCp命令运行的是MapReduce作业。

    • 运行DistCp命令的集群中所有的MapReduce节点与源集群所有节点的网络是通的。

    • 在Kerberos集群与非Kerberos集群之间复制数据,必须在Kerberos集群上执行DistCp命令

  • 集群之间数据复制方式

    • 如果源是非Kerberos环境,目标是Kerberos环境,则在目标集群运行命令,对源集群使用WebHDFS,目标集群使用HDFS或者WebHDFS协议。

    • 如果源是Kerberos环境,目标是非Kerberos环境,则在源集群运行命令,对源集群使用HDFS或者WebHDFS,目标集群使用WebHDFS协议。

5 Distcp使用

以下操作均在Kerberos集群上执行

5.1 非Kerberos到Kerberos集群数据复制

  • 非Kerberos集群为源集群,Kerberos集群为目标集群。

  • 以下操作是将源集群/data目录的数据复制到目标集群的/sourcedata目录

  • 查看源集群/data目录

[root@ip-172-31-6-148 ~]# hadoop fs -ls data
Found 2 items
drwxr-xr-x - root supergroup 0 2017-08-31 14:19 data/cdh-shell
-rw-r--r-- 3 root supergroup 5279500 2017-08-31 14:11 data/kudu.tar.gz
[root@ip-172-31-6-148 ~]# hadoop fs -ls data/cdh-shell
Found 9 items
-rw-r--r-- 3 root supergroup 60 2017-08-31 14:19 data/cdh-shell/README.md
-rw-r--r-- 3 root supergroup 125 2017-08-31 14:19 data/cdh-shell/a.sh
-rw-r--r-- 3 root supergroup 5470 2017-08-31 14:19 data/cdh-shell/autouninstall.sh
-rw-r--r-- 3 root supergroup 145 2017-08-31 14:19 data/cdh-shell/b.sh
-rw-r--r-- 3 root supergroup 498 2017-08-31 14:19 data/cdh-shell/components.list
-rw-r--r-- 3 root supergroup 2438 2017-08-31 14:19 data/cdh-shell/delete.list
-rw-r--r-- 3 root supergroup 52 2017-08-31 14:19 data/cdh-shell/node.list
-rw-r--r-- 3 root supergroup 1809 2017-08-31 14:19 data/cdh-shell/ntp.conf
-rw-r--r-- 3 root supergroup 125 2017-08-31 14:19 data/cdh-shell/user.list
[root@ip-172-31-6-148 ~]#

  • 目标集群的数据目录

[ec2-user@ip-172-31-8-141 ~]$ hadoop fs -ls
Found 9 items
drwxrwxrwx - root supergroup 0 2017-08-27 10:27 HiBench
drwxrwxrwx - user_r supergroup 0 2017-08-21 11:23 benchmarks
drwxr-xr-x - hive supergroup 0 2017-08-30 03:58 data
drwxrwxrwx - user_r supergroup 0 2017-08-23 03:23 fayson
drwx------ - hbase hbase 0 2017-08-31 09:56 hbase
drwxrwxrwx - solr solr 0 2017-08-17 14:09 solr
drwxrwxrwt - hdfs supergroup 0 2017-08-31 06:18 tmp
drwxrwxrwx - hive supergroup 0 2017-08-24 12:28 udfjar
drwxrwxrwx - hdfs supergroup 0 2017-08-30 03:48 user
[ec2-user@ip-172-31-8-141 ~]$

在Kerberos集群命令行进行Kerberos用户初始化

[ec2-user@ip-172-31-8-141~]$ kinit user_r
Password for user_r@CLOUDERA.COM:
[ec2-user@ip-172-31-8-141 ~]$ klist
Ticket cache: FILE:/tmp/krb5cc_500
Default principal: user_r@CLOUDERA.COM

Valid starting Expires Service principal
08/31/17 10:03:41 09/01/17 10:03:41 krbtgt/CLOUDERA.COM@CLOUDERA.COM
renew until 09/07/17 10:03:41
[ec2-user@ip-172-31-8-141 ~]$

  • 执行如下操作进行数据拷贝(目标HDFS方式)

    • 源集群使用WebHDFS和目标集群使用HDFS协议进行数据拷贝

[ec2-user@ip-172-31-8-141 ~]$ hadoop distcp webhdfs://ip-172-31-6-148:14000/data/ hdfs://172.31.8.141:8020/sourcedata
...
17/08/31 10:23:58 INFO tools.DistCp: DistCp job-id: job_1504187767743_0002
17/08/31 10:23:58 INFO mapreduce.Job: Running job: job_1504187767743_0002
17/08/31 10:24:10 INFO mapreduce.Job: Job job_1504187767743_0002 running in uber mode : false
17/08/31 10:24:10 INFO mapreduce.Job: map 0% reduce 0%
17/08/31 10:24:27 INFO mapreduce.Job: map 33% reduce 0%
17/08/31 10:24:28 INFO mapreduce.Job: map 100% reduce 0%
17/08/31 10:24:28 INFO mapreduce.Job: Job job_1504187767743_0002 completed successfully
...
[ec2-user@ip-172-31-8-141 ~]$

  • Yarn作业运行界面

  • 任务运行完成,检查数据是否与源集群数据一致

[ec2-user@ip-172-31-8-141 ~]$ hadoop fs -ls sourcedata
Found 2 items
drwxr-xr-x - user_r supergroup 0 2017-08-31 10:24 sourcedata/cdh-shell
-rw-r--r-- 3 user_r supergroup 5279500 2017-08-31 10:24 sourcedata/kudu.tar.gz
[ec2-user@ip-172-31-8-141 ~]$
[ec2-user@ip-172-31-8-141 ~]$ hadoop fs -ls sourcedata/cdh-shell
Found 9 items
-rw-r--r-- 3 user_r supergroup 60 2017-08-31 10:24 sourcedata/cdh-shell/README.md
-rw-r--r-- 3 user_r supergroup 125 2017-08-31 10:24 sourcedata/cdh-shell/a.sh
-rw-r--r-- 3 user_r supergroup 5470 2017-08-31 10:24 sourcedata/cdh-shell/autouninstall.sh
-rw-r--r-- 3 user_r supergroup 145 2017-08-31 10:24 sourcedata/cdh-shell/b.sh
-rw-r--r-- 3 user_r supergroup 498 2017-08-31 10:24 sourcedata/cdh-shell/components.list
-rw-r--r-- 3 user_r supergroup 2438 2017-08-31 10:24 sourcedata/cdh-shell/delete.list
-rw-r--r-- 3 user_r supergroup 52 2017-08-31 10:24 sourcedata/cdh-shell/node.list
-rw-r--r-- 3 user_r supergroup 1809 2017-08-31 10:24 sourcedata/cdh-shell/ntp.conf
-rw-r--r-- 3 user_r supergroup 125 2017-08-31 10:24 sourcedata/cdh-shell/user.list
[ec2-user@ip-172-31-8-141 ~]$

  • 源集群与目标集群数据一致。

  • 执行数据拷贝命令(目标WebHDFS方式)

    • 源集群使用WebHDFS和目标集群使用WebHDFS协议进行数据拷贝,删除目标集群hdfs的/sourcedata目录

[ec2-user@ip-172-31-8-141 ~]$ hadoop distcp webhdfs://ip-172-31-6-148:14000/data/ webhdfs://ip-172-31-9-186:14000/sourcedata
...
17/08/31 10:37:11 INFO mapreduce.Job: The url to track the job: http://ip-172-31-9-186.ap-southeast-1.compute.internal:8088/proxy/application_1504187767743_0003/
17/08/31 10:37:11 INFO tools.DistCp: DistCp job-id: job_1504187767743_0003
17/08/31 10:37:11 INFO mapreduce.Job: Running job: job_1504187767743_0003
17/08/31 10:37:22 INFO mapreduce.Job: Job job_1504187767743_0003 running in uber mode : false
17/08/31 10:37:22 INFO mapreduce.Job: map 0% reduce 0%
17/08/31 10:37:31 INFO mapreduce.Job: map 33% reduce 0%
17/08/31 10:37:33 INFO mapreduce.Job: map 100% reduce 0%
17/08/31 10:37:33 INFO mapreduce.Job: Job job_1504187767743_0003 completed successfully
...
[ec2-user@ip-172-31-8-141 ~]$

  • Yarn任务界面

  • 任务运行完成,检查数据是否与源集群数据一致

[ec2-user@ip-172-31-8-141 ~]$ hadoop fs -ls sourcedata
Found 2 items
drwxr-xr-x - user_r supergroup 0 2017-08-31 10:37 sourcedata/cdh-shell
-rw-r--r-- 3 user_r supergroup 5279500 2017-08-31 10:37 sourcedata/kudu.tar.gz
[ec2-user@ip-172-31-8-141 ~]$ hadoop fs -ls sourcedata/cdh-shell
Found 9 items
-rw-r--r-- 3 user_r supergroup 60 2017-08-31 10:37 sourcedata/cdh-shell/README.md
-rw-r--r-- 3 user_r supergroup 125 2017-08-31 10:37 sourcedata/cdh-shell/a.sh
-rw-r--r-- 3 user_r supergroup 5470 2017-08-31 10:37 sourcedata/cdh-shell/autouninstall.sh
-rw-r--r-- 3 user_r supergroup 145 2017-08-31 10:37 sourcedata/cdh-shell/b.sh
-rw-r--r-- 3 user_r supergroup 498 2017-08-31 10:37 sourcedata/cdh-shell/components.list
-rw-r--r-- 3 user_r supergroup 2438 2017-08-31 10:37 sourcedata/cdh-shell/delete.list
-rw-r--r-- 3 user_r supergroup 52 2017-08-31 10:37 sourcedata/cdh-shell/node.list
-rw-r--r-- 3 user_r supergroup 1809 2017-08-31 10:37 sourcedata/cdh-shell/ntp.conf
-rw-r--r-- 3 user_r supergroup 125 2017-08-31 10:37 sourcedata/cdh-shell/user.list
[ec2-user@ip-172-31-8-141 ~]$

5.2 Kerberos到非Kerberos集群数据复制

  • Kerberos集群为源集群,非Kerberos集群为目标集群。

  • 以下操作是将源集群的/sourcedata目录下的数据复制到目标集群的/data目录下。

  • 查看源集群/sourcedata目录

[ec2-user@ip-172-31-8-141 ~]$ hadoop fs -ls sourcedata
Found 2 items
drwxr-xr-x - user_r supergroup 0 2017-08-31 10:37 sourcedata/cdh-shell
-rw-r--r-- 3 user_r supergroup 5279500 2017-08-31 10:37 sourcedata/kudu.tar.gz
[ec2-user@ip-172-31-8-141 ~]$ hadoop fs -ls sourcedata/cdh-shell
Found 9 items
-rw-r--r-- 3 user_r supergroup 60 2017-08-31 10:37 sourcedata/cdh-shell/README.md
-rw-r--r-- 3 user_r supergroup 125 2017-08-31 10:37 sourcedata/cdh-shell/a.sh
-rw-r--r-- 3 user_r supergroup 5470 2017-08-31 10:37 sourcedata/cdh-shell/autouninstall.sh
-rw-r--r-- 3 user_r supergroup 145 2017-08-31 10:37 sourcedata/cdh-shell/b.sh
-rw-r--r-- 3 user_r supergroup 498 2017-08-31 10:37 sourcedata/cdh-shell/components.list
-rw-r--r-- 3 user_r supergroup 2438 2017-08-31 10:37 sourcedata/cdh-shell/delete.list
-rw-r--r-- 3 user_r supergroup 52 2017-08-31 10:37 sourcedata/cdh-shell/node.list
-rw-r--r-- 3 user_r supergroup 1809 2017-08-31 10:37 sourcedata/cdh-shell/ntp.conf
-rw-r--r-- 3 user_r supergroup 125 2017-08-31 10:37 sourcedata/cdh-shell/user.list
[ec2-user@ip-172-31-8-141 ~]$

  • 目标集群的HDFS目录

[root@ip-172-31-6-148 ~]# hadoop fs -ls
Found 2 items
drwxrwxrwt - hdfs supergroup 0 2017-08-30 15:36 tmp
drwxrwxrwx - hdfs supergroup 0 2017-08-31 09:08 user
[root@ip-172-31-6-148 ~]#

  • 在源集群命令行进行Kerberos用户初始化

[root@ip-172-31-6-148 ~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: user_r@CLOUDERA.COM

Valid starting Expires Service principal
08/31/17 09:22:26 09/01/17 09:22:24 krbtgt/CLOUDERA.COM@CLOUDERA.COM
renew until 09/07/17 09:22:24
[root@ip-172-31-6-148 ~]#

  • 执行如下操作进行数据拷贝(源HDFS方式)

    • 目标集群使用使用WebHDFS和源集群使用WebHDFS协议进行数据拷贝

[ec2-user@ip-172-31-8-141 ~]$ hadoop distcp hdfs://ip-172-31-8-141:8020/sourcedata/ webhdfs://ip-172-31-6-148:14000/data
...
17/08/31 10:50:26 INFO tools.DistCp: DistCp job-id: job_1504187767743_0004
17/08/31 10:50:26 INFO mapreduce.Job: Running job: job_1504187767743_0004
17/08/31 10:50:36 INFO mapreduce.Job: Job job_1504187767743_0004 running in uber mode : false
17/08/31 10:50:36 INFO mapreduce.Job: map 0% reduce 0%
17/08/31 10:50:45 INFO mapreduce.Job: map 33% reduce 0%
17/08/31 10:50:46 INFO mapreduce.Job: map 100% reduce 0%
17/08/31 10:50:47 INFO mapreduce.Job: Job job_1504187767743_0004 completed successfully
...
[ec2-user@ip-172-31-8-141 ~]$

  • Yarn作业查看

  • 任务运行成功,检查数据复制是否完整

[root@ip-172-31-6-148 ~]# hadoop fs -ls /data
Found 2 items
drwxr-xr-x - user_r supergroup 0 2017-08-31 14:50 /data/cdh-shell
-rw-r--r-- 3 user_r supergroup 5279500 2017-08-31 14:50 /data/kudu.tar.gz
[root@ip-172-31-6-148 ~]# hadoop fs -ls /data/cdh-shell
Found 9 items
-rw-r--r-- 3 user_r supergroup 60 2017-08-31 14:50 /data/cdh-shell/README.md
-rw-r--r-- 3 user_r supergroup 125 2017-08-31 14:50 /data/cdh-shell/a.sh
-rw-r--r-- 3 user_r supergroup 5470 2017-08-31 14:50 /data/cdh-shell/autouninstall.sh
-rw-r--r-- 3 user_r supergroup 145 2017-08-31 14:50 /data/cdh-shell/b.sh
-rw-r--r-- 3 user_r supergroup 498 2017-08-31 14:50 /data/cdh-shell/components.list
-rw-r--r-- 3 user_r supergroup 2438 2017-08-31 14:50 /data/cdh-shell/delete.list
-rw-r--r-- 3 user_r supergroup 52 2017-08-31 14:50 /data/cdh-shell/node.list
-rw-r--r-- 3 user_r supergroup 1809 2017-08-31 14:50 /data/cdh-shell/ntp.conf
-rw-r--r-- 3 user_r supergroup 125 2017-08-31 14:50 /data/cdh-shell/user.list
[root@ip-172-31-6-148 ~]#

  • 目标集群的数据与源集群的数据一致。

  • 执行如下操作进行数据拷贝(源WebHDFS方式)

[ec2-user@ip-172-31-8-141 ~]$ hadoop distcp webhdfs://ip-172-31-9-186:14000/sourcedata/ webhdfs://ip-172-31-6-148:14000/data
...
17/08/31 10:58:09 INFO tools.DistCp: DistCp job-id: job_1504187767743_0005
17/08/31 10:58:09 INFO mapreduce.Job: Running job: job_1504187767743_0005
17/08/31 10:58:20 INFO mapreduce.Job: Job job_1504187767743_0005 running in uber mode : false
17/08/31 10:58:20 INFO mapreduce.Job: map 0% reduce 0%
17/08/31 10:58:36 INFO mapreduce.Job: map 67% reduce 0%
17/08/31 10:58:37 INFO mapreduce.Job: map 100% reduce 0%
17/08/31 10:58:37 INFO mapreduce.Job: Job job_1504187767743_0005 completed successfully
...
[ec2-user@ip-172-31-8-141 ~]$

  • Yarn任务界面

  • 任务运行成功,检查数据是否完成

[root@ip-172-31-6-148 ~]# hadoop fs -ls /data
Found 2 items
drwxr-xr-x - user_r supergroup 0 2017-08-31 14:58 /data/cdh-shell
-rw-r--r-- 3 user_r supergroup 5279500 2017-08-31 14:58 /data/kudu.tar.gz
[root@ip-172-31-6-148 ~]# hadoop fs -ls /data/cdh-shell
Found 9 items
-rw-r--r-- 3 user_r supergroup 60 2017-08-31 14:58 /data/cdh-shell/README.md
-rw-r--r-- 3 user_r supergroup 125 2017-08-31 14:58 /data/cdh-shell/a.sh
-rw-r--r-- 3 user_r supergroup 5470 2017-08-31 14:58 /data/cdh-shell/autouninstall.sh
-rw-r--r-- 3 user_r supergroup 145 2017-08-31 14:58 /data/cdh-shell/b.sh
-rw-r--r-- 3 user_r supergroup 498 2017-08-31 14:58 /data/cdh-shell/components.list
-rw-r--r-- 3 user_r supergroup 2438 2017-08-31 14:58 /data/cdh-shell/delete.list
-rw-r--r-- 3 user_r supergroup 52 2017-08-31 14:58 /data/cdh-shell/node.list
-rw-r--r-- 3 user_r supergroup 1809 2017-08-31 14:58 /data/cdh-shell/ntp.conf
-rw-r--r-- 3 user_r supergroup 125 2017-08-31 14:58 /data/cdh-shell/user.list
[root@ip-172-31-6-148 ~]#

6 总结

  • 在进行DistCp时,如果目标集群的目录不存在会自动创建。

    • 需要注意:目标集群的目录已存在与不存在的拷贝区别

    • sourcedata目录存在的情况下,DistCp命令运行完成后,将源集群的data目录复制到目标集群的sourcedata目录下,查看sourcedata目录显示如下:

[ec2-user@ip-172-31-8-141 ~]$ hadoop fs -ls /sourcedata
Found 1 items
drwxr-xr-x - user_r supergroup 0 2017-08-31 11:19 /sourcedata/data
[ec2-user@ip-172-31-8-141 ~]$ hadoop fs -ls /sourcedata/data
Found 2 items
drwxr-xr-x - user_r supergroup 0 2017-08-31 11:19 /sourcedata/data/cdh-shell
-rw-r--r-- 3 user_r supergroup 5279500 2017-08-31 11:19 /sourcedata/data/kudu.tar.gz
[ec2-user@ip-172-31-8-141 ~]$

  • sourcedata目录不存在的情况下,DistCp命令运行完成后,只是将源集群data目录下的文件复制到目标集群的sourcedata目录下(data子目录并没有复制),查看sourcedata目录显示如下:

[ec2-user@ip-172-31-8-141 ~]$ hadoop dfs -ls /sourcedata
Found 2 items
drwxr-xr-x - user_r supergroup 0 2017-08-31 11:16 /sourcedata/cdh-shell
-rw-r--r-- 3 user_r supergroup 5279500 2017-08-31 11:16 /sourcedata/kudu.tar.gz
[ec2-user@ip-172-31-8-141 ~]$

关注公众号:领取精彩视频课程&海量免费语音课程






推荐阅读
author-avatar
赵以书的话_256
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有