本文介紹如何集成HBase到Ranger,以及如何配置權限。

前提條件

已創建選擇了HBase和Ranger服務的集群,創建集群詳情請參見創建集群

操作步驟

  1. 進入集群服務頁面。
    1. 登錄EMR on ECS控制臺
    2. 在頂部菜單欄處,根據實際情況選擇地域和資源組
    3. 單擊目標集群操作列的集群服務
  2. Ranger啟用HBase。
    1. 集群服務頁面,單擊Ranger-plugin服務區域的狀態
    2. 服務概述區域,打開enableHBase開關。
    3. 在彈出的對話框中,單擊確定
  3. 在Ranger UI頁面查看HBase Service。
    1. 進入Ranger UI頁面,詳情請參見訪問Ranger UI
    2. 在Ranger UI頁面,單擊配置好的emr-hbase
      在Ranger啟用HBase時會自動添加一個名稱為emr-hbase的HBase Service。
    3. 您可以根據實際情況配置策略。
      HBase Service服務信息如下。hbase

      相關參數描述如下。

      參數說明
      Service Name服務名稱,固定值為emr-hbase
      Username用戶名,本示例為hbase。
      Password密碼,用戶自定義。
      hadoop.security.authentication
      • 標準集群(非高安全集群):選擇Simple
      • 高安全集群:選擇Kerberos
      hbase.master.kerberos.principal標準集群時不填寫;高安全集群時填寫hbase/_HOST@EMR.${CLUSTER_ID}.COM
      說明 ${CLUSTER_ID}可登錄機器執行hostname命令,hostname中的'.'后以'c-'開始的字符串轉換為大寫即為${CLUSTER_ID}的值。
      hbase.security.authentication
      • 標準集群(非高安全集群):選擇Simple
      • 高安全集群:選擇Kerberos
      hbase.zookeeper.property.clientPort固定值2181
      hbase.zookeeper.quorum固定值master-1-1
      zookeeper.znode.parent固定值/hbase
      Add New Configurations
      • Name:固定值policy.download.auth.users
      • Value:固定值hbase
  4. 重啟HBase。
    1. 集群服務頁面,選擇more > HBase
    2. 選擇更多操作 > 重啟
    3. 在彈出的對話框中,輸入執行原因,單擊確定
    4. 確認對話框中,單擊確定

設置管理員賬號

  1. 進入Ranger UI頁面,詳情請參見訪問Ranger UI
  2. 在Ranger UI頁面,單擊配置好的emr-hbase
  3. 設置管理員賬號的權限(admin權限),用于執行管理命令。
    例如balance、compaction、flush或split等。因為當前服務已經存在權限策略,所以您只需單擊右側的modify圖標,在User中添加需要設置的賬號即可。另外也可以修改其中的權限(例如只保留admin權限)。HBase賬號必須默認設置為管理員賬號。Hbase ranger
    如果使用Phoenix,則需在Ranger的HBase中新增如下策略。
    參數示例
    HBase Table SYSTEM.*
    HBase Column-family星號(*)
    HBase Column星號(*)
    Select Grouppublic
    PermissionsRead、Write、Create和Admin

權限配置示例

例如,給test用戶授予表foo_ns:test的Create、Write和Read權限。

  1. 進入Ranger UI頁面,詳情請參見訪問Ranger UI
  2. 在Ranger UI頁面,單擊配置好的emr-hbase
  3. 單擊右上角的Add New Policy
  4. 根據您的實際需求配置相關參數。
    參數描述
    Policy Name策略名稱,可以自定義。
    HBase Table表對象,格式為${namespace}:${tablename}。可輸入多個,填寫一個需按一次Enter鍵。本文示例配置為foo_ns:test。
    如果${namespace}是default,則不需要加default。支持通配符星號(*)。例如,foo_ns:*表示foo_ns下的所有表。
    說明 目前不支持default:*
    HBase Column-family列簇。例如配置為*
    HBase Column列名。例如配置為*
    Select Group指定添加此策略的用戶組。
    Select User指定添加此策略的用戶。例如,test。
    Permissions選擇授予的權限。例如,Read、Write、Create和Admin。
  5. 單擊Add
    添加Policy后,實現了對test用戶的授權。test用戶即可以對foo_ns:test表進行訪問。
    說明 添加、刪除或修改Policy后,需要等待約一分鐘至授權生效。