我有这个简单的查询,在IBM BigInsights2.0的hive 0.8中很好:
SELECT * FROM patient WHERE hr > 50 LIMIT 5
然而,当我在BigInsights3.0中使用hive 0.12运行此查询时,它会永远运行并且不会返回任何结果。 实际上,后续查询和其他许多方案的情况相同:
INSERT OVERWRITE DIRECTORY '/Hospitals/dir' SELECT p.patient_id FROM
patient1 p WHERE p.readingdate='2014-07-17'
如果我排除 WHERE 部分,那么两个版本都可以。
在查询中包含 WHERE 子句时,知道hive 0.12或BigInsights3.0可能出错吗?
答案 0 :(得分:0)
在Hive查询中使用WHERE子句时,Hive将运行map-reduce作业以返回结果。这就是为什么运行查询通常需要更长时间的原因,因为没有WHERE子句,Hive可以简单地返回表示HDFS中表的文件内容。 您应该检查由查询触发的map-reduce作业的状态,以确定是否发生了错误。您可以通过转到BigInsights Web控制台中的“应用程序状态”选项卡并单击“作业”,或转到作业跟踪器Web界面来执行此操作。如果您看到该作业的任何失败任务,请检查特定任务的日志以找出发生的错误。解决问题后,再次运行查询。