EMR Hive服务默认使用明文保存密码来访问本地MySQL或RDS MySQL,但也可以使用加密文件来访问这些数据库。本文为您介绍如何使用加密文件访问RDS MySQL。
前提条件
已创建集群,并且选择了Hive服务,详情请参见创建集群。
已购买RDS,详情请参见快速创建RDS MySQL实例。
操作步骤
创建凭据文件。
重要如果集群中有多个Master节点,需要进行多次操作。
通过SSH方式连接Master节点,详情请参见登录集群。
执行以下命令,生成Hadoop Credential文件。
hadoop credential create javax.jdo.option.ConnectionPassword \ -provider jceks://file/tmp/hive.jceks
请根据提示输入两次RDS MySQL用户的密码。
执行以下命令,将凭据文件移动到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
在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文件的路径。