ranger的安裝與部署及使用
這篇文章寫之前,要先感謝博客園的一位博主,能一直幫助我在安裝ranger過程中解決問題,特別感謝!!!下面貼一下他的博客地址,日常寫的文章還是非常有營養的。
https://www.cnblogs.com/swordfall/
安裝所用到的Ranger2.0.0版本以及Maven3.6.1還有Mysql5.7.25全套rpm包都給大家準備好了,自行下載。
鏈接:https://pan.baidu.com/s/1Sd-iU5cPYITVXyHO5a0A_Q
提取碼:8utl
一、Ranger的介紹
Apache Ranger是一個在Hadoop平臺上實現,監控和管理全面數據安全性的框架。Ranger比Sentry好在哪兒
- sentry的好處都有
- 更加豐富的組件
- 支持審計
- 提供rest風格的API,可以自由開發
二、Ranger的架構
Rager-admin 是基於Spring的框架
web :管理用戶、資源、權限策略
rest api :可以自己實現
三、Ranger的安裝與部署
框架 | 版本號 |
---|---|
Linux | centos7 |
Ranger | 2.0.0 |
Hadoop | 3.1.3 |
Hive | 3.1.2 |
Maven | 3.6.1 |
Python | 2.7.5 |
由於Ranger不提供二進制安裝包,故需要maven編譯。下面是詳細步驟
溫馨提示:最好全程使用root用戶,免去不必要的權限煩惱‘
改配置文件,最好先把配置文件做個備份,以防止自己一頓操作猛如虎,結果卻像250
1、安裝git(務必安裝)
不管各位的Ranger安裝包是自己在官網下的,還是使用git拉取的,請務必安裝git(我就是因爲沒裝git搞了好久)
yum install -y git
2、下載Ranger安裝包
- 我是直接在官網下的,http://ranger.apache.org/download.html,下載自己需要的版本。(建議使用這種,下載快一點)
- 也可以在線下載(需要先安裝wget命令)
wget http://mirrors.tuna.tsinghua.edu.cn/apache/ranger/2.0.0/apache-ranger-2.0.0.tar.gz
- 上傳到/opt/software(自己放軟件的目錄),並進行解壓到/opt/module/(自己想要的位置)
tar -zxvf apache-ranger-2.0.0.tar.gz -C /opt/module
- 修改ranger的當前目錄下pom文件內的hadoop和hive版本號
vim pom.xml
其他版本各位隨意,儘量少改,容易出錯
3、下載maven
- 因爲是編譯安裝,自然要使用到maven,我自然貼心的幫你準備好了maven的安裝包,當然你也可以自己下載
wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz
- 解壓後修改環境變量及內存
# tar -zxvf apache-maven-3.6.2-bin.tar.gz
# vim /etc/bashrc
export MAVEN_HOME=/opt/software/apache-maven-3.6.1
export PATH=$PATH:$MAVEN_HOME/bin
MAVEN_OPTS=-Xmx2048m
export JAVA_HOME MAVEN_HOME MAVEN_OPTS JAVA_BIN PATH CLASSPATH
- 修改maven源爲阿里源或網易源
# pwd
/opt/software/apache-maven-3.6.1/conf
# vim settings.xml
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>CN</id>
<name>OSChina Central</name>
<url>http://maven.oschina.net/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
<mirror>
<id>jboss-public-repository-group</id>
<mirrorOf>central</mirrorOf>
<name>JBoss Public Repository Group</name>
<url>https://repository.jboss.org/nexus/content/groups/public</url>
</mirror>
</mirrors>
4、開始編譯
- 進行buile(跳過測試類)
mvn clean compile package assembly:assembly install -DskipTests -Drat.skip=true
這個過程整體是比較慢的,順利的話可能1小時左右,也有可能4小時以上,哈哈,還有是如果不動了,千萬別以爲卡住了,是因爲它在下載一些jar包或者依賴,鏡像是國外的,所以比較慢,只需要耐心等待就好了,當然你ctrl + C 掉,再重新編譯也是沒問題的
-
我遇到的第一個問題
Maven build Compilation error : Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.3:testcompile (default-compile) on project Maven
**這個問題是因爲我亂改了pom文件中Hbase的版本號,**最後我只改了hive和Hadoop的版本號,其餘的沒做修改。 -
我遇到的第二個問題
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (generate-version-annotation) on project ranger-util: An Ant BuildException has occured: exec returned: 1
[ERROR] around Ant part ...<exec failonerror="true" executable="python">... @ 4:48 in /data/apache-ranger-1.0.0/ranger-util/target/antrun/build-main.xml
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (generate-version-annotation) on project ranger-util: An Ant BuildException has occured: exec returned: 1
around Ant part ...<exec failonerror="true" executable="python">... @ 4:48 in /data/apache-ranger-1.0.0/ranger-util/target/antrun/build-main.xml
這問題看起來是pyrhon版本的問題,而且它還建議我執行以下命令:
mvn org.apache.maven.plugins:maven-antrun-plugin:1.7:run -rf :ranger-util
這個命令我終於執行成功後卻還是沒有tar包,最後博主提醒我其實是沒有裝git,所以一再強調各位,安裝git
- 若編譯過程中出現缺少jar包的情況,可能下載不了,需要手動自動添加;
- 最後編譯成功後的界面
我花了3天時間,終於編譯好了,開心 - 檢查當前目錄下的target目錄,會有一堆tar.gz包(看到這些,說明你編譯成功了)
5、安裝Ranger控制檯:Ranger-admin
- 安裝Ranger控制檯:Ranger-admin,需要所使用root用戶,ranger-admin依賴mysql、JDK(安裝mysql和JDK,各位自己百度吧)
- 在target目錄下,解壓Ranger-admin,修改配置
tar -zxvf ranger-2.0.0-admin.tar.gz
vim install.properties
# 指定一個Mysql的驅動,需要自己指定一個jar包 SQL_CONNECTOR_JAR=/opt/software/mysql-connector-java-5.1.27-bin.jar
# 配置Mysql數據庫的信息
db_root_user=root
db_root_password=123456
db_host=192.168.13.101
# 安裝時會使用上面的root用戶創建如下數據庫
db_name=ranger
db_user=ranger
db_password=123456
#登錄ranger-admin的用戶名密碼:admin/Admin123
rangerAdmin_password=Admin123
rangerTagsync_password=Admin123
rangerUsersync_password=Admin123
keyadmin_password=Admin123
#audit_store=solr
# * audit_solr_url URL to Solr. E.g. http://<solr_host>:6083/solr/ranger_audits
#audit_solr_urls=
#audit_solr_user=
#audit_solr_password=
#audit_solr_zookeepers=
# 配置RangerAdmin使用DB作爲audit審計日誌
audit_store=db
audit_db_name=ranger_audit
audit_db_user=ranger_audit
audit_db_password=123456
policymgr_external_url=http://hadoop101(這裏是自己的主機名):6080
policymgr_http_enabled=true
policymgr_https_keystore_file=
policymgr_https_keystore_keyalias=rangeradmin policymgr_https_keystore_password=123456
unix_user=ranger
unix_user_pwd=ranger
unix_group=ranger
- 使用root用戶執行如下腳本,安裝RangerAdmin
./setup.sh
- 啓動ranger-admin
ews/ranger-admin-services.sh start
- web登錄驗證是否安裝
http://hadoop101:6080/index.html#!/policymanager/resource
用戶名:admin 密碼:Admin123
- 安裝ranger Usersync,需要使用root用戶
//在target目錄下,解壓文件
tar -zxvf ranger-2.0.0-usersync.tar.gz
cd ranger-2.0.0-usersync
vim install.properties
POLICY_MGR_URL=http://<ip:host>:6080(這裏不要動,就是這樣)
SYNC_SOURCE=unix
SYNC_INTERVAL=1
logdir=/opt/module/apache-ranger-2.0.0/target/ranger-2.0.0-usersync/logs(改成自己的目錄)
- 啓動ranger Usersync
./setup.sh
./ranger-usersync-services.sh
注意:logdir 文件夾需要自己創建,不然初始化可能會報錯。
驗證是否安裝成功:在Ranger控制檯可以看到users中同步的用戶信息。
6、安裝ranger插件(安裝ranger-hdfs)
- 使用root用戶,解壓
tar -zxvf ranger-2.0.0-hdfs-plugin.tar.gz
- 修改配置文件
tar -zxvf ranger-2.0.0-hdfs-plugin.tar.gz
cd ranger-1.2.0-usersync
vim install.properties
SQL_CONNECTOR_JAR=/usr/share/java/mysql-connector-java.jar(根據自己的目錄進行填寫,jar包我分享的文件裏有)
POLICY_MGR_URL=http://hadoop101:6080 REPOSITORY_NAME=hadoopdev COMPONENT_INSTALL_DIR_NAME=/opt/module/hadoop-3.1.3(自己的hadoop安裝目錄)
CUSTOM_USER=hdfs
CUSTOM_GROUP=hadoop
- 啓動Ranger HDFS Plugin:
./enable-hdfs-plugin.sh
- 驗證安裝成功步驟
- 會發現hadoop安裝目錄下etc/hadoop下有ranger-hdfs的xml文件
- 會發現share/hadoop/hdfs/lib 下有ranger-hdfs開頭的軟連接
- 啓動hdfs會發現/etc/ranger/hadoopdev/policycache下有策略緩存文件
- 然後在ranger-admin的audit–>plugin status 查看狀態,200即爲安裝成功
- 登錄ranger-admin,點擊HDFS plugin 添加按鈕,添加服務
- 然後點擊TestConnection,成功即可保存。1分鐘後查看plugin,狀態爲200,說明hdfs安裝成功
7、測試是否可用(HDFS服務測試)
hadoop版本需要和之前安裝Ranger Pom文件中配置的一樣。我這裏是3.1.3
- linux環境下添加用戶
useradd ranger_zy
gpasswd -a ranger_zy hadoop
- 如果可以同步,直接不用在ranger上添加此用戶,但是如果不能同步需要添加(我的需要自己在ranger上同步)
- 在沒有添加ranger之前進行測試,切換到ranger_zy用戶
su ranger_zy
hdfs dfs -ls /
測試ranger_zy是否可以對/test目錄進行寫操作切換到ranger_zy用戶
hdfs dfs -put /opt/module/111.txt /test(自己搞個文件測試一下上傳)
//結果應該是權限問題不能上上傳
- 在添加ranger之後進行操作
在ranger中對此ranger_zy用戶進行權限操控
點擊保存等待生效(30s)後,再次對/test目錄進行操作,看是否可以成功
到這裏基本實現了Ranger的hdfs權限的管理,大家自己慢慢研究這個Ranger吧,內容還是非常多的。
致謝
能把Ranger從不懂到能搭起來,還能略微知道些其中的架構原理,感謝衆多博客的幫助,貼幾個過程中非常重要的鏈接。
1、https://www.cnblogs.com/swordfall/p/11887317.html
2 、https://www.ixigua.com/pseries/6756754286144651779_6756564943463514627/?logTag=Crrlgz-qLEYXlv51gaU-J