cdh環境下hadoop平台最高許可權使用者是hdfs,屬於supergroup組。預設hdfs會開啟許可權認證,所以操作時,
需要將root使用者切換到hdfs使用者,否則會報錯。
1、建立使用者(所有節點)
useradd test
2、建立使用者組 (所有節點)
groupadd supergroup
3、將使用者新增到使用者組中(所有節點)
usermod -a -g supergroup test
hdfs的acl(access control list)許可權
當乙個普通使用者去訪問hdfs檔案時,可能會報permission denied的錯誤。
像修改linux檔案似的,可能的做法有:
修改檔案所有者
直接將檔案賦予全部的許可權,即rwx許可權。
上面的做法雖然可以達到目的,但是相對來說對許可權的把握不是很精準,不適用於生產環境。
本文主要講解hdfs的acl(access control list)許可權,通過hdfs超級使用者,來為普通使用者分配許可權。
一、背景
如下圖所示,我使用hue使用者想建立乙個簡單的hive表。由於hue使用者對/warehouse/tablespace/managed/hive目錄沒有許可權,所以建立失敗了。
這裡就用到了hdfs的acl許可權設定。
二、前提條件
需要確定hdfs-site.xml檔案的兩個配置項為true:
dfs.permissions.enabled
true
dfs.namenode.acls.enabled
true
三、語法
1. setfacl
usage: hdfs dfs -setfacl -r|[--set ]
設定檔案和目錄的訪問控制列表(acl)。
選項:-b: 刪除基本acl條目以外的所有條目。保留使用者,組和其他條目以與許可權位相容。
-k: 刪除預設acl。default
-r: 以遞迴方式將操作應用於所有檔案和目錄。常用。
-m: 修改acl。新條目將新增到acl,並保留現有條目。常用。
-x: 刪除指定的acl條目。保留其他acl條目。常用。
--set: 完全替換acl,丟棄所有現有條目。 acl_spec必須包含使用者,組和其他條目,以便與許可權位相容。
acl_spec: 逗號分隔的acl條目列表。
path: 要修改的檔案或目錄。
示例:
hdfs dfs -setfacl -m user:hadoop:rw- /file
hdfs dfs -setfacl -x user:hadoop /file
hdfs dfs -setfacl -b /file
hdfs dfs -setfacl -k /dir
hdfs dfs -setfacl --set user::rw-,user:hadoop:rw-,group::r--,other::r-- /file
hdfs dfs -setfacl -r -m user:hadoop:r-x /dir
hdfs dfs -setfacl -m default:user:hadoop:r-x /dir
2. getfacl
usage: hdfs dfs -getfacl [-r]
顯示檔案和目錄的訪問控制列表(acl)。如果目錄具有預設acl,則getfacl還會顯示預設acl。
選項:-r: 以遞迴方式列出所有檔案和目錄的acl。
path: 要列出的檔案或目錄。
示例:hdfs dfs -getfacl /file
hdfs dfs -getfacl -r /dir
四、為hue使用者賦予許可權
使用hdfs超級使用者來設定acl:使用-m引數
sudo -u hdfs hdfs dfs -setfacl -m user:hue:rwx /warehouse/tablespace/managed/hive
檢視檔案目錄的acl許可權:
hdfs dfs -getfacl /warehouse/tablespace/managed/hive
檔案acl許可權如下圖所示:
現在hue使用者就對/warehouse/tablespace/managed/hive這個目錄有了rwx全部許可權了。
我們使用hue使用者建立hive表試試,成功了,如下圖所示:
備註:不過是僅限於hive這個目錄,對於裡面的子檔案不是hue使用者建立的,hue使用者還是無權訪問。
如果需要訪問遞迴的子檔案,可以使用-r引數,再次授權。
cdh使用者許可權 cdh設定hdfs許可權
通常會把 root 或者需要的使用者新增到 supergroup組,但linux下預設是沒有supergroup組。linux下預設是沒有supergroup組的 hadoop x 994 hdfs,mapred,yarn cat etc group 檢視hdfs使用者的組是hadoop hdfs ...
hdfs 許可權設定問題
hdfs 系統的許可權和 linux 相似 分為三個部分 hdfs的使用者 是和本地機器的使用者繫結的 使用 比如hdfs 使用者 上有乙個使用者叫profile 想要使用這個使用者許可權操作hdfs 就要在本地使用 sudo u profile 的方式來使用指定使用者操作hdfs 為了防止線上的資...
CDH環境搭建遇到的問題
永久修改 在 etc sysctl.conf檔案裡新增如下引數 或者 其實 寫入到 etc sysctl.conf就已經永久生效了,如果要讓剛寫入的立即也生效可以執行以下sysctl p 已啟用透明大頁面壓縮,可能會導致重大效能問題。請執行 echo never sys kernel mm tran...