【发布时间】:2016-03-17 18:33:30
【问题描述】:
我已经设置了一个安装了 Hive/Presto 的小型 EMR 集群,我想在 S3 上查询文件并将它们导入到 RDS 上的 Postgres。
要在 S3 上运行查询并将结果保存在 postgres 的表中,我做了以下操作:
- 从 AWS 控制台启动了一个 3 节点 EMR 集群。
- 手动 SSH 到主节点以在 hive 中创建一个 EXTERNAL 表,查看 S3 存储桶。
-
手动 SSH 到 3 个节点中的每一个并添加一个新的目录文件:
/etc/presto/conf.dist/catalog/postgres.properties以下内容
connector.name=postgresql connection-url=jdbc:postgresql://ip-to-postgres:5432/database connection-user=<user> connection-password=<pass>并编辑了这个文件
/etc/presto/conf.dist/config.properties添加
datasources=postgresql,hive -
通过在所有 3 个节点上手动运行以下命令来重新启动 presto
sudo restart presto-server
此设置似乎运行良好。
在我的应用程序中,动态创建了多个数据库。似乎需要为每个数据库进行这些配置/目录更改,并且需要重新启动服务器才能看到新的配置更改。
我的应用程序(使用 boto 或其他方法)是否有适当的方法来更新配置
- 在所有节点 /etc/presto/conf.dist/catalog/ 中为每个新数据库添加一个新目录文件
- 在 /etc/presto/conf.dist/config.properties 的所有节点中添加新条目
- 在整个集群中优雅地重新启动 presto(最好是在它空闲时,但这不是主要问题。
【问题讨论】:
-
如果我的回答对你有用,请将其标记为“正确答案” i.stack.imgur.com/QpogP.png
标签: amazon-web-services hive emr presto