CDH大数据平台集成Apache Ranger安全管理框架解决方案

本文主要是介绍CDH大数据平台集成Apache Ranger安全管理框架解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


一、总体解决方案

    基于apache Ranger开源项目源代码进行二次开发,实现支持CDH集成的Ranger安全管理系统。另外需要在CDH管理界面上配置部分参数。

    本文档经过测试验证的CDH和ranger版本:

CDH版本:6.3.2

Apache Ranger版本:2.0.0

二、ranger插件公共模块agent-common修改

1、配置文件处理

问题描述:

CDH在重启组件服务时为组件服务独立启动进程运行,动态生成运行配置文件目录和配置文件,ranger插件配置文件部署到CDH安装目录无法被组件服务读取到。

解决办法:

基于ranger 源代码二次开发,在agents-common模块org.apache.ranger.plugin.service

.RangerBasePlugin类init()方法内部开始处插入copyConfigFile()方法调用,并定义copyConfigFile()方法,实现复制ranger配置文件到CDH组件服务的运行配置文件目录:

    private void copyConfigFile() {String serviceHome = "CDH_" + this.serviceType.toUpperCase() + "_HOME";if ("CDH_HDFS_HOME".equals(serviceHome)) {serviceHome = "CDH_HADOOP_HOME";}serviceHome = System.getenv(serviceHome);File dir = new File(serviceHome);String userDir = System.getProperty("user.dir");File destDir = new File(userDir);IOFileFilter regexFileFilter = new RegexFileFilter("ranger-.+xml");Collection<File> configFileList = FileUtils.listFiles(dir, regexFileFilter, TrueFileFilter.INSTANCE);for (File rangerConfigFile : configFileList) {try {FileUtils.copyFileToDirectory(rangerConfigFile, destDir);} catch (IOException e) {LOG.error("Copy ranger config file failed.", e);}}}

2、enable-agent.sh配置

问题描述

  • hdfs和yarn插件安装部署后,插件jar包会部署到组件安装目录的share/hadoop/hdfs/lib子目录下,启动hdfs或yarn运行时加载不到这些jar包,会报ClassNotFoundException: Class org.apache.ranger.authorization.yarn.authorizer.RangerYarnAuthorizer not found
  • kafka插件安装部署后,启动运行时会从插件jar包所在目录加载ranger插件配置文件,读不到配置文件会报错addResourceIfReadable(ranger-kafka-audit.xml): couldn't find resource file location

解决办法

修改agents-common模块enable-agent.sh脚本文件:

HCOMPONENT_LIB_DIR=${HCOMPONENT_INSTALL_DIR}/share/hadoop/hdfs/lib

修改为:

HCOMPONENT_LIB_DIR=${HCOMPONENT_INSTALL_DIR}
elif [ "${HCOMPONENT_NAME}" = "kafka" ]; thenHCOMPONENT_CONF_DIR=${HCOMPONENT_INSTALL_DIR}/config

修改为:

elif [ "${HCOMPONENT_NAME}" = "kafka" ]; thenHCOMPONENT_CONF_DIR=${PROJ_LIB_DIR}/ranger-kafka-plugin-impl

以上修改需重新打包ranger,然后安装部署各插件。

三、hive插件集成问题

hive插件需安装在所有hiveServer2节点服务器上

1hive环境变量文件修改

解决hive客户端访问时报如下错误的问题: 

Error: Could not open client transport with JDBC Uri: 
jdbc:hive2://****:10000/testdb: Failed to open new session: 
java.lang.IllegalArgumentException: Cannot modify hive.query.redaction.rules at 
runtime. It is not in list of params that are allowed to be modified at runtime 
(state=08S01,code=0)Error: Could not open client transport with JDBC Uri: 
jdbc:hive2://****:10000/testdb: Failed to open new session: 
java.lang.IllegalArgumentException: Cannot modify hive.exec.query.redactor.hooks atruntime. It is not in list of params that are allowed to be modified at runtime 
(state=08S01,code=0)

 手工修改/opt/cloudera/parcels/CDH/lib/hive/conf/目录下的hive环境变量文件hive-env.sh,注释删除export HIVE_OPTS配置行

2hive版本兼容性问题

Apache Ranger 2.0.0版本对应hive版本3.1.0,CDH 6.3.2版本对应hive版本2.1.1,不兼容,hive server启动会报错

解决办法:

把Apache Ranger 1.2.0版本hive插件代码hive-agent拷贝到Apache Ranger 2.0.0版本hive-agent,修改Apache Ranger 2.0.0根目录pom.xml中的hive版本号为2.1.1:

<hive.version>2.1.1</hive.version>

重新编译打包Apache Ranger 2.0.0版本并安装hive插件

四、HDFS插件集成

HDFS插件需安装在所有namenode节点服务器上

参数配置

在CDH管理界面配置HDFS参数,确保dfs.permissions参数已勾选,

编辑“hdfs-site.xml 的 NameNode 高级配置代码段”参数配置,新增配置:

dfs.namenode.inode.attributes.provider.class=org.apache.ranger.authorization.hadoop.RangerHdfsAuthorizer

五、YARN插件集成

YARN插件安装在所有ResourceManager节点服务器上

参数配置

在CDH管理界面配置YARN参数,配置“yarn-site.xml ResourceManager 高级配置代码段”,新增参数配置:

yarn.authorization-provider=org.apache.ranger.authorization.yarn.authorizer.RangerYarnAuthorizer

六、kafka 插件集成

Kafka插件安装在所有Broker节点服务器上

参数配置

在CDH管理界面配置Kafka参数,配置“kafka.properties Kafka Broker 高级配置代码段”,新增参数配置:

authorizer.class.name=org.apache.ranger.authorization.kafka.authorizer.RangerKafkaAuthorizer

七、其它插件的集成待研究和测试

这篇关于CDH大数据平台集成Apache Ranger安全管理框架解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/906118

相关文章

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi