本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在亚马逊中将 Oozie 与远程数据库配合使用 RDS
默认情况下,Oozie 用户信息和查询历史记录存储在主节点的本地 “我的SQL数据库” 中。或者,您可以使用存储在 Amazon S3 中的配置和亚马逊关系数据库服务 (Amazon) 中的 “我的SQL数据库” 来创建一个或多个支持 Ooozie 的集群。RDS这使您可以保留 Oozie 创建的用户信息和查询历史记录,而无需保持您的 Amazon EMR 集群运行。我们建议使用 Amazon S3 服务器端加密来存储配置文件。
首先为 Oozie 创建远程数据库。
创建外部 “我的SQL数据库”
-
打开 Amazon RDS 控制台,网址为https://console.aws.amazon.com/rds/
。 -
选择 Launch a DB Instance (启动数据库实例)。
-
选择 “我的”,SQL然后选择 “选择”。
-
保留默认选择 “多可用区部署” 和 “预配置IOPS存储”,然后选择 “下一步”。
-
保留 Instance Specifications(实例规格)的默认值,指定 Settings(设置),然后选择 Next(下一步)。
-
在 Configure Advanced Settings (配置高级设置) 页面上,选择相应的安全组和数据库名称。您使用的安全组必须至少允许从集群的主节点对端口 3306 进行入站TCP访问。如果此时您尚未创建集群,则可以允许所有主机连接到端口 3306 并在启动集群之后调整安全组。选择 Launch DB Instance (启动数据库实例)。
-
在RDS控制面板中,选择实例,然后选择您刚刚创建的实例。当您的数据库可用时,记下数据库名称、用户名、密码和RDS实例主机名。您将在创建和配置集群时用到此信息。
要在启动集群时使用 Oozie 指定外部 “我的SQL数据库” Amazon CLI
要在使用启动集群时为 Oozie 指定外部 “我的SQL数据库” Amazon CLI,请使用您在创建RDS实例时记下的信息来配置配置oozie-site
配置对象。
注意
您可以创建使用同一个外部数据库的多个集群,但是每个集群将共享查询历史记录和用户信息。
-
使用 Amazon CLI,创建安装了 Oozie 的集群,使用您创建的外部数据库,并引用指定数据库属性的具有 Oozie 配置分类的配置文件。以下示例创建一个安装了 Oozie 的集群,引用了 Amazon S3 中的配置文件
myConfig.json
,该文件指定数据库配置。注意
为了便于读取,包含 Linux 行继续符(\)。它们可以通过 Linux 命令删除或使用。对于 Windows,请将它们删除或替换为脱字号(^)。
aws emr create-cluster --release-label
emr-7.3.0
--applications Name=Oozie 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
文件的内容示例。Replace(替换)JDBC URL
,username
,以及password
使用您的RDS实例的JDBCURL、用户名和密码。重要
JDBCURL必须包含数据库名称作为后缀。例如,jdbc: mysql: //.xxxxxxxxx.us-east-1.rds.amazonaws.com: 3306/ dbname。oozie-external-db
[{ "Classification": "oozie-site", "Properties": { "oozie.service.JPAService.jdbc.driver": "org.mariadb.jdbc.Driver", "oozie.service.JPAService.jdbc.url": "
JDBC URL
", "oozie.service.JPAService.jdbc.username": "username
", "oozie.service.JPAService.jdbc.password": "password
" }, "Configurations": [] }]