我正在尝试在shark-0.8.0
. 根据文档(https://github.com/amplab/shark/wiki/Shark-User-Guide),我创建了如下表:
CREATE TABLE mydata_cached (
artist string,
title string ,
track_id string,
similars array<array<string>>,
tags array<array<string>>
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
TBLPROPERTIES('shark.cache' = 'MEMORY');
该表已创建,我可以使用LOAD DATA
命令加载数据。但是当我尝试查询该表时,即使是一条SELECT COUNT(1)
语句也失败并出现以下错误:
shark> select count(1) from mydata_cached;
shark.memstore2.CacheType$InvalidCacheTypeException: Invalid string representation of cache type MEMORY
at shark.memstore2.CacheType$.fromString(CacheType.scala:48)
at shark.execution.TableScanOperator.execute(TableScanOperator.scala:119)
at shark.execution.Operator$$anonfun$executeParents$1.apply(Operator.scala:115)
at shark.execution.Operator$$anonfun$executeParents$1.apply(Operator.scala:115)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:60)
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:233)
at scala.collection.mutable.ArrayBuffer.map(ArrayBuffer.scala:47)
at shark.execution.Operator.executeParents(Operator.scala:115)
at shark.execution.UnaryOperator.execute(Operator.scala:187)
at shark.execution.Operator$$anonfun$executeParents$1.apply(Operator.scala:115)
at shark.execution.Operator$$anonfun$executeParents$1.apply(Operator.scala:115)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:60)
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:233)
at scala.collection.mutable.ArrayBuffer.map(ArrayBuffer.scala:47)
at shark.execution.Operator.executeParents(Operator.scala:115)
at shark.execution.UnaryOperator.execute(Operator.scala:187)
at shark.execution.Operator$$anonfun$executeParents$1.apply(Operator.scala:115)
at shark.execution.Operator$$anonfun$executeParents$1.apply(Operator.scala:115)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:60)
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:233)
at scala.collection.mutable.ArrayBuffer.map(ArrayBuffer.scala:47)
at shark.execution.Operator.executeParents(Operator.scala:115)
at shark.execution.UnaryOperator.execute(Operator.scala:187)
at shark.execution.Operator$$anonfun$executeParents$1.apply(Operator.scala:115)
at shark.execution.Operator$$anonfun$executeParents$1.apply(Operator.scala:115)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:60)
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:233)
at scala.collection.mutable.ArrayBuffer.map(ArrayBuffer.scala:47)
at shark.execution.Operator.executeParents(Operator.scala:115)
at org.apache.hadoop.hive.ql.exec.GroupByPostShuffleOperator.execute(GroupByPostShuffleOperator.scala:194)
at shark.execution.Operator$$anonfun$executeParents$1.apply(Operator.scala:115)
at shark.execution.Operator$$anonfun$executeParents$1.apply(Operator.scala:115)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:60)
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:233)
at scala.collection.mutable.ArrayBuffer.map(ArrayBuffer.scala:47)
at shark.execution.Operator.executeParents(Operator.scala:115)
at shark.execution.UnaryOperator.execute(Operator.scala:187)
at shark.execution.Operator$$anonfun$executeParents$1.apply(Operator.scala:115)
at shark.execution.Operator$$anonfun$executeParents$1.apply(Operator.scala:115)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:233)
at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:60)
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:233)
at scala.collection.mutable.ArrayBuffer.map(ArrayBuffer.scala:47)
at shark.execution.Operator.executeParents(Operator.scala:115)
at shark.execution.FileSinkOperator.execute(FileSinkOperator.scala:120)
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:1312)
at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1104)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:937)
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
根据 GitHub 上的代码 ( https://github.com/amplab/shark/blob/master/src/main/scala/shark/memstore2/CacheType.scala ),该选项MEMORY
是有效的。我也尝试了MEMORY_ONLY
选项,它给了我同样的错误。关于这里出了什么问题的任何建议或想法?
谢谢,TM