0013-如何在Kerberos與非Kerberos的CDH集羣BDR不可用時複製數據

1.概述node

本文檔描述了在Kerberos與非Kerberos的CDH集羣之間BDR不可用的狀況下實現數據互導。文檔主要講述web

1.測試集羣環境描述shell

2.CDH的BDR功能驗證安全

3.集羣之間數據複製要求和限制網絡

4.集羣之間數據複製的方式app

5.使用DistCp複製數據注意事項tcp

6.經過DistCp進行數據互導oop

這篇文檔將着重介紹CDH Kerberos集羣與非Kerberos集羣之間BDR不可用的狀況下實現數據互導,並基於如下假設:測試

1.Kerberos集羣與非Kerberos集羣已搭建完成,並正常運行url

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 ~]$

醉酒鞭名馬,少年多浮誇! 嶺南浣溪沙,嘔吐酒肆下!摯友不願放,數據玩的花!

相關文章
相關標籤/搜索