全部产品
Search
文档中心

搬站上云:Hive

更新时间:Feb 13, 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