首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HiveQL到HBase

HiveQL到HBase
EN

Stack Overflow用户
提问于 2015-07-10 14:48:42
回答 1查看 324关注 0票数 0

我正在使用蜂窝0.14和Hbase 0.98.8我想使用HiveQL来访问HBase“表”。

我创建了一个具有复杂复合行键的表:

代码语言:javascript
复制
CREATE EXTERNAL TABLE db.hive_hbase (rowkey struct<p1:string, p2:string, p3:string>, column1 string, column2 string) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
COLLECTION ITEMS TERMINATED BY ';'
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = 
":key,cf:c1,cf:c2")
TBLPROPERTIES("hbase.table.name"="hbase_table");

表正在成功创建,但HiveQL永远不会完成:

代码语言:javascript
复制
SELECT * from db.hive_hbase WHERE rowkey.p1 = 'xyz';

不使用行键的查询很好,也可以使用带过滤器的hbase shell。我在日志中没有找到任何东西,但我认为可能存在复杂组合键和性能的问题。

有没有人面临同样的问题?解决这个问题的提示?其他想法,我可以尝试什么?

谢谢

更新16.07.15:我将调试属性更改为‘log4j’,发现了一些有趣的信息:

上面写着:

代码语言:javascript
复制
2015-07-15 15:56:41,232 INFO  ppd.OpProcFactory    (OpProcFactory.java:logExpr(823)) - Pushdown Predicates of FIL For Alias : hive_hbase
2015-07-15 15:56:41,232 INFO  ppd.OpProcFactory (OpProcFactory.java:logExpr(826)) -     (rowkey.p1 = 'xyz')

但后面有几行:

代码语言:javascript
复制
2015-07-15 15:56:41,430 DEBUG ppd.OpProcFactory (OpProcFactory.java:pushFilterToStorageHandler(1051)) - No pushdown possible for predicate:  (rowkey.p1 = 'xyz')

所以我的猜测是: HBase上的HiveQL不会在Hbase中执行任何谓词下推,而是启动一个MapReduce作业。

谓词下推会不会有bug?

EN

回答 1

Stack Overflow用户

发布于 2015-07-16 02:33:10

我使用Hive 0.13尝试了类似的情况,它工作得很好。我知道结果了。您正在开发哪个版本的hive?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31334237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档