本帖最后由 pig2 于 2014-7-11 16:16 编辑
问题导读:
1.shark和hadoop2 进行整合需要经过哪些步骤?
2.shark安装之前需要安装哪些软件?
3.shark与hadoop是如何整合的?
本文目的是测试将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
运行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,至进行了简单的操作,也没问题)。
|