

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 適用於 Ranger 與 Amazon EMR 整合的 Apache Hive 外掛程式
<a name="emr-ranger-hive"></a>

Apache Hive 是 Hadoop 生態系統中熱門的執行引擎。Amazon EMR 提供了 Apache Ranger 外掛程式，可以為 Hive 提供精細分級的存取控制。此外掛程式與開放原始碼 Apache Ranger Admin 伺服器 2.0 版及更新版本相容。

**Topics**
+ [支援的功能](#emr-ranger-supported-features)
+ [安裝服務組態](#emr-ranger-hive-service-config)
+ [考量事項](#emr-ranger-hive-considerations)
+ [限制](#emr-ranger-hive-limitations)

## 支援的功能
<a name="emr-ranger-supported-features"></a>

EMR 上的 Hive 的 Apache Ranger 外掛程式支援開放原始碼外掛程式的所有功能，包括資料庫、資料表、資料欄層級存取控制以及資料列篩選和資料遮罩。如需 Hive 命令和關聯的 Ranger 許可的資料表，請參閱 [Hive 命令與 Ranger 許可映射](https://cwiki.apache.org/confluence/display/RANGER/Hive+Commands+to+Ranger+Permission+Mapping)。

## 安裝服務組態
<a name="emr-ranger-hive-service-config"></a>

Apache Hive 外掛程式與 Apache Hive Hadoop SQL 中現有的 Hive 服務定義相容。

![\[Hadoop SQL 的 Apache Hive 服務定義。\]](http://docs.aws.amazon.com/zh_tw/emr/latest/ManagementGuide/images/ranger_service_mgr.png)


如果您在 Hadoop SQL 下沒有此服務的執行個體 (如上所示)，您可以建立執行個體。按一下 Hadoop SQL 旁邊的 **\$1**。

1. **服務名稱 (如果顯示)**：輸入服務名稱。建議的值為 **amazonemrhive**。請記下此服務名稱 – 建立 EMR 安全組態時需要此名稱。

1. **顯示名稱**：輸入要顯示的服務名稱。建議的值為 **amazonemrhive**。

![\[Hadoop SQL 的 Apache Hive 服務詳細資訊。\]](http://docs.aws.amazon.com/zh_tw/emr/latest/ManagementGuide/images/ranger_create_service.png)


Apache Hive 設定屬性用於透過 HiveServer2 建立與 Apache Ranger Admin 伺服器的連線，以在建立政策時實作自動完成。下面的屬性不需要準確 (如果您沒有持久性 HiveServer2 程序)，且可以填入任何資訊。
+ **使用者名稱**：輸入與 HiveServer2 執行個體的 JDBC 連線的使用者名稱。
+ **密碼**：輸入上面的使用者名稱的密碼。
+ **jdbc.driver.ClassName**：輸入 Apache Hive 連線的 JDBC 類別的類別名稱。您可以使用預設值。
+ **jdbc.url**：輸入連接至 HiveServer2 時要使用的 JDBC 連線字串。
+ **憑證的通用名稱**：憑證內的 CN 欄位用於從用戶端外掛程式連接至管理伺服器。此值必須與為外掛程式建立的 TLS 憑證中的 CN 欄位相符。

![\[Apache Hive 服務組態屬性。\]](http://docs.aws.amazon.com/zh_tw/emr/latest/ManagementGuide/images/ranger_config_props.png)


**測試連線**按鈕測試上面的值是否可用於成功連接至 HiveServer2 執行個體。成功建立服務後，Service Manager 應如下所示：

![\[已連接至 HiveServer2 執行個體\]](http://docs.aws.amazon.com/zh_tw/emr/latest/ManagementGuide/images/ranger_config_connected.png)


## 考量事項
<a name="emr-ranger-hive-considerations"></a>

**Hive 中繼資料伺服器**

Hive 中繼資料伺服器只能由可信引擎 (特別是 Hive 和 `emr_record_server`) 存取，以防止未經授權的存取。Hive 中繼資料伺服器也可由叢集上的所有節點存取。所需的連接埠 9083 可讓所有節點存取主節點。

**身分驗證**

依預設，Apache Hive 設定為使用 EMR 安全組態中設定的 Kerberos 進行身分驗證。您也可以將 HiveServer2 設定為使用 LDAP 來驗證使用者。如需相關資訊，請參閱[在多租戶 Amazon EMR 叢集上為 Hive 實作 LDAP 身分驗證](https://aws.amazon.com/blogs/big-data/implementing-ldap-authentication-for-hive-on-a-multi-tenant-amazon-emr-cluster/)。

## 限制
<a name="emr-ranger-hive-limitations"></a>

以下是 Amazon EMR 5.x 上 Apache Hive 外掛程式的目前限制：
+ 目前不支援 Hive 角色。不支援授權、撤銷陳述式。
+ 不支援 Hive CLI。JDBC/Beeline 是連接 Hive 的唯一授權方式。
+ `hive.server2.builtin.udf.blacklist` 組態應填入您認為不安全的 UDF。