文档

Hive Metastore使用加密文件访问RDS

更新时间:

EMR Hive服务默认使用明文保存密码来访问本地MySQL或RDS MySQL,但也可以使用加密文件来访问这些数据库。本文为您介绍如何使用加密文件访问RDS MySQL。

前提条件

操作步骤

  1. 创建凭据文件。

    重要

    如果集群中有多个Master节点,需要进行多次操作。

    1. 通过SSH方式连接Master节点,详情请参见登录集群

    2. 执行以下命令,生成Hadoop Credential文件。

      hadoop credential create javax.jdo.option.ConnectionPassword \
        -provider jceks://file/tmp/hive.jceks

      请根据提示输入两次RDS MySQL用户的密码。

  2. 执行以下命令,将凭据文件移动到Hive的配置文件目录,并将该文件的所有者更改为hive用户或hadoop用户。

    DataLake或Custom集群类型

    sudo mv /tmp/hive.jceks $HIVE_CONF_DIR
    sudo chown hive $HIVE_CONF_DIR/hive.jceks

    Hadoop集群类型

    sudo mv /tmp/hive.jceks $HIVE_CONF_DIR
    sudo chown hadoop $HIVE_CONF_DIR/hive.jceks
  3. 在EMR控制台目标集群Hive服务的配置页签,在hivemetastore-site.xml中修改和新增以下配置项,并确保配置项生效。修改、新增和生效配置项的具体操作请参见管理配置项

    DataLake或Custom集群类型

    操作

    Key

    Value

    说明

    修改

    javax.jdo.option.ConnectionPassword

    设置为空

    表示连接Hive Metastore时不需要提供密码。

    新增

    hadoop.security.credential.provider.path

    jceks://file/etc/emr/hive-conf/hive.jceks

    用于指定Hadoop Credential文件的路径。

    Hadoop集群类型

    操作

    Key

    Value

    说明

    修改

    javax.jdo.option.ConnectionPassword

    设置为空

    表示连接Hive Metastore时不需要提供密码。

    新增

    hadoop.security.credential.provider.path

    jceks://file/etc/ecm/hive-conf/hive.jceks

    用于指定Hadoop Credential文件的路径。