本帖最后由 xioaxu790 于 2014-7-14 14:29 编辑
问题导读
1、shark和hadoop2整合,有什么要求?
2、需要shark0.9.0 的什么版本?
3、怎么配置shark,hive,spark?
本文目的是测试将shark和hadoop2进行整合。
本来打算使用Shark 最新版0.9.0 ,但是官方好像还没有针对与Hadoop2的正式下载地址。(这个要说明一下,官方只提供了源码,并没有找到编译好的0.9.0 for hadoop2 ,也许需要自己编译一个,没有证实)
shark0.9.0 的需要:
Scala 2.10.3
Spark 0.9.0
(Optional) Tachyon 0.4.0
AMPLab’s Hive 0.11
请注意版本要求。
于是查找Shark以前的版本是否有针对与Hadoop2的。发现官方提供了Shark0.7 for Hadoop2的下载,而且是编译好的。
需要:
Spark version to 0.7.3
hive-0.9.0
scala-0.9.3
下载下来,配置shark,hive,spark. 运行spark,hadoop2。最后就可以运行测试了(这些步骤可以参考这个:Shark Hive Spark Hadoop2 环境搭建)
运行create table 操作时,报以下错误。
- ERROR shark.SharkDriver: FAILED: Hive Internal Error: java.util.NoSuchElementException(null)
- java.util.NoSuchElementException
- at java.util.HashMap$HashIterator.nextEntry(HashMap.java:796)
- at java.util.HashMap$ValueIterator.next(HashMap.java:822)
- at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyzer.java:6760)
- at shark.parse.SharkSemanticAnalyzer.analyzeInternal(SharkSemanticAnalyzer.scala:150)
- at org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:244)
- at shark.SharkDriver.compile(SharkDriver.scala:197)
- at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:336)
- at org.apache.hadoop.hive.ql.Driver.run(Driver.java:895)
- at shark.SharkCliDriver.processCmd(SharkCliDriver.scala:288)
- 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)
复制代码
接下来进行了各种尝试来解决,问题依然存在。
最后在shark的讨论组里找到了答案,官方解释是他们发布的tar有问题,晕倒。
地址链接。由于这是谷歌的地址,我这里打不开,你们需要的可以自己试试。
于是尝试使用其他版本,经过测试,使用shark-0.8.1-bin-cdh4,hive-0.9.0-bin,hadoop-2.0.0-cdh4.3.0,spark-0.8.1进行整合,可以正常使用(尝试spark-0.7.3,至进行了简单的操作,也没问题)。
------Done----
|