Ranger-Sqoop2插件安裝弄屡,基于Ranger版本1.0.0,支持Sqoop2版本1.99.7题禀。
1.獲取安裝包
scp root@10.43.159.11:/home/compile/ranger/target/ranger-1.0.0-SNAPSHOT-sqoop-plugin.tar.gz .
2.解壓
tar -zxvf ranger-1.0.0-SNAPSHOT-sqoop-plugin.tar.gz
3.進入ranger-1.0.0-SNAPSHOT-sqoop-plugin,修改安裝配置文件install.properties
主要修改如下配置項:
#拉取Ranger策略的地址和服務(wù)名稱
POLICY_MGR_URL=http://10.43.159.11:6080
REPOSITORY_NAME=sqoopdev
#Kylin組件安裝的目錄
COMPONENT_INSTALL_DIR_NAME=/home/sqoop/sqoop-1.99.7-bin-hadoop200
#審計日志保存地址
XAAUDIT.SOLR.ENABLE=true
XAAUDIT.SOLR.URL=http://10.43.159.9:8983/solr/ranger_audits
#Sqoop組件安裝的用戶和用戶組
CUSTOM_USER=sqoop
CUSTOM_GROUP=hadoop
4.使用root用戶執(zhí)行插件安裝腳本
./enable-sqoop-plugin.sh
5.重啟sqoop2組件
sqoop2-sever stop
sqoop2-sever start
6.驗證策略生效
重啟后可以在sqoop的服務(wù)器上面看到如下文件:
/etc/ranger/sqoopdev/policycache/sqoop_sqoopdev.json
在Ranger Web頁面的Audit下面的Plugins查看插件狀態(tài)膀捷。
Ranger頁面創(chuàng)建sqoop服務(wù):
Service Name=sqoopdev
Username=sqoop
Sqoop URL=http://10.43.159.11:12000
用戶名最好填寫安裝用戶的名字,此用戶默認對sqoop的所有資源有訪問權(quán)限迈嘹。
點擊TestConnection成功后,保存即可。
sqoopdev需要和上面插件安裝的REPOSITORY_NAME名稱一致秀仲,
Sqoop集成ranger插件,查看conf/sqoop.properties融痛,應(yīng)該有如下配置:
org.apache.sqoop.security.authorization.validator=org.apache.ranger.authorization.sqoop.authorizer.RangerSqoopAuthorizer
Sqoop插件集成開啟Ranger,還將conf目錄加入到sqoop啟動的classpath中:
在bin/sqoop.sh腳本中的
function sqoop_server_classpath_set里面
新增如下配置:
CLASSPATH="$CLASSPATH":"/home/sqoop/sqoop2/sqoop-1.99.7-bin-hadoop200/conf"
7.開啟Kerberos之后的插件問題
7.1
Sqoop2開啟Kerberos安全模式后神僵,Ranger Sqoop2插件拉取策略會失斞闼ⅰ:
2018-09-05 09:34:58,942 [http-bio-6080-exec-6] ERROR org.apache.ranger.rest.ServiceREST (ServiceREST.java:2784) - getSecureServicePoliciesIfUpdated(sqoopdev, 4) failed as User doesn't have permission to download Policy
2018-09-05 09:34:58,947 [http-bio-6080-exec-6] INFO org.apache.ranger.common.RESTErrorUtil (RESTErrorUtil.java:345) - Request failed. loginId=sqoop, logMessage=User doesn't have permission to download policy
解決方法:
在Ranger Admin的Web頁面修改sqoopdev服務(wù),
在Add New Configurations添加如下配置項:
policy.download.auth.users=sqoop
sqoop用戶為策略拉取用戶保礼,一般是Sqoop2組件用了啟動Kerberos的用戶沛励。
7.2
在已經(jīng)使用了Ranger權(quán)限控制之后,再來開啟Kerberos,
需要重新創(chuàng)建sqoopdev服務(wù)炮障,否則使用原來的服務(wù)TestConnction失敗目派,
這是由于開啟Kerberos之后,RangerAdmin使用rangerlookup/hostname@ZDH.COM去訪問服務(wù),
在新建服務(wù)的時候會把rangerlookup加入到默認創(chuàng)建出來的策略中胁赢,作為超級用戶使用企蹭。
8.參考文檔:
https://cwiki.apache.org/confluence/display/RANGER/Sqoop2+Plugin