Spark上的Hive 2.1.1 - 我应该使用哪个版本的Spark

时间:2017-02-16 17:45:36

标签: hadoop apache-spark hive

我在Ubuntu 16.04上运行 hive 2.1.1 ,hadoop 2.7.3。

根据Hive on Spark: Getting Started,它说

  

安装/构建兼容版本。 Hive root pom.xml    定义它构建/测试的Spark版本   用。

我检查了pom.xml,它显示spark版本是1.6.0。

<spark.version>1.6.0</spark.version>

Hive on Spark: Getting Started也说

  

在Spark 2.0.0之前:./ make-distribution.sh --name   “hadoop2-without-hive”--tgz   “-Pyarn,hadoop-provided,hadoop-2.4,镶木地板提供”

     

自Spark   2.0.0:./ dev / make-distribution.sh --name“hadoop2-without-hive”--tgz“-Pyarn,hadoop-provided,hadoop-2.7,parquet-provided”

所以现在我很困惑,因为我正在运行hadoop 2.7.3。我是否必须将我的hadoop降级为2.4?

我应该使用哪个版本的Spark? 1.6.0或2.0.0?

谢谢!

2 个答案:

答案 0 :(得分:0)

我目前正在使用带有hadoop 2.7.3和hive 2.1的spark 2.0.2并且它正常工作。而且我认为hive会同时支持spark 1.6.x和2.x版本,但我会建议你使用spark 2.x,因为它是最新版本。

为什么要使用spark 2.x的一些动机链接 https://docs.cloud.databricks.com/docs/latest/sample_applications/04%20Apache%20Spark%202.0%20Examples/03%20Performance%20Apache%20(Spark%202.0%20vs%201.6).html

Apache Spark vs Apache Spark 2

答案 1 :(得分:0)

当前版本的Spark 2.X与Hive 2.1和Hadoop 2.7不兼容,存在一个主要错误:

JavaSparkListener不可用,Hive在执行时崩溃

https://issues.apache.org/jira/browse/SPARK-17563

您可以尝试使用Hadoop 2.7和Spark 1.6构建Hive 2.1:

./make-distribution.sh --name "hadoop2-without-hive" --tgz "-Pyarn,hadoop-provided,hadoop-2.7,parquet-provided" 

如果您在2.0之后查看命令,区别在于./make-distribution位于文件夹/ dev中。

如果它对hadoop 2.7.X不起作用,我可以确认你已经能够使用Hadoop 2.6成功构建它,使用:

./make-distribution.sh --name "hadoop2-without-hive" --tgz "-Pyarn,hadoop-provided,hadoop-2.6,parquet-provided" 

和scala 2.10.5