---恢復內容開始---
一.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,執行成功。
文件已上傳成功。
---恢復內容結束---