我无法在Mac OSX 10.8上本地运行Shark查询。我试图对存储在Hive中的数据运行一些测试查询。我使用的是Scala 2.9.3和Hive 0.9.0,两者似乎运行良好。 Hive数据库使用MySQL来存储元数据。
我可以很好地启动鲨鱼。我可以在Shark控制台中看到Hive中的所有数据库。我可以切换到所需的数据库。但是当我尝试查询数据时,我会收到错误。
简单查询如下所示:
select * from table limit 100;
错误如下所示:
25.351: [Full GC 98320K->17564K(1013632K), 0.1279630 secs]
java.lang.NoSuchMethodError: org.apache.hadoop.hive.shims.HadoopShims.isLocalMode(Lorg/apache/hadoop/conf/Configuration;)Z
at shark.execution.FileSinkOperator.execute(FileSinkOperator.scala:123)
at shark.execution.SparkTask.execute(SparkTask.scala:101)
at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:134)
at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:57)
at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1326)
at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1118)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:951)
at shark.SharkCliDriver.processCmd(SharkCliDriver.scala:294)
at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:406)
at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:341)
at shark.SharkCliDriver$.main(SharkCliDriver.scala:203)
at shark.SharkCliDriver.main(SharkCliDriver.scala)
FAILED: Execution Error, return code -101 from shark.execution.SparkTask
答案 0 :(得分:0)
这似乎是Shark代码的最新成员,https://github.com/amplab/shark/pull/140/files或许没有使用Hive 0.9进行测试?
当前HadoopShims.java
确实拥有isLocalMode()
,但Hive 0.9 HadoopShims.java
不拥有isLocalMode()
方法。
我建议至少使用Hive 0.10,如果可以,最好使用最近的0.12。