旗下產(chǎn)業(yè): A產(chǎn)業(yè)/?A實(shí)習(xí)/?A計(jì)劃
全國統(tǒng)一咨詢熱線:010-5367 2995
首頁 > 熱門文章 > 大數(shù)據(jù)分析 > 淺析spark快速大數(shù)據(jù)分析

淺析spark快速大數(shù)據(jù)分析

時(shí)間:2019-11-08來源:mwtacok.cn點(diǎn)擊量:作者:Sissi
時(shí)間:2019-11-08點(diǎn)擊量:作者:Sissi



  Spark是一種流行的大數(shù)據(jù)集群計(jì)算框架,通常被大數(shù)據(jù)工程師,大數(shù)據(jù)科學(xué)家和大數(shù)據(jù)分析師用于各種用例。根據(jù)情況的不同,每種用戶類型都將要求一定范圍的數(shù)據(jù)訪問權(quán)限。與其他像Presto這樣具有內(nèi)置授權(quán)框架和細(xì)粒度訪問控制的大數(shù)據(jù)引擎不同,Spark可以直接訪問Qubole Metastore(利用Apache Hive)中存儲(chǔ)的所有表和資源。這不僅帶來安全問題,而且阻礙了增長和企業(yè)采用。因此,我們很有必要在Qubole平臺上引入新的Spark數(shù)據(jù)訪問控制框架。
 

一、目標(biāo)
 

  1、這些是介紹Spark訪問控制框架時(shí)考慮的一些最重要的設(shè)計(jì)目標(biāo):
 

  2、細(xì)粒度的訪問控制應(yīng)在各種大數(shù)據(jù)引擎上統(tǒng)一應(yīng)用。
 

  3、必須通過任何引擎查看或編輯策略,以提供一致且可預(yù)測的行為。
 

  4、支持SparkSQL訪問方法,例如數(shù)據(jù)框或SQL語句。
 

  5、該框架必須易于與Hive Authorization或Apache Ranger等各種策略管理器集成。
 

二、實(shí)施細(xì)節(jié)
 

  考慮到這些要求,我們決定將Hive授權(quán)實(shí)施為我們的第一個(gè)策略管理器。Hive授權(quán)策略存儲(chǔ)在Qubole Metastore中,該庫充當(dāng)共享的中央組件,并存儲(chǔ)與Hive資源(如Hive表)相關(guān)的元數(shù)據(jù)。Spark在訪問Hive表或添加和修改這些策略時(shí)尊重Qubole Metastore中存儲(chǔ)的策略。
 

  總之,我們實(shí)現(xiàn)了一個(gè)SQL標(biāo)準(zhǔn)訪問控制層,該層與當(dāng)今的Apache Hive或Presto中的層相同。以下各節(jié)詳細(xì)介紹了體系結(jié)構(gòu),并提供了一個(gè)示例說明其工作原理。
 

三、建筑
 

  授權(quán)邏輯嵌入在Spark Catalyst Framework 的分析器層內(nèi)部。分析工具的規(guī)則負(fù)責(zé)解析“數(shù)據(jù)庫”,“表”和“列”等實(shí)體。從計(jì)劃中提取有關(guān)不同已解析實(shí)體的信息,并將其傳遞給Hive 授權(quán)器,后者已經(jīng)具有有關(guān)用戶的信息。然后,Hive授權(quán)器使用Qubole Metastore中存在的安全策略執(zhí)行資源級別檢查,如果用戶缺少拋出HiveAccessControlException的運(yùn)行特權(quán),則該查詢將停止執(zhí)行查詢。
 

大數(shù)據(jù)分析
 

四、限制表級訪問
 

  1、假設(shè)我們有一個(gè)Hive表“工資”,其定義如下:

大數(shù)據(jù)分析
 

  出于數(shù)據(jù)治理的目的,應(yīng)允許屬于財(cái)務(wù)團(tuán)隊(duì)的用戶“ Jane”訪問表,并且應(yīng)限制IT用戶“ Robin”訪問表。
 

  2、屬于“ admin”角色的任何用戶都可以按照以下步驟限制對該表的訪問:
 

  A、創(chuàng)建一個(gè)新角色,并將此角色授予應(yīng)該有權(quán)訪問該表的用戶,在這種情況下,將其授予用戶“ Jane”。
 

  (用戶)sql> SET ROLE admin;
 

  (用戶/管理員)sql> CREATE ROLE finance;
 

  (用戶/管理員)sql>向用戶Jane授予資金;
 

  B、向角色“金融”提供“選擇”特權(quán)。
 

  (用戶/管理員)SQL>在工資單上授予資助以選擇角色;
 

  3、當(dāng)“簡”承擔(dān)通過“ SET ROLE ALL”命令授予的所有角色后訪問表時(shí),將顯示以下結(jié)果–
 

大數(shù)據(jù)分析
 

  4、當(dāng)“羅賓”或未獲得“財(cái)務(wù)”角色的任何其他用戶嘗試相同的流程時(shí),我們可以預(yù)期會(huì)發(fā)生
 

大數(shù)據(jù)分析

五、限制列和行訪問
 

  可以通過視圖來實(shí)現(xiàn)高級用例,例如限制列或行的訪問。例如,假設(shè)我們有一個(gè)名為“ finance_intern”的新角色,該角色無權(quán)訪問表“工資”中的“工資”列,而只能訪問與“財(cái)務(wù)”部門關(guān)聯(lián)的行。
 

  A、像以前一樣,任何屬于admin角色的用戶都可以創(chuàng)建一個(gè)包含三列的新視圖(emp_id,emp_name,dept_name),在dept_name上添加一個(gè)過濾器,并提供finance-intern角色。訪問此新視圖而不是基表。
 

  (用戶)sql> SET ROLE admin;
 

  (用戶/管理員)sql> CREATE VIEW payroll_view AS
 

  SELECT emp_id,emp_name,dept_name FROM工資單
 

  dept_name ='財(cái)務(wù)';
 

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

  B、分配了`finance_intern`角色的用戶可以擔(dān)任該角色并訪問視圖。結(jié)果如下:
 

  (用戶)SQL> SET ROLE finance_intern;

大數(shù)據(jù)分析
 

  C、由于訪問基表沒有被授予這個(gè)角色,我們會(huì)得到一個(gè)HiveAccessControlException如果用戶試圖訪問未經(jīng)授權(quán)的數(shù)據(jù)。







 

預(yù)約申請免費(fèi)試聽課

填寫下面表單即可預(yù)約申請免費(fèi)試聽!怕錢不夠?可先就業(yè)掙錢后再付學(xué)費(fèi)! 怕學(xué)不會(huì)?助教全程陪讀,隨時(shí)解惑!擔(dān)心就業(yè)?一地學(xué)習(xí),可推薦就業(yè)!

?2007-2021/北京漫動(dòng)者教育科技有限公司版權(quán)所有
備案號:京ICP備12034770號

?2007-2022/ mwtacok.cn 北京漫動(dòng)者數(shù)字科技有限公司 備案號: 京ICP備12034770號 監(jiān)督電話:010-53672995 郵箱:bjaaa@aaaedu.cc

京公網(wǎng)安備 11010802035704號

網(wǎng)站地圖