今天下午有同事反馈她提交了了一个SQL后,hive 查询就停止响应了. 我看了下,发现hiveserver确实hug住了.听过查看日志,发现了一个牛逼的SQL, 这个SQL很简单: select a.column1, b.column2 from a left join b on a.id = b.id 这两张表都是很大的表,保存了好多年的数据,表b按照日期和类目进行了分区. 因为没有加限制,所以HiveMetaStore在获取分区的时候,会从mysql中获取这个表所有的分区信息,SQL如下:
异常信息如下: select * from b_pt_pr_customer_address_info limit 19; FAILED: SemanticException Unable to determine if hdfs://nodexx:8020/user/hive/warehouse/ss_aa_bb_info is encrypted: java.lang.IllegalArgumentException: Wrong FS: hdfs://nodexx:8020/user/hi
1).Hive中Select Top N的实现 Hive中使用 Order by + Limit 可以很容易地实现Select Top N. 但是在Hive中Order by只能使用1个Reduce,如果表的数据量很大,那么Order by就会力不从心.相对的,Sort by可以启动多个Reduce,每个Reduce做局部排序. 从执行计划explain中可以看出Sort by Limit N启动了两个MR Job.第一个Job是在每个Reduce中做局部排序,然后分别取Top N.假设启动了M
使用hive一段时间以后,今天在使用的时候突然报错,如下: hive> show databases;FAILED: Error in metadata: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClientFAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.