全部產品
Search
文件中心

Migration Hub:Hive

更新時間:Feb 14, 2026

服務帳號授權

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

選項

說明

--metastore-uris

Hive MetaStore URI(必填)

-v, --version

Hive 版本

lhm datasource set hive -n hive1 --meta-type METASTORE \
    --metastore-uris thrift://host:9083 \
    -v 3.1.2

啟用 Kerberos 認證:

選項

說明

--metastore-sasl-enabled

是否啟用 SASL 認證

--kerberos-keytab-file-path

Keytab 檔案路徑(啟用 SASL 時必填)

--kerberos-conf-file-path

krb5.conf 檔案路徑(啟用 SASL 時必填)

--principal

Kerberos Principal(啟用 SASL 時必填)

--hive-principal

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.2

2. 中繼資料基於 MYSQL

選項

說明

--jdbc-url

JDBC 串連 URL(必填)

--jdbc-username

使用者名稱(必填)

--jdbc-password

密碼(必填)

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 Access Key(必填)

--aws-secret-key

AWS Secret Key(必填)

--aws-region

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