【问题标题】:Does all of three: Presto, hive and impala support Avro data format?Presto、hive 和 impala 这三个都支持 Avro 数据格式吗?
【发布时间】:2017-10-24 11:28:44
【问题描述】:

我很清楚 Hive 中可用的 Serde 以支持数据格式的 Avro 模式。将 avro 与 hive 一起使用很舒服。

AvroSerDe

比如说,我发现这个问题是针对 presto 的。 https://github.com/prestodb/presto/issues/5009

我需要为快速执行周期选择组件。 Presto 和 impala 提供更小的执行周期。 所以,任何人都请让我澄清一下在不同的数据格式中哪个会更好。 首先,我现在正在寻找 Presto 的 avro 支持。

不过,让我们考虑一下存储在 HDFS 上的以下数据格式:

  1. Avro 格式
  2. 拼花格式
  3. 兽人格式

哪种方法最适合在不同数据格式上实现高性能。 ??请提出建议。

【问题讨论】:

  • Impala 是一个查询引擎,主要用于查询 Hive 中已经存在的表。
  • 我的问题是关于选择查询引擎和技术堆栈的更好方法是什么。我知道 impala 是仅由 cloudera 提供的查询引擎。但是,我在这里寻找比较研究。
  • 例如,hiveQL 从表中选择 count(*) 需要 23 秒,但是,对于相同的集群大小,presto SQL 需要 2 秒。那么,impala 的性能如何,不同数据格式对同一数据集的性能如何,
  • 谢谢!!这几乎没有给出答案,但我仍在寻找 presto 见解。

标签: hadoop hive impala presto


【解决方案1】:

互联网上有关于性能的不同基准,但我不想链接到特定的基准,因为结果很大程度上取决于基准的确切用例。

【讨论】:

  • Presto 现在支持 Avro:prestodb.io/docs/current/connector/…
  • 感谢 zoltan 和 david,但是我尝试过支持 avro,但 Presto 无法读取 avro 数据的架构。
  • 我们在 presto git hub 上开了一张票。 github.com/prestodb/presto/issues/8154 但是,presto 团队的响应非常缓慢。还提供了架构
  • 我们已经试用了 AvroSerde 的一种解决方案,它适用于 Presto 查询。 cwiki.apache.org/confluence/display/Hive/AvroSerDe 。这里的要点是:将 avro 模式指定为 TBLPROPERTIES( avro.schema.literal="{..}" ) 例如:TBLPROPERTIES ('avro.schema.literal'='{ "namespace": "com.howdy", "name ": "some_schema", "type": "record", "fields": [ { "name":"string1","type":"string"}] }');
  • “avro.schema.url”TBLPROPERTIES 存在问题。 Presto 不理解此属性并抛出未找到模式的异常。
猜你喜欢
  • 2015-07-30
  • 2013-12-02
  • 2018-12-07
  • 2011-09-27
  • 2013-11-25
  • 1970-01-01
  • 1970-01-01
  • 2021-04-19
  • 2021-07-27
相关资源
最近更新 更多