我在项目中使用了Hbase支持的Hive表,但是我们选择Hbase支持的Hive的原因是执行更新。
除此之外,Hbase支持的Hive表还有其他优点。从Hive查询时,仍然使用MapReduce。
即使我们需要少量的数据并且由于表很大,给出结果也需要时间。
但是,如果我们执行Range扫描或在Hbase shell上获得Hbase的结果,则只需几分之一秒。因此,除了更新(现在也可以在HIVE中使用)和SQL易用性之外,使用Hbase支持的Hive表还有什么其他好处。
如果HPE支持,则HIVE如何评估和运行查询?
为什么它使用MapReduce扫描并给出结果而不是Hbase引擎,该引擎要快得多?
Hbase是否有自己的引擎来执行扫描,获取操作以从其HFiles中获取数据?
最佳答案
我建议您不要使用Hbase支持的Hive。
如您所见,使用过滤器进行的扫描与配置单元查询运行的时间有些冲突。
那是因为Hbase过滤了存储级别中的数据,并且配置单元加载了所有表数据,然后对其进行了过滤。
假设有谓词从 hive 到Hbase的下推,但问题上还有很多悬而未决的问题。而且很多谓词下推都是禁用的。
有关更多信息,请检查页面:Hive HBase Integration
关于hadoop - 为什么HBase支持的Hive表使用MapReduce,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46375056/