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策略的地址和服务名称POLICY_MGR_URL=http://10.43.159.11:6080REPOSITORY_NAME=sqoopdev#Kylin组件安装的目录COMPONENT_INSTALL_DIR_NAME=/home/sqoop/sqoop-1.99.7-bin-hadoop200#审计日志保存地址XAAUDIT.SOLR.ENABLE=trueXAAUDIT.SOLR.URL=http://10.43.159.9:8983/solr/ranger_audits#Sqoop组件安装的用户和用户组CUSTOM_USER=sqoop CUSTOM_GROUP=hadoop
4.使用root用户执行插件安装脚本
./enable-sqoop-plugin.sh
5.重启sqoop2组件
sqoop2-sever stop
sqoop2-sever start
6.验证策略生效
重启后可以在sqoop的服务器上面看到如下文件:
/etc/ranger/sqoopdev/policycache/sqoop_sqoopdev.json
在Ranger Web页面的Audit下面的Plugins查看插件状态。
Ranger页面创建sqoop服务:
Service Name=sqoopdev
Username=sqoop
Sqoop URL=http://10.43.159.11:12000
用户名最好填写安装用户的名字,此用户默认对sqoop的所有资源有访问权限。
点击TestConnection成功后,保存即可。
sqoopdev需要和上面插件安装的REPOSITORY_NAME名称一致,
Sqoop集成ranger插件,查看conf/sqoop.properties,应该有如下配置:
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服务,
在Add New Configurations添加如下配置项:
policy.download.auth.users=sqoop
sqoop用户为策略拉取用户,一般是Sqoop2组件用了启动Kerberos的用户。
7.2
在已经使用了Ranger权限控制之后,再来开启Kerberos,
需要重新创建sqoopdev服务,否则使用原来的服务TestConnction失败,
这是由于开启Kerberos之后,RangerAdmin使用rangerlookup/hostname@ZDH.COM去访问服务,
在新建服务的时候会把rangerlookup加入到默认创建出来的策略中,作为超级用户使用。
作者:木木与呆呆
链接:https://www.jianshu.com/p/3a2f9fa453f7
共同学习,写下你的评论
评论加载中...
作者其他优质文章