Ranger-Hdfs插件安裝

Ranger-Hdfs插件ranger-1.2.0-hdfs-plugin安裝到Hdfs的所有NameNode節點,
其他的DataNode節點不需要安裝。

1.修改配置文件install.properties

登陸hdfs安裝的用戶,hdfs/zdh1234(用戶組hadoop),獲取安裝包解壓安裝
tar –zxvf ranger-0.6.0-hdfs-plugin.tar.gz
vi install.properties
修改的參數如下:
POLICY_MGR_URL=http://10.43.159.245:6080
REPOSITORY_NAME=hadoopdev
CUSTOM_USER=hdfs
CUSTOM_GROUP=hadoop

注意:當插件與hadoop安裝路徑不一樣時候
# Set hadoop home when hadoop program and Ranger HDFS Plugin are not in the
# same path.
COMPONENT_INSTALL_DIR_NAME=/home/lzz/app/hadoop-2.7.1

創建軟連接,軟連接的作用類似於環境變量:
需要把Hadoop的配置文件conf放到/home/hdfs/hadoop/conf下面:
ln -s /home/hdfs/hadoop-2.7.1/etc/hadoop/ /home/hdfs/hadoop/conf

再建立hadoop的lib包到/home/hdfs/hadoop/lib的軟連接:
ln -s /home/hdfs/hadoop-2.7.1/share/hadoop/hdfs/lib/ /home/hdfs/hadoop/lib

使用root用戶執行如下腳本安裝Ranger HDFS Plugin:
./enable-hdfs-plugin.sh
創建完成後,需要重新啓動hdfs才能使插件生效。

提示:

插件安裝過程腳本做得幾件事情:
1,修改/etc/hadoop/hdfs-site.xml,添加內容如下
    <property>
        <name>dfs.permissions.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>true</value>
    </property>
    <property>
        <name>dfs.namenode.inode.attributes.provider.class</name>
        <value>org.apache.ranger.authorization.hadoop.RangerHdfsAuthorizer</value>
    </property>


2,在/home/lzz/app/hadoop-2.7.1/etc/hadoop/中增加
   -rwxr--r--. 1 lzz hadoop  9550 8月  26 14:22 ranger-hdfs-audit.xml
   -rwxr--r--. 1 lzz hadoop  3711 8月  26 14:22 ranger-hdfs-security.xml
   -rwxr--r--. 1 lzz hadoop  1907 8月  26 14:22 ranger-policymgr-ssl.xml
   -rw-r--r--. 1 lzz hadoop    83 8月  26 14:22 ranger-security.xml

3,將對應jar包軟連接到/home/lzz/app/hadoop-2.7.1/share/hadoop/hdfs/lib/

lrwxrwxrwx. 1 root root        66 8月  26 14:22 ranger-hdfs-plugin-impl -> /home/lzz/app/ranger-1.2.0-hdfs-plugin/lib/ranger-hdfs-plugin-impl
lrwxrwxrwx. 1 root root        76 8月  26 14:22 ranger-hdfs-plugin-shim-1.2.0.jar -> /home/lzz/app/ranger-1.2.0-hdfs-plugin/lib/ranger-hdfs-plugin-shim-1.2.0.jar
lrwxrwxrwx. 1 root root        78 8月  26 14:22 ranger-plugin-classloader-1.2.0.jar -> /home/lzz/app/ranger-1.2.0-hdfs-plugin/lib/ranger-plugin-classloader-1.2.0.jar

2.rangerWEB頁面新建hdfs服務

Ranger-Admin裏註冊hdfs plugin的服務
HDFS新建Service,修改如下
Service Name = hadoopdev
UserName = hdfs
Password = zdh1234
NameNodeURL = hdfs://10.43.159.240:9000
然後點擊TestConnection,成功即可保存。

關掉all-path策略,給hdfs對/usr目錄的只讀權限
插件拉取策略本地緩存,文件存在則拉取成功:
/etc/ranger/hadoopdev/policycache/hdfs_hadoopdev.json
可以查看日誌:hadoop-hdfs-namenode-zdh-245.log
2016-10-21 08:47:19,696 INFO org.apache.ranger.plugin.util.PolicyRefresher: PolicyRefresher(serviceName=hadoopdev): found updated version. lastKnownVersion=3; newVersion=4
LoginSessions裏面可以看到後臺從zdh-245的rangerusersync用戶登入的記錄.

將zdh245上面的hadoop和ranger-0.6.0-hdfs-plugin複製到zdh240等其他hadoop的集羣
同上創建hadoop的軟連接
scp -r hdfs@zdh-245:/home/hdfs/ranger-0.6.0-hdfs-plugin .
注意:有可能只需要把hdfs-plugin安裝到hadoop的NameNode,未驗證
實際安裝時,對應DataNode安裝了hdfs-plugin,但實際沒有拉取策略,故懷疑不用安裝hdfs-plugin到DataNode節點。

3.關閉Ranger HDFS Plugin

使用root執行,需要在zdh-240和zdh-245兩個NameNode上面執行
./disable-hdfs-plugin.sh
重啓hadoop使修改生效
目前測試結果disable無效,把集羣的5個點都使用root用戶disable了,然後重啓。
確認位腳本問題,需要修改。

4.驗證:

hdfs@zdh-245
hadoop fs -ls /usr
hadoop fs -mkdir /usr/new
hdfs用戶是hadoop的安裝用戶,可能無法控制權限。
./hadoop fs -rm -r /usr/new*

使用mysql用戶
export JAVA_HOME=/home/hdfs/jdk1.7.0_80
mysql@zdh-245:/home/hdfs/hadoop-2.7.1/bin> ./hadoop fs -mkdir /usr/new13
16/10/21 11:22:37 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
mkdir: Permission denied: user=mysql, access=WRITE, inode="/usr/new13":hdfs:supergroup:drwxr-xr-x
mysql@zdh-245:/home/hdfs/hadoop-2.7.1/bin> ./hadoop fs -mkdir /usr/new13
16/10/21 11:24:52 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

設置/usr目錄mysql用戶可以寫之後,原來不能創建文件,現在新建文件,驗證權限成功

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章