1. 程式人生 > >0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

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 作業系統CentOS 6.5

3.CDH的BDR功能驗證

3.1分別在兩個叢集進行BDR配置

分別在兩個叢集進行同行叢集配置,以下為配置步驟。

  1. 在CM主頁點選“備份”->“同行”,進入配置介面

0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

2.點選“Add Peer”新增叢集資訊

0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

PeerName:定義一個同行叢集的名稱

PeerURL:同行叢集CM訪問地址

PeerAdmin Username:同行叢集的管理員賬號

PeerAdmin Password:同行叢集的管理密碼

3.點選新增,檢視狀態是否為“已連線”

0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

3.2在非Kerberos叢集測試BDR

  1. 在CM主頁點選“備份”->“複製計劃”

0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

  1. 建立一個HDFS複製計劃

0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

3.點選儲存,提示如下錯誤

0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

3.3在Kerberos叢集測試BDR

  1. 建立一個HDFS複製計劃

0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

2.點選儲存,提示如下錯誤

0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

通過如上操作得出,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目錄

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

0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

  1. 目標叢集的資料目錄
[[email protected] ~]$ 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
[[email protected] ~]$ 

0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

3.在Kerberos叢集命令列進行Kerberos使用者初始化

[[email protected]_~]**$** kinit user\_r

Password_ **for** user\[email protected]:

[[email protected]_ ~]**$** 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

[[email protected]_ ~]**$** 

0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

4.執行如下操作進行資料拷貝(目標HDFS方式)

源叢集使用WebHDFS和目標叢集使用HDFS協議進行資料拷貝

[[email protected] ~]$ 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
...
[[email protected] ~]$ 

0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

Yarn作業執行介面

0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

任務執行完成,檢查資料是否與源叢集資料一致

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

0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

源叢集與目標叢集資料一致。

5.執行資料拷貝命令(目標WebHDFS方式)

源叢集使用WebHDFS和目標叢集使用WebHDFS協議進行資料拷貝,刪除目標叢集hdfs的/sourcedata目錄

[[email protected] ~]$ 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
...
[[email protected] ~]$ 

0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

Yarn任務介面

0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

任務執行完成,檢查資料是否與源叢集資料一致

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

0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

5.2Kerberos到非Kerberos叢集資料複製

Kerberos叢集為源叢集,非Kerberos叢集為目標叢集。

以下操作是將源叢集的/sourcedata目錄下的資料複製到目標叢集的/data目錄下。

1.檢視源叢集/sourcedata目錄

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

0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

2.目標叢集的HDFS目錄

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

0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

3.在源叢集命令列進行Kerberos使用者初始化

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

4.執行如下操作進行資料拷貝(源HDFS方式)

目標叢集使用使用WebHDFS和源叢集使用WebHDFS協議進行資料拷貝

[[email protected] ~]$ 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
...
[[email protected] ~]$ 

0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

Yarn作業檢視

0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

任務執行成功,檢查資料複製是否完整

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

0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

目標叢集的資料與源叢集的資料一致。

5.執行如下操作進行資料拷貝(源WebHDFS方式)

[[email protected] ~]$ 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
...
[[email protected] ~]$ 

0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

Yarn任務介面

0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

任務執行成功,檢查資料是否完成

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

0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

6.總結

在進行DistCp時,如果目標叢集的目錄不存在會自動建立。

需要注意:目標叢集的目錄已存在與不存在的拷貝區別

  • sourcedata目錄存在的情況下,DistCp命令執行完成後,將源叢集的data目錄複製到目標叢集的sourcedata目錄下,檢視sourcedata目錄顯示如下:
[[email protected] ~]$ hadoop fs -ls /sourcedata
Found 1 items
drwxr-xr-x   - user_r supergroup          0 2017-08-31 11:19 /sourcedata/data
[[email protected] ~]$ 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
[[email protected] ~]$ 

0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

  • sourcedata目錄不存在的情況下,DistCp命令執行完成後,只是將源叢集data目錄下的檔案複製到目標叢集的sourcedata目錄下(data子目錄並沒有複製),檢視sourcedata目錄顯示如下:
[[email protected] ~]$ 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
[[email protected] ~]$ 

0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料

醉酒鞭名馬,少年多浮誇! 嶺南浣溪沙,嘔吐酒肆下!摯友不肯放,資料玩的花!
溫馨提示:要看高清無碼套圖,請使用手機開啟並單擊圖片放大檢視。
0013-如何在Kerberos與非Kerberos的CDH叢集BDR不可用時複製資料