CDH環境HDFS許可權問題

2021-10-05 17:49:20 字數 2321 閱讀 3220

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