【问题标题】:Impala or Hive?黑斑羚还是蜂巢?
【发布时间】:2015-04-01 12:05:09
【问题描述】:

情况 - 每天大约 3000 万行,CDH 5.2 集群(16 个节点,共享集群)中 Impala 托管表中价值 2 年的数据。

尝试将每日汇总逻辑放在一起,其中一天的数据被引入并汇总,并且该过程在随后的几天中一遍又一遍地重复。 (通过黑斑羚)

这是一个一次性过程,用于创建整个 2 年窗口的聚合,随后由其他工具使用。

我想知道,这里的工具选择是否真的是正确的?我们不应该通过将这项工作交给 hive 来利用集群的力量(这样它就可以触发 mapreduce 和聚合可以相对容易地完成)?

[编辑]

澄清一下,数据已经在 Impala 表上,我所指的聚合是在此之上完成的。从解决方案的角度来看,我的想法是,将这些数据提供给 hive 表(而不是 impala 表)然后让 map-reduce 处理聚合会更好吗?

基于 impala 的聚合对我们来说确实很慢,虽然我们正在考虑对其进行调整,但我想知道我们是否可以做一些不同的事情?

【问题讨论】:

    标签: mapreduce cloudera cloudera-cdh impala


    【解决方案1】:

    摄取是通过 hive 完成的 - 但 impala 会为您提供更好的读取性能数量级(/秒)。因此,请考虑您的分析堆栈可以在 impala 上运行,而您的 ETL 将保留在 hive 上。

    在任何情况下,加载/ETL 时间都不是面向用户的,而分析/查询确实具有延迟关键特性。

    【讨论】:

    • 嗯,在我的情况下,黑斑羚不会随着聚合回来,根本不会。这就是我探索其他选择的原因?
    • 您需要查看查询本身并对其进行调整。使用 hive 只会进一步减慢速度。
    • 还要考虑 impala 中的 ETL。 impala 中有各种解析和转换函数可用于 ETL 过程,尤其是在 impala 2.6.0 和更高版本中。还;一定要考虑一起使用 impala-parquet。您将看到读取和聚合性能有所提高。创建表后,考虑使用计算(如果表非常大,则使用“增量”)统计信息。这也会对读取性能产生积极影响。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多