旗下产业: A产业/ A实习/ A计划
全国统一咨询热线:010-5367 2995
首页 > 热门文章 > 大数据分析 > 浅析spark快速大数据分析

浅析spark快速大数据分析

时间:2019-11-08来源:www.aaa-cg.com.cn点击量:作者:Sissi
时间:2019-11-08点击量:作者:Sissi



  Spark是一种流行的大数据集群计算框架,通常被大数据工程师,大数据科学家和大数据分析师用于各种用例。根据情况的不同,每种用户类型都将要求一定范围的数据访问权限。与其他像Presto这样具有内置授权框架和细粒度访问控制的大数据引擎不同,Spark可以直接访问Qubole Metastore(利用Apache Hive)中存储的所有表和资源。这不仅带来安全问题,而且阻碍了增长和企业采用。因此,我们很有必要在Qubole平台上引入新的Spark数据访问控制框架。
 

一、目标
 

  1、这些是介绍Spark访问控制框架时考虑的一些最重要的设计目标:
 

  2、细粒度的访问控制应在各种大数据引擎上统一应用。
 

  3、必须通过任何引擎查看或编辑策略,以提供一致且可预测的行为。
 

  4、支持SparkSQL访问方法,例如数据框或SQL语句。
 

  5、该框架必须易于与Hive Authorization或Apache Ranger等各种策略管理器集成。
 

二、实施细节
 

  考虑到这些要求,我们决定将Hive授权实施为我们的第一个策略管理器。Hive授权策略存储在Qubole Metastore中,该库充当共享的中央组件,并存储与Hive资源(如Hive表)相关的元数据。Spark在访问Hive表或添加和修改这些策略时尊重Qubole Metastore中存储的策略。
 

  总之,我们实现了一个SQL标准访问控制层,该层与当今的Apache Hive或Presto中的层相同。以下各节详细介绍了体系结构,并提供了一个示例说明其工作原理。
 

三、建筑
 

  授权逻辑嵌入在Spark Catalyst Framework 的分析器层内部。分析工具的规则负责解析“数据库”,“表”和“列”等实体。从计划中提取有关不同已解析实体的信息,并将其传递给Hive 授权器,后者已经具有有关用户的信息。然后,Hive授权器使用Qubole Metastore中存在的安全策略执行资源级别检查,如果用户缺少抛出HiveAccessControlException的运行特权,则该查询将停止执行查询。
 

大数据分析
 

四、限制表级访问
 

  1、假设我们有一个Hive表“工资”,其定义如下:

大数据分析
 

  出于数据治理的目的,应允许属于财务团队的用户“ Jane”访问表,并且应限制IT用户“ Robin”访问表。
 

  2、属于“ admin”角色的任何用户都可以按照以下步骤限制对该表的访问:
 

  A、创建一个新角色,并将此角色授予应该有权访问该表的用户,在这种情况下,将其授予用户“ Jane”。
 

  (用户)sql> SET ROLE admin;
 

  (用户/管理员)sql> CREATE ROLE finance;
 

  (用户/管理员)sql>向用户Jane授予资金;
 

  B、向角色“金融”提供“选择”特权。
 

  (用户/管理员)SQL>在工资单上授予资助以选择角色;
 

  3、当“简”承担通过“ SET ROLE ALL”命令授予的所有角色后访问表时,将显示以下结果–
 

大数据分析
 

  4、当“罗宾”或未获得“财务”角色的任何其他用户尝试相同的流程时,我们可以预期会发生
 

大数据分析

五、限制列和行访问
 

  可以通过视图来实现高级用例,例如限制列或行的访问。例如,假设我们有一个名为“ finance_intern”的新角色,该角色无权访问表“工资”中的“工资”列,而只能访问与“财务”部门关联的行。
 

  A、像以前一样,任何属于admin角色的用户都可以创建一个包含三列的新视图(emp_id,emp_name,dept_name),在dept_name上添加一个过滤器,并提供finance-intern角色。访问此新视图而不是基表。
 

  (用户)sql> SET ROLE admin;
 

  (用户/管理员)sql> CREATE VIEW payroll_view AS
 

  SELECT emp_id,emp_name,dept_name FROM工资单
 

  dept_name ='财务';
 

  (用户/管理员)sql> GRANT SELECT ON payroll_view TO ROLE finance_intern;
 

  B、分配了`finance_intern`角色的用户可以担任该角色并访问视图。结果如下:
 

  (用户)SQL> SET ROLE finance_intern;

大数据分析
 

  C、由于访问基表没有被授予这个角色,我们会得到一个HiveAccessControlException如果用户试图访问未经授权的数据。







 

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可先就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可推荐就业!

©2007-2021/北京漫动者教育科技有限公司版权所有
备案号:京ICP备12034770号

©2007-2022/ www.aaa-cg.com.cn 北京漫动者数字科技有限公司 备案号: 京ICP备12034770号 监督电话:010-53672995 邮箱:bjaaa@aaaedu.cc

京公网安备 11010802035704号

网站地图