从Apache Drill查询Hive会导致Stackoverflow错误

时间:2015-12-07 07:16:36

标签: sql hadoop hive stack-overflow apache-drill

我正试图在hive中看到一个名为customers的表。我在嵌入模式下使用Drill。我正在使用默认的derby数据库来进行hive Metastore。

当我进行描述时,它会显示所有列和类型。

但是,当我执行这样的选择命令时,

select * from customers limit 10;

在Web UI中,这就是我所拥有的

  

org.apache.drill.common.exceptions.UserRemoteException:SYSTEM ERROR:StackOverflowError

Hive插件:

 {
  "type": "hive",
  "enabled": true,
  "configProps": {
    "hive.metastore.uris": "thrift://ip_address:9083",
    "javax.jdo.option.ConnectionURL": "jdbc:derby:;databaseName=../sample-data/drill_hive_db;create=true",
    "hive.metastore.warehouse.dir": "/user/hive/warehouse",
    "fs.default.name": "file///",
    "hive.metastore.sasl.enabled": "false"
  }
}

日志文件中显示的错误:

  

org.apache.drill.exec.work.foreman.ForemanException:意外   片段初始化期间的异常:java.lang.AssertionError:   内部错误:应用规则DrillPushProjIntoScan时出错,

     

java.lang.StackOverflowError:null at   org.apache.hadoop.fs.FileSystem.get(FileSystem.java:355)   〜[Hadoop的共2.7.1.jar:NA]

最后,这个

  

查询失败:org.apache.drill.common.exceptions.UserRemoteException:   SYSTEM ERROR:StackOverflowError

而且,我使用的版本是:

Apache Drill:1.3.0

Hive:0.13.1-cdh5.3.0

Hadoop:2.5.0-cdh5.3.0

1 个答案:

答案 0 :(得分:0)

我想这是版本冲突。

根据Drill的文档:

  

Drill 1.0支持Hive 0.13。 Drill 1.1支持Hive 1.0。

因此,对于1.1+,你可能会遇到hive 0.13的问题。 阅读更多here

因此,将hive升级到1.0或将钻取机降级到1.0以进行测试。