0741-什么是Apache Ranger - 1

2020-02-10 10:15:35 浏览数 (1)

作者:Eric Lin (林晨辉), Cloudera高级售后技术支持工程师。毕业于Monash大学计算机科学, Sir John Monash的奖学金获得者。曾就业于数据收集公司如Hitwise(现为Experian的子公司)和Effective Measure,担任高级工程师,负责设计,开发和管理用于采集, 处理和报告网络数据的平台(基于PHP,Java和CDH)。现任职Cloudera, 担任高级售后技术支持工程师,主要擅长解决在CDH生态系统中出现的各种疑难杂症。

正如我之前在其他文章中提到的那样,Cloudera允许我们在1年里花几周时间用于自学,至少对于我们Support部门是这样的。我们可以选择想学习的任何主题,唯一需要确保的是我们所学到的东西可以为我们的日常工作提供帮助。上次我选择了Spark,然后在内部分享了一下如何使用自己的笔记本电脑在Jetbrains IDE中开发Spark应用程序,而不需要搭建一个Hadoop集群。这次我选择了Ranger,因为自从Cloudera与Hortonworks合并后,Ranger已确认会取代Sentry。

在开始学习之前,我自己试图搜集一些Ranger相关的资料,但是我发现实际上找不到太多资源。我们订阅了O'Reilly,但是没有Ranger相关的图书和视频。从Google可以搜到一些帖子,但都是一些非常high level的信息,并且一篇文章就描述完毕。所以我决定在完成自己的培训并分享给其他人以后,我将写一个Ranger系列的文章。

那么让我们开始吧。首先我想对Sentry和Ranger进行一些high level的比较,以了解为什么Sentry会被弃用然后被Ranger替代。我假定你了解Hadoop,CDH或HDP生态的基础知识,以继续本文。

让我们看一下Sentry可以提供什么。根据Sentry的官方文档,Apache Sentry是Hadoop之上的基于角色的细粒度授权模块。它为在Hadoop集群(特别是CDH)上运行的经过身份验证的用户和应用程序提供数据访问授权。目前Sentry已支持Apache Hive,Apache Solr,Apache Kafka,Apache Impala和HDFS(仅限于Hive表的HDFS数据权限同步)。

Sentry是基于角色的,所以你在使用Sentry时你需要创建Role,然后通过Role映射到OS或者AD中的Group,然后再映射到访问Hadoop的最终用户。你可以使用Sentry来限制用户对DB,TABLE,COLUMN或URI的访问,权限设定可以通过Hive或Impala的命令行接口执行Sentry相关命令来实现,有关这些命令的更多详细信息,请参见Cloudera的Sentry文档。

现在,让我们看一下Ranger的功能。同样,根据Apache Ranger的官方文档,Apache Ranger是一个框架,用于在Hadoop平台上启用,监控和管理全面的数据安全性。Apache Ranger具有以下目标:

  • 集中式安全管理,可以界面化或使用REST API来管理所有与安全相关的任务。
  • 通过统一的管理工具对Hadoop组件/工具的操作进行细粒度的授权。
  • 跨所有Hadoop组件标准化授权方法。
  • 对不同授权方法的增强支持–基于角色的访问控制,基于属性的访问控制等。
  • 对Hadoop的所有组件的用户访问和管理操作(与安全相关的)进行集中式审计。

如你所见,除了安全授权之外,Apache Ranger还支持人性化的Web UI,REST API和Auditing等,这些都是Sentry所缺少的。以下我们看看Sentry和Ranger的具体区别,以了解为什么Ranger是CDH的未来选择,即CDP。

如你所见,Apache Ranger的功能更多,而且支持的Hadoop组件也更丰富,除了目前尚不支持Impala,但工作已经在进行中,该功能将会集成到未来的CDP版本中。

原文参考:

代码语言:javascript复制
https://www.ericlin.me/2020/01/introduction-to-apache-ranger-part-i/

0 人点赞