ranger0.5.4-開源安裝配置
---恢復內容開始---
一.Ranger編譯
安裝Ranger之前要進行編譯,首先下載原始碼:
命令步驟:
git clone https://github.com/apache/incubator-ranger.git
cd incubator-ranger
git checkout ranger-0.5
mvn clean compile package assembly:assembly install
Target編譯構建的包如下:
注:這裡ranger服務的相關服務和元件基本全部在了。公司網路編譯大概需要4-5個小時。
二.Range-Admin(控制檯)安裝
Ranger在solr裡儲存日誌,RangerAdmin UI依賴solr元件完成審計日誌的查詢,所以需要先安裝和配置好Solr。
注:目前(HDFS-Plugin)的測試日誌審計時沒選擇Solr方式,但還是先配置好Standalone模式的solr.
SolrCloud安裝配置
cd /root/incubator-ranger/security-admin/contrib/solr_for_audit_setup
#開啟install.properties檔案,修改引數的值如下所示:
vi install.properties
JAVA_HOME=/root/jdk1.7.0_67
SOLR_INSTALL=true
SOLR_DOWNLOAD_URL=http://archive.apache.org/dist/lucene/solr/5.2.1/solr-5.2.1.tgz
SOLR_INSTALL_FOLDER=/opt/solr
SOLR_RANGER_HOME=/opt/solr/ranger_audit_server
SOLR_DEPLOYMENT=standalone
SOLR_RANGER_DATA_FOLDER=/opt/solr/ranger_audit_server/data
SOLR_LOG_FOLDER=/var/log/solr/ranger_audits
SOLR_MAX_MEM=2g
#安裝單節點的solr
./ setup.sh
#按照如下安裝提示啟動、停止solr服務
cat/opt/solr/ranger_audit_server/install_notes.txt
#啟動solr
/opt/solr/ranger_audit_server/scripts/start_solr.sh
#驗證solr服務是否可正常使用
lsof –i:6083
安裝RangerAdmin
命令步驟:
tar –zxvf ranger-0.5.0-admin.tar.gz
cd ranger-0.5.0-admin
vim install.properties
修改的引數如下:
setup_mode=SeparateDB
db_root_user=root
db_root_password=root23
db_host=localhost
db_name=ranger
db_user=root
db_password=root123
audit_store=db
audit_db_name=ranger_audit
audit_db_user=root
audit_db_password=root123
注:上面的db為提前安裝好的mysql資料庫,庫不需要提前建好,ranger-admin程式會根據該配置檔案自動連線並建庫/表。
Mysql版本親測5.6版本可用,5.1,5.2等版本ranger報錯。其他版本還沒測試,建議直接安裝5.6版本。
配置檔案修改完畢儲存退出後:
初始化設定Ranger Admin:執行./setup.sh
執行完成後檢視mysql:
執行完畢後,自動建立的庫/表。
啟動Ranger Admin:ranger-admin start
驗證是否安裝成功:訪問http://:6080;用admin/admin登入,出現登入介面,登入成功,說明成功!
三.安裝Ranger Usersync外掛
同步linux系統使用者到ranger資料庫,需要安裝Ranger Usersync。安裝步驟如下:
tar –zxvf ranger-0.5.4-SNAPSHOT-usersync.tar.gz
cd ranger-0.5.4-SNAPSHOT-usersync
vim install.properties
開啟配置檔案做如下配置:
POLICY_MGR_URL=http://node1:6080
SYNC_SOURCE=unix
SYNC_INTERVAL=1
logdir= /opt/ranger-usersync/ranger-0.5.4-SNAPSHOT-usersync/logs
注:logdir 資料夾需要自己建立,不然初始化會報錯。
初始化設定Ranger Usersync:執行./setup.sh
啟動Ranger Usersync:./ranger-usersync-services.sh start
驗證是否安裝成功:在Ranger控制檯可以看到users中同步的使用者資訊。
四:ranger-0.5.0-hdfs-plugin 元件安裝
tar -zxvf ranger-0.5.4-SNAPSHOT-hdfs-plugin.tar.gz
cd ranger-0.5.4-SNAPSHOT-hdfs-plugin/
vim install.properties
開啟配置檔案做如下配置:
POLICY_MGR_URL=http://localhost:6080
REPOSITORY_NAME=hadoopdev
XAAUDIT.DB.IS_ENABLED=true
XAAUDIT.DB.FLAVOUR=MYSQL
XAAUDIT.DB.HOSTNAME=localhost
XAAUDIT.DB.DATABASE_NAME=ranger_audit
XAAUDIT.DB.USER_NAME=root
XAAUDIT.DB.PASSWORD=root123
需要把Hadoop的配置檔案conf放到/opt/ranger-hdfs-plugin/hadoop/conf/下面,執行軟連線命令:
Ln -s /opt/hadoop/hadoop-2.7.0/etc/hadoop/* /opt/ranger-hdfs-plugin/hadoop/conf/
需要將HDFS Plugin內的jar和HADOOP包含的HDFSjar都指向/usr/local/hadoop/lib,執行如下命令:
cp /opt/ranger-hdfs-plugin/ranger-0.5.4-SNAPSHOT-hdfs-plugin/lib/ranger-hdfs-plugin-impl/*.jar /opt/hadoop/hadoop-2.7.0/share/hadoop/hdfs/lib/
Ln -s /opt/hadoop/hadoop-2.7.0/share/hadoop/hdfs/lib/*.jar /opt/ranger-hdfs-plugin/hadoop/lib/
注:/opt/ranger-hdfs-plugin/hadoop/lib需手動建立,如果不做此步會報錯如下:
ERROR: Unable to find the lib directory of component [hadoop]; dir [/opt/ranger-hdfs-plugin/hadoop/lib] not found.
Exiting installation.
修改hdfs掩碼:
<property>
<name>fs.permissions.umask-mode</name>
<value>077</value>
</property>
按此方法設定另外一個namenode節點。
到此準備工作完成:
啟動外掛:./enable-hdfs-plugin.sh
外掛顯示啟動成功,從新啟動hadoop使ranger-hdfs外掛生效。
驗證是否安裝成功:
a、 登入ranger admin
可以看到新建的使用者組和使用者已經自動同步到ranger-admin
b、 點選HDFS plugin 新增按鈕,新增服務
驗證HDFS Plugin服務,這時登入Ranger的管理員介面驗證下HDFS plugin是夠載入成功,發現並沒有.
原因是安裝HDFS plugin時install.properties檔案裡定義的REPOSITORY_NAME(值為hadoopdev)並未通過Ranger Admin在HDFS外掛裡的服務管理裡註冊成服務(名hadoopdev).
解決方案:
1 登入Ranger Adming
2 點選HDFS plugin的新增按鈕
3 定義服務名為hadoopdev,提交其它資訊後儲存
dfs.nameservices ky
dfs.ha.namenodes.ky nn1,nn2
dfs.namenode.rpc-address.ky.nn1 node1:9000
dfs.namenode.rpc-address.ky.nn2 node2:9000
dfs.client.failover.proxy.provider.ky org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
注:此處是個大坑,網上的資料的都是namenode單節點的,直接在Namenode URL *一欄填寫nanode節點就可以,我們是HA模式,所以我們這裡應該按照我寫的這樣做,填寫叢集namespace,然後在高階設定(Add New Configurations)新增上HA相關資訊。
點選 Test Connection,彈出視窗Connected Successfully.說明外掛安裝成功
c、 配置hdfs-policy
linux環境下新增使用者:useradd test
root使用者在hdfs下建立資料夾:hdfsdfs –mkdir /test
hdfs dfs –mkdir /test/sub
登入Ranger Admin,在hadoopdev裡新增Policy
policy:目錄/test 對使用者xhhtest只設置讀許可權
切換到test使用者,執行:hdfs dfs –ls /test
讀取到test下的sub資料夾,讀取成功。
Vim my.txt 建立一個新的測試檔案。
執行:hdfs dfs –put my.txt /test
put: Permission denied: user=test, access=EXECUTE, inode="/test/my.txt":root:supergroup:drwx------
許可權不足,put操作失敗。
修改policy,對目錄/test新增write許可權給使用者test。
執行:hdfs dfs -put my.txt /xhhtest,執行成功。
檔案已上傳成功。
---恢復內容結束---