文章目录
1、为什么写
说一下为什么有这个系列,笔者所在的公司长时间使用 CDH 版的 Sentry 来作为鉴权工具,遇到了不少问题,最终决定迁移到 Ranger。笔者在经历从 Sentry 迁移到 Ranger (版本信息在最后面)的整个过程中,发现网上的资料还是比较少的,比如怎么平滑迁移,能看到的资料大都是云厂商提供的能力,也没有披露细节。
所以希望能够将这个过程中积累的一些经验和大家进行分享,无论是需要了解 Sentry 或者 Ranger 的原理,还是面临同样的迁移场景,应该都对大家有一定借鉴意义,能对整个鉴权体系有一个更清晰的认识,同时对自己来说也算是总结记录,年纪大了后记性不好容易忘。
2、撰写顺序
🎉🎉本系列设计的分享内容大致按如下顺序进行🎉🎉
2.1、Sentry 的鉴权原理
不仅仅涉及到 Sentry 本身的原理,也涉及到周边组件的交互原理细节,以及对应的核心代码的定位剖析,包括不限于 Hive、HDFS、Spark、Presto。Sentry 和其他组件的交互其实就两块儿,一个是权限数据是怎么同步的,一个是 Sentry 怎么接管鉴权的。
2.2、Sentry 做过的优化
Sentry 在生产中遇到了什么问题,以及对应的解决方案是什么的。这里其实也就得到了为什么要从 Sentry 迁移到 Ranger 的理由。再加上毕竟 Sentry 也不再维护了,有什么问题都要自己尝试修修补补。
2.3、Sentry 到 ranger 的迁移
前期参考过 cloudera 提供的迁移工具,网上能找到的资料基本上也是这种方式。后续笔者实现的迁移的方案,能实现丝滑的灰度迁移。
2.4、Ranger 的坑和一些优化
Ranger 在使用中也遇到了很多不少问题,也会和大家分享这部分的实践经验。
3、行文偏好
笔者对安装步骤、使用方式等内容放的比重会比较轻,因为这部分内容,在实践的时候再去查阅资料就好了。重点会放在实践经验分享、结合代码的原理分析等方面。内容丰富度上尽量有代码、有图,尽量排版看着舒服些。
4、最后
笔者从业经验有限,可能有理解不到位的地方,大家可以提出尽情提出意见建议,笔者会虚心请教探讨。(叠甲🐶)
这是笔者开的第一个大系列的坑,尽量不鸽~🤭
使用的版本:
* sentry(CDH 版):1.5.1-cdh5.14.2
* ranger(Apache 版):2.4.0