本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将 Hue 与 Amazon RDS 中的远程数据库结合使用
默认情况下,Hue 用户信息和查询历史记录存储在主节点上的本地 MySQL 数据库中。或者,您可以使用存储在 Amazon S3 中的配置和亚马逊关系数据库服务 (Amazon RDS) 中的 MySQL 数据库创建一个或多个 Hue-enabled集群。这样,无需使 Amazon EMR 集群保持运行,您就可以保存 Hue 创建的用户信息和查询历史记录。我们建议使用 Amazon S3 服务器端加密来存储配置文件。
首先为 Hue 创建远程数据库。
创建外部 MySQL 数据库
-
在 https://console.aws.amazon.com/rds/
处打开 Amazon RDS 控制台。 -
点击 Launch a DB Instance (启动数据库实例)。
-
选择 MySQL,然后单击 Select (选择)。
-
保留 “Multi-AZ 部署和预配置 IOPS 存储” 的默认选择,然后单击 “下一步”。
-
保留 Instance Specifications (实例规格) 的默认值,指定设置,然后单击 Next (下一步)。
-
在 Configure Advanced Settings (配置高级设置) 页面上,选择相应的安全组和数据库名称。您使用的安全组必须至少允许从集群主节点中对端口 3306 进行入口 TCP 访问。如果此时您尚未创建集群,则可以允许所有主机连接到端口 3306 并在启动集群之后调整安全组。单击 Launch DB Instance (启动数据库实例)。
-
在 RDS 控制面板中,选择 Instances (实例),然后选择您刚刚创建的实例。当您的数据库可用时,记下数据库名称、用户名、密码和 RDS 实例主机名。您将在创建和配置集群时用到此信息。
要在启动集群时为 Hue 指定外部 MySQL 数据库,请使用 AWS CLI
要在使用启动集群时为 Hue 指定外部 MySQL 数据库 AWS CLI,请使用您在创建 RDS 实例时记下的信息,hue.ini使用配置对象进行配置
注意
您可以创建使用同一个外部数据库的多个集群,但是每个集群将共享查询历史记录和用户信息。
-
使用 AWS CLI,创建安装了 Hue 的集群,使用您创建的外部数据库,并引用带有指定数据库属性的 Hue 配置分类的配置文件。以下示例创建一个安装了 Hue 的集群,引用了 Amazon S3 中的配置文件
myConfig.json,该文件指定数据库配置。注意
为了便于读取,包含 Linux 行继续符(\)。它们可以通过 Linux 命令删除或使用。对于 Windows,请将它们删除或替换为脱字号(^)。
aws emr create-cluster --release-labelemr-7.14.0--applications Name=Hue Name=Spark Name=Hive \ --instance-typem5.xlarge--instance-count3\ --configurationshttps://s3.amazonaws.com/amzn-s3-demo-bucket/myfolder/myConfig.json--use-default-roles下面显示的是
myConfig.json文件的内容示例。将dbnameusernamepassword、和RDS 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": [] } ] } ] }]
问题排查
发生 Amazon RDS 故障转移时
由于 Hue 数据库实例无响应或正在进行故障转移,因此用户可能会在运行查询时遇到延迟。以下是有关此问题的一些事实和准则:
-
如果登录 Amazon RDS 控制台,则可以搜索故障转移事件。例如,要查看故障转移是否正在进行或已经发生,请查找 “实例故障转移已启动” 和 “Multi-AZ 实例故障转移已完成” 等事件。Multi-AZ
-
RDS 实例完成故障转移大约需要 30 秒。
-
如果在 Hue 中遇到比正常查询更长的响应,请尝试重新执行查询。