您好,登錄后才能下訂單哦!
本文要點(diǎn)不在于配置,需要學(xué)習(xí)怎么配置請(qǐng)看https://blog.51cto.com/smilemask/2043930
1.add jar無(wú)法使用,原因是因?yàn)閟entry認(rèn)為引用第三方j(luò)ar包可以繞過權(quán)限來(lái)獲取到你想要的數(shù)據(jù),那么真實(shí)需要引用如何解決?cdh 提供一個(gè)參數(shù)hive.reloadable.aux.jars.path,該參數(shù)已經(jīng)替換原來(lái)aux jar path,在你上傳到hiveserver2后指定lib目錄下,如果有包名的重復(fù),可以使用reload命令重新加載。那么如何開發(fā)需要測(cè)試怎么辦呢?通過創(chuàng)建一個(gè)不存在的函數(shù)繞過,舉例,我想引用一個(gè)json-serde包,在hql里執(zhí)行CREATE FUNCTION testfc AS 'test' using jar 'hdfs:///tmp/json-serde_jar_file.jar'; 這句話會(huì)報(bào)錯(cuò),但是會(huì)把你的jar包引用到hs2中,然后執(zhí)行sql語(yǔ)句即可,需要注意grant uri授權(quán)
2.開啟hdfs sentry同步?;旧蟞ive開啟sentry后也會(huì)開啟次選項(xiàng),這樣權(quán)限在sql層面和文件系統(tǒng)層面都得到了安全限制。開啟后,你指定的同步目錄比如/user/hive/warehouse 下的庫(kù)或者表會(huì)變成hive:hive 771 ,然后用hadoop fs getfacl查看可以得到這個(gè)庫(kù)或者表一些特殊用戶權(quán)限,這個(gè)權(quán)限和hive或者impala上設(shè)置的權(quán)限就一樣了。當(dāng)sentry退回后,用戶和組權(quán)限會(huì)變回原來(lái)的設(shè)置。值得注意的是,如果是在hdfs新增的數(shù)據(jù),那么還是開啟hdfs同步后的權(quán)限,hive:hive 771,這個(gè)需要額外處理,因?yàn)橛脩舳紵o(wú)法查看這個(gè)數(shù)據(jù)。如果是一些外部表路徑比如/tmp/aaa/database/table ,在你設(shè)置額外同步目錄/tmp/aaa時(shí),aaa目錄并不會(huì)有771 hive:hive權(quán)限,到庫(kù)層級(jí)才會(huì)變成那樣,原因是hive里面有默認(rèn)配置的數(shù)倉(cāng)目錄
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。