遇到的问题:
在配置spark的时候,启动spark-shell正常启动和使用,但是使用脚本start-all.sh 启动所有的服务时遇到问题,抛出Java异常:
Unsupported major.minor version 51.0
原因分析
看了sprak启动脚本代码,基本上就是config加载相关环境变量(Hadoop相关以及$SPARK_HOME等的需要配置好,其他spark相关的配置在conf/spark-env.sh中配置),然后启动master,再启动slaves。
我将在start-slaves.sh中最后一行shell echo出来执行,发现并没有问题,可以正常启动slave。所以原因可能是我用一个账号作为中转二次ssh登录的时候造成Java环境丢失,并没有新安装的Java1.7环境。
解决方案
在spark-env.sh中再次export JAVA_HOME 或者 再次source .bash_profile。第二中方案比较优秀,因为可以针对不同机器通用。