我正在尝试在 Amazon S3 存储桶上使用 Presto,但在 Internet 上没有找到太多相关信息。
我已经在微型实例上安装了 Presto,但我无法弄清楚如何连接到 S3。有一个桶,里面有文件。我有一个正在运行的 hive 元存储服务器,并且我已在 presto hive.properties 中配置了它。但是当我尝试在配置单元中运行 LOCATION 命令时,它不起作用。
IT 抛出错误,指出找不到文件方案类型 s3。
而且我也不知道为什么我们需要运行 hadoop,但是如果没有 hadoop,hive 就不会运行。对此有什么解释吗?
This https://blog.mustardgrain.com/2010/09/30/using-hive-with-existing-files-on-s3/ and this https://prestodb.io/docs/current/connector/hive.html是我在设置时遵循的文档。
Presto 使用 Hive 元存储将数据库表映射到其底层文件。这些文件可以存在于 S3 上,并且可以以多种格式存储 - CSV、ORC、Parquet、Seq 等。
Hive 元存储通常通过 HQL(Hive 查询语言)发出 DDL 语句来填充,例如CREATE EXTERNAL TABLE ...
with a LOCATION ...
子句引用保存数据的基础文件。
为了让 Presto 连接到 Hive 元存储,您需要编辑 hive.properties 文件(EMR 将其放入/etc/presto/conf.dist/catalog/
)并设置hive.metastore.uri
适当 Hive 元存储服务的 Thrift 服务的参数。
如果您选择 Hive 和 Presto,Amazon EMR 集群实例将自动为您进行配置,因此这是一个很好的起点。
如果您想在独立的 ec2 实例上测试这一点,那么我建议您首先专注于获得与 Hadoop 基础设施配合使用的功能性 Hive 服务。您应该能够定义驻留在本地 hdfs 文件系统上的表。 Presto 补充了 hive,但确实需要功能正常的 hive 设置,presto 的本机 ddl 语句的功能不如 hive 完整,因此您将直接从 hive 进行大多数表创建。
或者,您可以为 mysql 或 postgresql 数据库定义 Presto 连接器,但这只是 jdbc 传递,我认为您不会获得太多收益。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)