服務帳號授權
1. 中繼資料基於 HiveMetaStore
Kerberos 認證情境:
需要有效 Keytab 檔案和對應的 Principal
Principal 需要有 MetaStore 服務的存取權限
確保
krb5.conf配置正確
2. 中繼資料基於 MYSQL
所需系統資料表許可權:
-- 建立使用者(如果不存在)
CREATE USER IF NOT EXISTS '<username>'@'<host>' IDENTIFIED BY 'your_password';
-- 授予 SELECT 許可權(最小許可權原則)
GRANT SELECT ON hive_metastore.dbs TO '<username>'@'<host>';
GRANT SELECT ON hive_metastore.tbls TO '<username>'@'<host>';
GRANT SELECT ON hive_metastore.sds TO '<username>'@'<host>';
GRANT SELECT ON hive_metastore.columns_v2 TO '<username>'@'<host>';
GRANT SELECT ON hive_metastore.partition_keys TO '<username>'@'<host>';
GRANT SELECT ON hive_metastore.serdes TO '<username>'@'<host>';
GRANT SELECT ON hive_metastore.serde_params TO '<username>'@'<host>';
GRANT SELECT ON hive_metastore.partitions TO '<username>'@'<host>';
GRANT SELECT ON hive_metastore.partition_key_vals TO '<username>'@'<host>';
GRANT SELECT ON hive_metastore.partition_params TO '<username>'@'<host>';
GRANT SELECT ON hive_metastore.table_params TO '<username>'@'<host>';
GRANT SELECT ON hive_metastore.funcs TO '<username>'@'<host>';
GRANT SELECT ON hive_metastore.func_ru TO '<username>'@'<host>';
-- 重新整理許可權
FLUSH PRIVILEGES;3. 中繼資料基於 AWS_GLUE
所需 IAM 策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "GlueMetadataReadAccess",
"Effect": "Allow",
"Action": [
"glue:GetDatabases",
"glue:GetTables",
"glue:GetTable",
"glue:GetPartitions",
"glue:GetUserDefinedFunctions"
],
"Resource": [
"arn:aws:glue:${Region}:${AccountId}:catalog",
"arn:aws:glue:${Region}:${AccountId}:database/*",
"arn:aws:glue:${Region}:${AccountId}:table/*/*",
"arn:aws:glue:${Region}:${AccountId}:userDefinedFunction/*/*"
]
}
]
}資料來源管理
1. 中繼資料基於 HiveMetaStore
選項 | 說明 |
| Hive MetaStore URI(必填) |
| Hive 版本 |
lhm datasource set hive -n hive1 --meta-type METASTORE \
--metastore-uris thrift://host:9083 \
-v 3.1.2啟用 Kerberos 認證:
選項 | 說明 |
| 是否啟用 SASL 認證 |
| Keytab 檔案路徑(啟用 SASL 時必填) |
| krb5.conf 檔案路徑(啟用 SASL 時必填) |
| Kerberos Principal(啟用 SASL 時必填) |
| Hive 服務端 Principal(可選) |
lhm datasource set hive -n hive1 --meta-type METASTORE \
--metastore-uris thrift://host:9083 \
--metastore-sasl-enabled true \
--kerberos-keytab-file-path /path/to/keytab \
--kerberos-conf-file-path /path/to/krb5.conf \
--principal user@REALM \
--hive-principal hive/_HOST@REALM
-v 3.1.22. 中繼資料基於 MYSQL
選項 | 說明 |
| JDBC 串連 URL(必填) |
| 使用者名稱(必填) |
| 密碼(必填) |
lhm datasource set hive -n hive1 --meta-type MYSQL \
--jdbc-url jdbc:mysql://host:3306/hive \
--jdbc-username user \
--jdbc-password '$DB_PASSWORD'3. 中繼資料基於 AWS_GLUE
選項 | 說明 |
| AWS Access Key(必填) |
| AWS Secret Key(必填) |
| AWS Region(必填) |
lhm datasource set hive -n hive1 --meta-type AWS_GLUE \
--aws-access-key '$AWS_ACCESS_KEY' \
--aws-secret-key '$AWS_SECRET_KEY' \
--aws-region us-east-1