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...