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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,314评论 19 139
  • 1、运行环境 主机IP 主机名 2、配置主机名(分别在五台机器上执行) hostname +主机名例如: h...
    献给记性不好的自己阅读 8,926评论 0 6
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,040评论 6 342
  • 一、Nagios简介 Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows、Linux和Uni...
    1b3bd36d9d21阅读 12,541评论 3 13
  • 阿禤永远忘不了16岁的每一个日夜,那是她23年的时光里最澄澈的一段。 她读书读得早,所有女孩该有的心思她比别人早经...
    一颗软饭阅读 806评论 0 0