将 Hue 与 Amazon RDS 中的远程数据库一起使用 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将 Hue 与 Amazon RDS 中的远程数据库一起使用

默认情况下,Hue 用户信息和查询历史记录存储在主节点上的本地 MySQL 数据库中。或者,您可以使用 Amazon S3 中存储的配置和 Amazon Amazon Relational Database Service (Amazon RDS) 中的 MySQL 数据库创建一个或多个启用了 Hue 的集群。这样,无需使 Amazon EMR 群集保持运行,您就可以保存 Hue 创建的用户信息和查询历史记录。我们建议使用 Amazon S3 服务器端加密来存储配置文件。

首先为 Hue 创建远程数据库。

创建外部 MySQL 数据库

  1. 在以下位置打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 单击启动数据库实例

  3. 选择 MySQL,然后单击Select

  4. 将保留默认选择多可用区部署和预配置 IOPS 存储,然后单击下一步

  5. 保留实例规范的默认值,指定设置,然后单击下一步

  6. 在 Configure Advanced Settings 页面上,选择适当的安全组和数据库名称。您使用的安全组必须至少允许从群集主节点中对端口 3306 进行入口 TCP 访问。如果此时您尚未创建群集,则可以允许所有主机连接到端口 3306 并在启动群集之后调整安全组。单击启动数据库实例

  7. 在 RDS 控制面板中,选择实例,然后选择您刚刚创建的实例。当您的数据库可用时,记下数据库名称、用户名、密码和 RDS 实例主机名。您将在创建和配置集群时用到此信息。

使用 Amazon CLI 在启动集群时为 Hue 指定外部 MySQL 数据库

要在使用 Amazon CLI 启动集群时为 Hue 指定外部 MySQL 数据库,请在创建 RDS 实例时使用所记录的信息,以使用配置对象配置 hue.ini

注意

您可以创建使用同一个外部数据库的多个群集,但是每个群集将共享查询历史记录和用户信息。

  • 使用 Amazon CLI 创建安装了 Hue 的集群,使用您创建的外部数据库并使用指定数据库属性的 Hue 配置分类引用配置文件。以下示例创建一个安装了 Hue 的集群,以引用 Amazon S3 中的配置文件,myConfig.json,用于指定数据库配置。

    注意

    为了便于读取,包括 Linux 行延续字符 (\)。它们可以被删除或在 Linux 命令中使用。对于 Windows,请将其删除或替换为脱字号 (^)。

    aws emr create-cluster --release-label emr-5.33.0 --applications Name=Hue Name=Spark Name=Hive \ --instance-type m5.xlarge --instance-count 3 \ --configurations https://s3.amazonaws.com/mybucket/myfolder/myConfig.json --use-default-roles

    示例内容myConfig.json文件如下所示。将 dbnameusernamepasswordRDS instance hostname 替换为您之前记下的 RDS 控制面板中的值。

    [{ "Classification": "hue-ini", "Properties": {}, "Configurations": [ { "Classification": "desktop", "Properties": {}, "Configurations": [ { "Classification": "database", "Properties": { "name": "dbname", "user": "username", "password": "password", "host": "RDS instance hostname", "port": "3306", "engine": "mysql" }, "Configurations": [] } ] } ] }]

Troubleshooting

发生 Amazon RDS 故障转移时

由于 Hue 数据库实例无响应或正在进行故障转移,因此用户可能会在运行查询时遇到延迟。以下是此问题的一些事实和指导:

  • 如果登录 Amazon RDS 控制台,则可以搜索故障转移事件。例如,要查看是否正在进行或已发生故障转移,请查找诸如 “多可用区实例故障切换启动” 和 “多可用区实例故障转移已完成” 之类的事件。

  • RDS 实例完成故障转移大约需要 30 秒。

  • 如果在 Hue 中遇到的查询响应超过正常时间,请尝试重新执行查询。