hadoop distcp集群之間的拷貝許可權測試

2021-09-09 06:59:32 字數 3902 閱讀 4362

1 測試點

hadoop 集群間拷貝有沒有許可權要求

eg:a集群的wkz使用者向b集群的cdd使用者拷貝檔案,會不會有許可權限制

2 開始測試

(1)搭建兩套cm a,b,並分配yarn和hdfs

(2)在a集群hdfs建立建wkz目錄並賦權,在a集群hdfs getway節點建立wkz使用者,並用wkz使用者上傳檔案wkz

[hdfs@nlkfpt-cxds-03 ~]$ hdfs dfs -mkdir /user/wkz                                          [hdfs@nlkfpt-cxds-03 ~]$ hdfs dfs -chown wkz:wkz /user/wkz

[hdfs@nlkfpt-cxds-03 ~]$ hdfs dfs -chmod 700 /user/wkz

[hdfs@nlkfpt-cxds-03 ~]$ hdfs dfs -ls /user/wkz

[root@nlkfpt-cxds-03 hadoop]# useradd wkz

[root@nlkfpt-cxds-03 hadoop]# su - wkz

[wkz@nlkfpt-cxds-03 ~]$ hdfs dfs -ls 

[wkz@nlkfpt-cxds-03 ~]$ echo wkz > wkz

[wkz@nlkfpt-cxds-03 ~]$ hdfs dfs -put wkz  

[wkz@nlkfpt-cxds-03 ~]$ hdfs dfs -ls 

found 1 items

-rw-r--r--   3 wkz wkz          4 2019-01-16 14:34 wkz

(3)在b集群hdfs建立cdd目錄並賦權,在b集群hdfs getway節點建立cdd使用者,並上傳cdd檔案

[hdfs@nlkfpt-cxds-42 ~]$ hdfs dfs -mkdir /user/cdd

[hdfs@nlkfpt-cxds-42 ~]$ hdfs dfs -chown cdd:cdd /user/cdd

[hdfs@nlkfpt-cxds-42 ~]$ hdfs dfs -chmod 700 /user/cdd

[root@nlkfpt-cxds-42 hadoop]# useradd cdd

[root@nlkfpt-cxds-42 hadoop]# su - cdd

[cdd@nlkfpt-cxds-42 ~]$ hdfs dfs -ls

[cdd@nlkfpt-cxds-42 ~]$ echo cdd >cdd

[cdd@nlkfpt-cxds-42 ~]$ hdfs dfs -put cdd

(4)在a集群執行distcp命令把wkz使用者的檔案導向b集群的cdd目錄下

hadoop distcp   hdfs://nameservice1/user/wkz/wkz   hdfs://nlkfpt-cxds-41:8020/user/cdd/
直接報錯:

結論: 證明不同使用者之間集群互傳檔案會有許可權限制。

(5)在b集群的建立wkz hdfs目錄並賦權:

[hdfs@nlkfpt-cxds-42 ~]$ hdfs dfs -mkdir /user/wkz

[hdfs@nlkfpt-cxds-42 ~]$ hdfs dfs -chown wkz:wkz /user/wkz

[hdfs@nlkfpt-cxds-42 ~]$ hdfs dfs -ls /user/wkz

[hdfs@nlkfpt-cxds-42 ~]$ hdfs dfs -ls /user/

found 3 items

drwx------ - cdd cdd 0 2019-01-16 14:58 /user/cdd

drwxrwxrwx - mapred hadoop 0 2019-01-15 11:06 /user/history

drwxr-xr-x - wkz wkz 0 2019-01-16 15:00 /user/wkz

同使用者再次拷貝:

[wkz@nlkfpt-cxds-03 ~]$ hadoop distcp   hdfs://nameservice1/user/wkz/wkz   hdfs://nlkfpt-cxds-41:8020/user/wkz/
成功:

在b集群也能看到wkz檔案:

結論:同使用者之間無許可權限制

(6) 使用a集群的hdfs超級使用者去往b集群的wkz和cdd下放檔案

[hdfs@nlkfpt-cxds-03 ~]$  hadoop distcp   hdfs://nameservice1/user/wkz/wkz   hdfs://nlkfpt-cxds-41:8020/user/wkz/wkz-hdfs

[hdfs@nlkfpt-cxds-03 ~]$ hadoop distcp hdfs://nameservice1/user/wkz/wkz hdfs://nlkfpt-cxds-41:8020/user/cdd/wkz-hdfs

均成功:

但是屬組換了,變成了hdfs:cdd。

再次往b集群/user下傳,發現也可以:

結論:超級使用者可以往b集群隨便傳(7) 把b集群cdd的hdfs目錄的rwx許可權給wkz使用者,然後再傳

[hdfs@nlkfpt-cxds-42 ~]$ hdfs dfs -setfacl -m user:wkz:rwx /user/cdd
[hdfs@nlkfpt-cxds-03 ~]$ hadoop distcp   hdfs://nameservice1/user/wkz/wkz   hdfs://nlkfpt-cxds-42:8020/user/cdd/
[hdfs@nlkfpt-cxds-42 ~]$ hdfs dfs -ls /user/cdd

found 3 items

-rw-r--r-- 3 cdd cdd 4 2019-01-16 14:58 /user/cdd/cdd

-rw-r--r-- 3 hdfs cdd 4 2019-01-16 16:05 /user/cdd/wkz

-rw-r--r-- 3 hdfs cdd 4 2019-01-16 15:39 /user/cdd/wkz-hdfs

結論:雙集群互傳就相當於是乙個集群當客戶端使用,然後另乙個集群配置相應的使用者許可權即可

hadoop distcp 命令使用指導

1 概述 distcp distributed copy 是一款被用於大型集群間 集群內的複製工具。它使用mapreduce來實現其分布,錯誤處理和恢復以及報告。它將檔案列表和目錄擴充套件為map任務的輸入,每個任務都將複製原始檔列表中指定的一些檔案的乙個分割槽。2 基本運用 distcp最常見的呼...

Hadoop DistCp 分布式拷貝

在實際的生產環境中,我們的企業都有測試集群和生產集群,有的比較大型的企業有多個版本的hadoop 大資料集群,這時候有個這樣的需求,各個集群上的資源需要進行遷移,比如說一些生產集群需要一些測試集群的資料,需要將測試集群的上的資料拷貝到生產集群,這時候就需要使用到分布式拷貝 distributed c...

Kafka之集群部署

kafka支援多種集群方式 在上篇中,我們在單台機器上部署了kafka,現在將其設定為單節點單broker集群。架構如圖所示 修改配置檔案 zookeeper.properties檔案 先手動建立zookeeper目錄 datadir opt kafka clusters onenodeonebro...