Ranger-Sqoop2插件安装

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: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用户执行插件安装脚本

./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加入到默认创建出来的策略中,作为超级用户使用。

8.参考文档:

https://cwiki.apache.org/confluence/display/RANGER/Sqoop2+Plugin

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值