大数据技术之争:PIG对Hive

Exception in thread "main" java.lang.StackOverflowError

at org.datanucleus.query.expression.ExpressionCompiler.isOperator(ExpressionCompiler.java:819)

at org.datanucleus.query.expression.ExpressionCompiler.compileOrAndExpression(ExpressionCompiler.java:190)

at org.datanucleus.query.expression.ExpressionCompiler.compileExpression(ExpressionCompiler.java:179)

at org.datanucleus.query.expression.ExpressionCompiler.compileOrAndExpression(ExpressionCompiler.java:192)

at org.datanucleus.query.expression.ExpressionCompiler.compileExpression(ExpressionCompiler.java:179)

3)利用更为复杂的多层操作,例如接入多个分区,也同样有其局限性。大规模查询可能由于Hive编译器利用metastore进行语义验证时发生错误。这是因为Hive metastore在本质上属于一类SQL模式存储,因此大规模查询可能引发以下错误:“com.mysql.jbdc.PacketTooBigException: Packet for query is too large”。

包括jobconf大小、Hadoop Heap大小以及数据包大小在内的各类属性显然无法进行配置。为了避免这些问题,我们应当更好地设计语义,而非频繁改变配置。