大數據權限管理工具Ranger 2.0.0的安裝部署到使用測試(踩坑詳情)

這篇文章寫之前,要先感謝博客園的一位博主,能一直幫助我在安裝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好在哪兒

  1. sentry的好處都有
  2. 更加豐富的組件
  3. 支持審計
  4. 提供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安裝包

  1. 我是直接在官網下的,http://ranger.apache.org/download.html,下載自己需要的版本。(建議使用這種,下載快一點)
  2. 也可以在線下載(需要先安裝wget命令)
wget http://mirrors.tuna.tsinghua.edu.cn/apache/ranger/2.0.0/apache-ranger-2.0.0.tar.gz
  1. 上傳到/opt/software(自己放軟件的目錄),並進行解壓到/opt/module/(自己想要的位置)
 tar -zxvf apache-ranger-2.0.0.tar.gz -C /opt/module
  1. 修改ranger的當前目錄下pom文件內的hadoop和hive版本號
vim pom.xml

在這裏插入圖片描述
其他版本各位隨意,儘量少改,容易出錯

3、下載maven

  1. 因爲是編譯安裝,自然要使用到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
  1. 解壓後修改環境變量及內存
# 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
  1. 修改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、開始編譯

  1. 進行buile(跳過測試類)
mvn clean compile package assembly:assembly install -DskipTests -Drat.skip=true

這個過程整體是比較慢的,順利的話可能1小時左右,也有可能4小時以上,哈哈,還有是如果不動了,千萬別以爲卡住了,是因爲它在下載一些jar包或者依賴,鏡像是國外的,所以比較慢,只需要耐心等待就好了,當然你ctrl + C 掉,再重新編譯也是沒問題的

  1. 我遇到的第一個問題
    在這裏插入圖片描述
    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的版本號,其餘的沒做修改。

  2. 我遇到的第二個問題
    在這裏插入圖片描述

[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

  1. 若編譯過程中出現缺少jar包的情況,可能下載不了,需要手動自動添加;
  2. 最後編譯成功後的界面
    在這裏插入圖片描述
    我花了3天時間,終於編譯好了,開心
  3. 檢查當前目錄下的target目錄,會有一堆tar.gz包(看到這些,說明你編譯成功了)
    在這裏插入圖片描述

5、安裝Ranger控制檯:Ranger-admin

  1. 安裝Ranger控制檯:Ranger-admin,需要所使用root用戶,ranger-admin依賴mysql、JDK(安裝mysql和JDK,各位自己百度吧)
  2. 在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
  1. 使用root用戶執行如下腳本,安裝RangerAdmin
./setup.sh
  1. 啓動ranger-admin
ews/ranger-admin-services.sh start
  1. web登錄驗證是否安裝
http://hadoop101:6080/index.html#!/policymanager/resource
用戶名:admin 密碼:Admin123

在這裏插入圖片描述

  1. 安裝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(改成自己的目錄)
  1. 啓動ranger Usersync
 ./setup.sh
./ranger-usersync-services.sh

注意:logdir 文件夾需要自己創建,不然初始化可能會報錯。
驗證是否安裝成功:在Ranger控制檯可以看到users中同步的用戶信息。
在這裏插入圖片描述

6、安裝ranger插件(安裝ranger-hdfs)

  1. 使用root用戶,解壓
tar -zxvf ranger-2.0.0-hdfs-plugin.tar.gz
  1. 修改配置文件
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
  1. 啓動Ranger HDFS Plugin:
./enable-hdfs-plugin.sh
  1. 驗證安裝成功步驟
  • 會發現hadoop安裝目錄下etc/hadoop下有ranger-hdfs的xml文件
    在這裏插入圖片描述
  • 會發現share/hadoop/hdfs/lib 下有ranger-hdfs開頭的軟連接
    在這裏插入圖片描述
  • 啓動hdfs會發現/etc/ranger/hadoopdev/policycache下有策略緩存文件
    在這裏插入圖片描述
  • 然後在ranger-admin的audit–>plugin status 查看狀態,200即爲安裝成功
  1. 登錄ranger-admin,點擊HDFS plugin 添加按鈕,添加服務
    在這裏插入圖片描述
  2. 然後點擊TestConnection,成功即可保存。1分鐘後查看plugin,狀態爲200,說明hdfs安裝成功
    在這裏插入圖片描述

7、測試是否可用(HDFS服務測試)

hadoop版本需要和之前安裝Ranger Pom文件中配置的一樣。我這裏是3.1.3

  1. linux環境下添加用戶
useradd ranger_zy
gpasswd -a ranger_zy hadoop
  1. 如果可以同步,直接不用在ranger上添加此用戶,但是如果不能同步需要添加(我的需要自己在ranger上同步)
  2. 在沒有添加ranger之前進行測試,切換到ranger_zy用戶
su ranger_zy
hdfs dfs -ls /

測試ranger_zy是否可以對/test目錄進行寫操作切換到ranger_zy用戶

hdfs dfs -put /opt/module/111.txt /test(自己搞個文件測試一下上傳)
//結果應該是權限問題不能上上傳
  1. 在添加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

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