首頁>Club>
7
回覆列表
  • 1 # 小小叭叭說

    《如何使用Sentry為Solr賦權》以及《使用命令列建立collection時Sentry給Solr賦權的問題》中,對Solr與Sentry的整合授權進行過介紹,並透過命令列的方式建立collection,以及透過命令列的方式對collection的賦權進行操作並測試。我們知道在Hive/Impala中使用Sentry時,既可以透過命令列建立相關角色並賦權,也可以在Hue中進行相關操作。對於Solr的賦權其實也是一樣的,CDH同時支援在Hue中與命令列操作賦權,本文Fayson主要介紹如何在Hue中使用Sentry為Solr賦權。

    內容概述:

    1.啟用Solr的Sentry賦權

    2.其他前置準備

    3.在Hue中建立collection以及匯入樣例資料

    4.Hue中對Solr的collection賦權測試

    5.總結

    測試環境:

    1.CM5.14.3/CDH5.14.2

    2.作業系統版本為Redhat7.3

    3.採用root使用者進行操作

    前置條件

    1.叢集已啟用Kerberos

    2.Hue已整合Solr與Sentry

    2.啟用Solr的Sentry賦權

    1.首先如果要啟用Solr的Sentry賦權,Solr服務必須啟用Kerberos認證,所以請確保你的CDH叢集已經啟用了Kerberos。

    2.然後對Solr服務進行以下配置

    儲存配置並按照要求重啟服務。

    3.確保Hue已經整合Sentry與Solr服務。

    儲存配置並按照要求重啟服務。

    3.其他前置準備

    確保你學會了在Windows客戶端使用瀏覽器訪問Kerberos的CDH的一些Hadoop服務介面。因為當對Solr服務啟用了Kerberos後,Solr服務不像YARN或HDFS的介面可以選擇是否對介面訪問啟用Kerberos認證,預設Solr Web UI即採用了Kerberos了認證。如果你不會,請參考Fayson之前的文章《如何在Kerberos下使用Solr》和《Windows Kerberos客戶端配置並訪問CDH》

    4.在Hue中建立collection以及匯入樣例資料

    1.這裡我們首先準備一個8個欄位的csv檔案,一共10行,使用逗號分隔,用來匯入Solr並實現全文索引。並將該檔案put到一個hdfs目錄。

    2.注意:因為我們開啟了Sentry,在建立collection的時候我們需要使用solr使用者。否則是沒有許可權建立collection的。這裡跟在Hive/Impala中使用Sentry時,使用hive作為管理員使用者是相似的。我們在Hue中建立一個solr的group,以及solr使用者,然後用solr使用者登入Hue,建立過程略。

    3.使用solr使用者登入hue後,選擇“indexes”。

    注意還要輸入collection的名字,這裡我們輸入“collection1”,選擇主鍵以及其他欄位,這裡我們選擇field_1也即第一個欄位為主鍵。

    這裡建立collection以及匯入資料成功

    4.使用solr使用者登入Kerberos,查詢collection1確認資料都已經匯入成功。

    (可左右滑動)

    5.Hue中對Solr的collection賦權測試

    1.使用solr使用者登入Hue中,建立admin角色,並對solr使用者組分配所有許可權。

    選擇security模組

    建立solr_admin角色,並賦予所有許可權。

    2.使用fayson使用者登入Hue進行建立collection測試。

    報錯,顯示沒有許可權

    3.在Windows客戶端使用fayson使用者登入Kerberos,訪問Solr Web UI

    顯示一直在loading,無法載入

    4.使用solr使用者登入Hue,給fayson賦予collection的update許可權。

    5.使用fayson使用者登入Hue再次建立collection。

    建立成功,說明Sentry給fayson使用者組分配collection的update許可權後,fayson使用者可以建立collection

    6.使用fayson使用者分別檢視collection1和collection2的資料。

    檢視collection2的資料時報錯沒有許可權,因為我們沒有給fayson使用者組分配collection的query許可權。

    檢視collection1時成功,說明使用者組即使沒分配collection的query許可權,但是依舊可以檢視由自己建立的collection。

    7.再次使用fayson使用者登入Windows下的Kerberos客戶端,然後訪問Solr的Web UI

    依舊顯示一直在loading,即如果該使用者只有collection的update許可權,Solr的Web UI無法檢視。

    8.透過Solr使用者登入Hue,將fayson使用者組的許可權改為所有collection都有query許可權。

    9.再次使用fayson使用者登入Hue檢視collection2的資料。

    可以查詢collection2的資料,說明授權query許可權生效

    10.再次使用fayson使用者登入Windows的Kerberos客戶端,然後開啟Solr的Web UI

    發現可以登入Solr的Web UI,也可以查詢collection中的資料。

    6.總結

    1.使用Hue可以介面化配置Solr的Sentry許可權,從而對collection進行許可權管理,主要是query和update。

    2.如果對某個使用者只賦予update許可權,則該使用者可以建立collection,但是依舊無法查詢collection。

    3.Solr的Sentry的許可權不僅適用於Hue查詢collection資料,也適用於Solr的Web UI。即Sentry的許可權控制是全方位的。

    4.如果要訪問Solr的Web UI,必須在Windows客戶端配置Kerberos並登入,使用火狐瀏覽器訪問。具體請參考《如何在Kerberos下使用Solr》和《Windows Kerberos客戶端配置並訪問CDH》。

    5.如果是在Solr中使用Sentry許可權管理,CDH叢集必須啟用Kerberos,同時Solr服務也需要啟用Kerberos認證。

    6.一旦對solr啟用Sentry授權以後,solr使用者就是管理員,一切管理員操作都需要使用solr使用者來操作,我們在Hue中也同時要建立solr使用者與solr組,這個與我們在Hive/Impala中使用Sentry時,hive使用者是管理員原理是一樣的。

  • 中秋節和大豐收的關聯?
  • 你覺得在LOL中,最適合四保一的AD是哪個英雄?