如何在Kerberos与非Kerberos的CDH集群BDR不可用时复制数据

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

1.概述

本文档描述了在Kerberos与非Kerberos的CDH集群之间BDR不可用的情况下实现数据互导。文档主要讲述

1.测试集群环境描述

2.CDH的BDR功能验证

3.集群之间数据复制要求和限制

4.集群之间数据复制的方式

5.使用DistCp复制数据注意事项

6.通过DistCp进行数据互导

这篇文档将着重介绍CDH Kerberos集群与非Kerberos集群之间BDR不可用的情况下实现数据互导,并基于以下假设:

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

2.两个集群都安装了HttpFS服务

2.测试集群环境描述

以下是对本次测试环境,但不是本操作手册的硬限制:

源集群(非Kerberos)

目标集群(Kerberos)

http://52.221.181.252:7180/

http://172.31.8.141:7180/

CDH5.12.0

CDH5.11.1

root用户操作

ec2-user用户操作

操作系统CentOS 6.5

操作系统CentOS 6.5

3.CDH的BDR功能验证

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

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

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

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

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

PeerURL:同行集群CM访问地址

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

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

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

3.2在非Kerberos集群测试BDR

  1. 在CM主页点击“备份”->“复制计划”
  1. 创建一个HDFS复制计划

3.点击保存,提示如下错误

3.3在Kerberos集群测试BDR

  1. 创建一个HDFS复制计划

2.点击保存,提示如下错误

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

4.Hadoop的DistCp集群间数据复制

术语说明:

源集群(Source):指要迁移和复制数据的集群

目标集群(Destination):指存储迁移数据的集群

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

  1. 运行DistCp命令的集群必须启动MapReduce服务(MRV1或YARN(MRV2)),因为DictCp命令运行的是MapReduce作业。
  2. 运行DistCp命令的集群中所有的MapReduce节点与源集群所有节点的网络是通的。
  3. 在Kerberos集群与非Kerberos集群之间复制数据,必须在Kerberos集群上执行DistCp命令

4.2集群之间数据复制方式

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

5.Distcp使用

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

5.1非Kerberos到Kerberos集群数据复制

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

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

1.查看源集群/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 ~]# 
  1. 目标集群的数据目录
[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 ~]$ 

3.在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 ~]$

4.执行如下操作进行数据拷贝(目标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 ~]$ 

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

5.执行数据拷贝命令(目标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.2Kerberos到非Kerberos集群数据复制

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

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

1.查看源集群/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 ~]$

2.目标集群的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 ~]# 

3.在源集群命令行进行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 ~]# 

4.执行如下操作进行数据拷贝(源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 ~]# 

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

5.执行如下操作进行数据拷贝(源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 ~]$ 

醉酒鞭名马,少年多浮夸! 岭南浣溪沙,呕吐酒肆下!挚友不肯放,数据玩的花!

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

原文发布于微信公众号 - Hadoop实操(gh_c4c535955d0f)

原文发表时间:2017-09-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏蓝天

Hive 1.2.1&Spark&Sqoop安装指南

本文的安装参照《Hive 0.12.0安装指南》,内容来源于官方的:GettingStarted,将Hive 1.2.1安装在Hadoop 2.7.1上。本...

2441
来自专栏Hadoop实操

如何在Kerberos环境下使用Haproxy实现HiveServer2负载均衡

前面Fayson介绍了《如何使用HAProxy实现HiveServer2负载均衡》,本文主要介绍如何使用HAProxy实现Kerberos环境下HiveServ...

4693
来自专栏Hadoop实操

如何使用Sentry为Solr赋权

1742
来自专栏Hadoop实操

如何在Redhat7.4安装CDH5.15

7073
来自专栏Hadoop实操

如何在Redhat7.3安装CDH5.14

Cloudera在2018年1月26日发布了CDH5.14,新功能介绍可以参考Fayson之前的文章《CDH5.14和CM5.14的新功能》。本文档主要描述如何...

2.1K8
来自专栏Hadoop实操

Hue中使用Oozie创建Ssh工作流时sudo命令执行失败问题分析

在使用Hue创建Ssh的Oozie工作流,在Shell脚本中执行sudo命令失败,异常如下:

4605
来自专栏Hadoop实操

如何在Kerberos下使用Solr

2961
来自专栏Hadoop实操

如何使用Lily HBase Indexer对HBase中的数据在Solr中建立索引

4793
来自专栏Hadoop实操

如何在CDH未启用认证的情况下安装及使用Sentry

CDH平台中的安全,认证(Kerberos/LDAP)是第一步,授权(Sentry)是第二步。如果要启用授权,必须先启用认证。但在CDH平台中给出了一种测试模式...

2.6K8
来自专栏乐沙弥的世界

基于Innobackupex的完全恢复

    对于MySQL的完全恢复,我们可以借助于Innobackupex的多重备份加上binlog来将数据库恢复到故障点。这里的完全恢复是相对于时点恢复(也叫...

1392

扫码关注云+社区

领取腾讯云代金券