Zeppelin的匹配问题

最近由于工作需要,对zeppelin进行了一个比较集中的学习,网上的资料大部分比较基础。这里暂且总结下这些天遇到的问题。
生产集群版本较老,hadoop2.2.0,spark1.3.
`先是部署了zeppelin0.73,

org.apache.zeppelin.interpreter.InterpreterException: Spark assembly has been built with Hive, including Datanucleus jars on classpath Exception in thread "main" java.lang.NoSuchMethodError: scala.collection.immutable.$colon$colon.hd$1()Ljava/lang/Object; at org.apache.spark.deploy.SparkSubmitArguments.parse$1(SparkSubmitArguments.scala:295) at org.apache.spark.deploy.SparkSubmitArguments.parseOpts(SparkSubmitArguments.scala:288)

,把SPARK_HOME/lib目录下的所有jar包都拷到zeppelin的lib下。,再运行又报错

org.apache.thrift.transport.TTransportException at org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:132) at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86) at org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:429) at org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:318) at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:219) at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69) at org.apache.zeppelin.interpreter.thrift.RemoteInterpreterService$Client.recv_interpret(RemoteInterpreterService.java:266)

经过各种折腾过程省略,最后发现,是视频spark解释器配置的master使用的事ip地址,换成nserver,OK,spark解释器运行成功;
但是再进一步配置运行hive解释器的时候,仍然会报错:

java.lang.NoSuchMethodError: scala.runtime.ObjectRef.zero()Lscala/runtime/ObjectRef;
at scala.util.parsing.combinator.Parsers$Parser.$tilde$greater(Parsers.scala)
at org.apache.spark.sql.SparkSQLParser.cache$lzycompute(SparkSQLParser.scala:72)
at org.apache.spark.sql.SparkSQLParser.cache(SparkSQLParser.scala:71)
at org.apache.spark.sql.SparkSQLParser.start$lzycompute(SparkSQLParser.scala:69)
at org.apache.spark.sql.SparkSQLParser.start(SparkSQLParser.scala:69)
at org.apache.spark.sql.catalyst.AbstractSparkSQLParser.apply(AbstractSparkSQLParser.scala:38)

严重怀疑zeppelin0.73与spark0.13不匹配,
zeppelin0.73默认是scala.2.11环境下编译的,而生产环境使用2.10;
查阅资料,官网称,自0.62起可以通过配置spark——home的方式,自动选择兼容的scala环境,长时候并没有成功,依然是同样的报警;
翻看scala源码,果然是scala版本的问题:
在这里插入图片描述
2.10版本没有这个方法scala.runtime.ObjectRef.zero():
在这里插入图片描述

同时在官网一个不起眼的角落里,在0.6向0.7升级的提示找到了旁证:
官网说明

在这里插入图片描述
zeppelin0.7不再支持spark1.1到1.3,
问题解!
于是在生产集群配置了使用scala2.10编译的zeppelin0.60,系统运行良好。

猜你喜欢

转载自blog.csdn.net/gujiangdiaosou/article/details/86685247
今日推荐