溫馨提示:要看高清無碼套圖,請使用手機打開并單擊圖檔放大檢視。
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配置
分别在兩個叢集進行同行叢集配置,以下為配置步驟。
- 在CM首頁點選“備份”->“同行”,進入配置界面
2.點選“Add Peer”添加叢集資訊
PeerName:定義一個同行叢集的名稱
PeerURL:同行叢集CM通路位址
PeerAdmin Username:同行叢集的管理者賬号
PeerAdmin Password:同行叢集的管理密碼
3.點選添加,檢視狀态是否為“已連接配接”
3.2在非Kerberos叢集測試BDR
- 在CM首頁點選“備份”->“複制計劃”
- 建立一個HDFS複制計劃
3.點選儲存,提示如下錯誤
3.3在Kerberos叢集測試BDR
2.點選儲存,提示如下錯誤
通過如上操作得出,CDH的BDR功能不支援安全叢集與非安全叢集之間的資料複制;
4.Hadoop的DistCp叢集間資料複制
術語說明:
源叢集(Source):指要遷移和複制資料的叢集
目标叢集(Destination):指存儲遷移資料的叢集
4.1叢集間資料遷移的要求和限制
- 運作DistCp指令的叢集必須啟動MapReduce服務(MRV1或YARN(MRV2)),因為DictCp指令運作的是MapReduce作業。
- 運作DistCp指令的叢集中所有的MapReduce節點與源叢集所有節點的網絡是通的。
- 在Kerberos叢集與非Kerberos叢集之間複制資料,必須在Kerberos叢集上執行DistCp指令
4.2叢集之間資料複制方式
- 如果源是非Kerberos環境,目标是Kerberos環境,則在目标叢集運作指令,對源叢集使用WebHDFS,目标叢集使用HDFS或者WebHDFS協定。
- 如果源是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 ~]#
- 目标叢集的資料目錄
[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 ~]$
醉酒鞭名馬,少年多浮誇! 嶺南浣溪沙,嘔吐酒肆下!摯友不肯放,資料玩的花!