在典型的Hive安装中,在MySQL配置中具有元数据,密码是在配置文件中以明文形式配置的。 这带来了一些风险:1)未经授权的访问可能会破坏/修改Hive元数据并破坏工作流程。 恶意用户可能会更改Hive权限或损坏元数据。 2)此密码允许hiveserver2-thrift-MySQL通信。 为避免此问题,应使用Java密钥库文件而不是密码。
所需的最少动作:
- chown mapr:mapr hive-site.xml
- chmod 400 hive-site.xml
但是,这意味着除mapr之外的用户无法在计算机本地运行作业,因为他们无法读取hive-site.xml。
通过设置CredentialProvider来处理密码的存储/检索,您可以通过指向配置以使用加密的密钥库文件来消除在Hive配置中以明文形式保留Hive Metastore密码的需要。 在此博客文章中,我将解释如何实现此目的。
步骤1
创建CredentialProvider来加密密码并将其存储为Java密钥库文件。
- [root@ip-10-0-10-219 ~]# hadoop credential create
- javax.jdo.option.ConnectionPassword -provider
- jceks://maprfs/user/mapr/hive.jceks
- Enter password:
- Enter password again:
- javax.jd