Presto Hive连接器

2020-10-29 11:12:53 浏览数 (1)

概览

Hive连接器允许查询存储在Hive数据仓库中的数据。Hive是由三个部分组成。

  • 各种格式的数据文件通常存储在Hadoop分布式文件系统(HDFS)或Amazon S3中。
  • 有关如何将数据文件映射到schemas 和表的元数据。此元数据存储在数据库(例如MySQL)中,并可通过Hive Metastore服务进行访问。
  • 一种称为HiveQL的查询语言。该查询语言在MapReduce或Tez的分布式计算框架上执行。

Presto仅使用前两个组件:数据和元数据。它不使用HiveQL或Hive执行环境的任何一部分。

支持的文件类型

  • ORC
  • Parquet
  • Avro
  • RCFile
  • SequenceFile
  • JSON
  • Text

配置

Hive连接器支持Apache Hadoop 2.x及其衍生版本,如Cloudera CDH 5Hortonworks Data Platform (HDP).

创建etc/catalog/hive.properties,

代码语言:javascript复制
#随意
connector.name=hive-hadoop2 
#用Hive Metastore Thrift服务的正确主机和端口替换example.net:9083
hive.metastore.uri=thrift://example.net:9083

多个Hive集群

根据需要可以创建任意数量的catalog,如果有其他Hive集群服务,只需将另一个属性文件添加到etc/catalog中,并使用不同的名称(确保以.properties结尾)。例如,如果命名属性文件sales.properties,Presto将使用配置的连接器创建一个名为salescatalog.

HDFS 配置

一般来说,Presto会自动配置HDFS客户端,不需要任何配置文件。在某些情况下,例如使用联邦HDFS或NameNode高可用性时,有必要指定其他HDFS客户端选项以访问的HDFS集群。所以,添加hive.config.resources属性以引用HDFS配置文件.

代码语言:javascript复制
hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml

仅在需要时指定其他配置文件。我们还建议减少配置文件,使其具有最少的必需属性集,因为其他属性可能会引起问题。

配置文件必须存在于所有Presto节点上。如果要引用现有的Hadoop配置文件,请确保将它们复制到任何未运行Hadoop的Presto节点。

HDFS Username

当不使用Kerberos时,Presto将使用Presto进程所在的OS用户访问HDFS。我们可以通过在Presto JVM Config中设置HADOOP_USER_NAME系统属性来覆盖此用户名.

代码语言:javascript复制
#将hdfs_user替换为适当的用户名
-DHADOOP_USER_NAME=hdfs_user

Hive配置属性

Amazon S3 配置

Hive连接器可以读写存储在S3中的表。使表或数据库使用S3前缀而不是HDFS前缀来实现。

Presto将其自己的S3文件系统用于URI前缀s3://s3n://s3a://

S3SelectPushdown

S3SelectPushdown可以将投影(SELECT)和谓词(WHERE)处理下推到S3 Select。使用S3SelectPushdown,Presto仅从S3而不是整个S3对象中检索所需的数据,从而减少了延迟和网络使用率。

Alluxio 配置

Presto可以利用Alluxio的分布式块级读/写缓存功能读取和写入存储在Alluxio中的表。必须使用alluxio://前缀创建表,存储在Hive元存储库中(有关详细信息和示例,请参阅 https://docs.alluxio.io/os/user/2.1/en/compute/Hive.html)。然后,Presto将透明地从各种不同的存储系统(包括HDFS和S3)中检索和缓存文件或对象。

0 人点赞