天天看點

0013-如何在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

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

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\[email protected]:

[ec2-user@ip-172-31-8-141_ ~]**$** klist

Ticket_ cache: FILE:/tmp/krb5cc\_500

Default_ principal: user\[email protected]

Valid_ starting     Expires            Service principal

08/31/17_ 10:03:41  09/01/17 10:03:41  krbtgt/[email protected]

 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: [email protected]

Valid starting     Expires            Service principal
08/31/17 09:22:26  09/01/17 09:22:24  krbtgt/[email protected]
        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 ~]$            

任務運作成功,檢查資料是否完成

[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 ~]$            
醉酒鞭名馬,少年多浮誇! 嶺南浣溪沙,嘔吐酒肆下!摯友不肯放,資料玩的花!

繼續閱讀