2016-08-18 98 views
0

我使用多插入查询来优化目的,它肯定会帮助我很多,但是每天运行,我可以找到3到4个id 10万)花费太多时间在减速机上。要解决这个问题我已经skewjoin优化特性实现的,但它抛出里面我是用Hive:使用多插入查询:失败:SemanticException不应该发生

set hive.exec.compress.output=true; 
set mapreduce.output.fileoutputformat.compress=true; 
set mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.SnappyCodec; 
set mapreduce.output.fileoutputformat.compress.type=BLOCK; 
SET hive.optimize.skewjoin=true; 
set hive.exec.compress.intermediate=true; 
set hive.intermediate.compression.codec=org.apache.hadoop.io.compress.SnappyCodec; 
set hive.intermediate.compression.type=BLOCK; 
set hive.optimize.skewjoin=true; 
set hive.skewjoin.key=100000; 
set hive.skewjoin.mapjoin.map.tasks=10000; 
set hive.skewjoin.mapjoin.min.split=33554432; 

请建议我如何能优化这个偏斜数据

"FAILED: SemanticException Should not happened" 

属性。(每个新运行ID的会有所不同)

回答

0
set hive.optimize.skewjoin=true; ---> set hive.optimize.skewjoin=false; 
+1

请问您可以给答案补充一些解释。 – Tushar

+0

欢迎来到Stack Overflow!虽然这段代码可能会回答这个问题,但最好包含关于问题的描述,以及代码如何解决给定问题。对于将来,这里是一些信息,[如何破解一个真棒回答](http://stackoverflow.com/help/how-to-answer)在堆栈溢出。 – dirtydanee