2017-06-26 34 views
0

我有一个HDInsight集群正在运行3.6,它根据docs只捆绑了Spark 2.1.0。在使用HDI 3.6的集群上,Spark总是使用旧版本1.6.3版本

显然李维一直没有整合这个版本并试图卷曲李维(像火花的作业Azure的教程文档建议)导致HTTP 502 BAD GATEWAY响应 - 所以我试图手动提交火花的工作。

然而,当我ssh到主节点,并使用​​我立刻注意到包装脚本打印如下:

SPARK_MAJOR_VERSION is set to 1, using spark1

所以我认为设置SPARK_MAJOR_VERSION = 2将迫使它运行spark2 ,并且包装器检测到它并按照它应该打印它。但火花的版本并没有真正改变。我得到了一个二进制不兼容的错误(与Scala一样神秘 - 关于funcArrow)。

我看看spark-wrapper.sh文件,发现它处理不同版本的火花:

else 
    echo -e "SPARK_MAJOR_VERSION is set to ${SPARK_MAJOR_VERSION}, using Spark${SPARK_MAJOR_VERSION}" 1>&2 
    SCRIPT="/usr/hdp/current/spark${SPARK_MAJOR_VERSION}-client/bin/${FILE}" 
fi 

所以,我发起里面/usr/hdp/current/spark2-clientspark-shell可执行文件并立即打印如下:

Welcome to 
     ____    __ 
    /__/__ ___ _____/ /__ 
    _\ \/ _ \/ _ `/ __/ '_/ 
    /___/ .__/\_,_/_/ /_/\_\ version 1.6.3 
     /_/ 

Using Scala version 2.10.5 (OpenJDK 64-Bit Server VM, Java 1.8.0_131) 

Spark 2.1.0使用Scala 2.11 - 2.10会显示弃用警告 - 因此HDInsight绝对使用Spark 1.x

我错过了什么或这是一个已知的问题?

其他信息: 我使用powershell cmdlet创建了此群集 - 但群集肯定是3.6

+0

我想你应该提高它的支持,我不认为这里的人可以帮助你, – 4c74356b41

+0

@ 4c74356b41大概会在10分钟左右,只是想知道这是一个已知的问题或某事 – SacredSkull

+0

我不知道没有用,所以不能帮助你。 – 4c74356b41

回答

0

事实证明,因为我使用powershell azure cmdlet配置集群,所以无法指定我需要的集群类型(无论如何我都无法确定)。自从我将这个“错误”的一个下来后,我知道我在创建版本设置为3.6时没有收到任何错误。看起来HDInsight 3.6并不一定是来自Spark2。

简而言之,配置与ARM(Azure资源管理器)的模板系统相比要好得多。这样做立刻让我得到了一个Spark2作为默认提示。看看这个模板,它很清楚地表明集群的类型是SPARK2

0

这看起来不像HDI 3.6群集。或者这个实例有问题。 你可以检查版本吗?请检入Azure门户或ssh会话类型:ls /usr/hdp。该命令将打印实际位的版本文件夹。对于基于3.6的群集,它应显示:2.6.0.10-29或类似内容。