齐柏林失败; Class UTF8String.class Vora 和 Spark 1.5.2 库之间存在差异

Zeppelin fails; Class UTF8String.class is different between Vora and Spark 1.5.2 libraries

我安装了 Vora 1.1。 SLES 11 SP3 上 HDP 2.3 和 Spark 1.5.2 上的补丁 1。这不完全是 Note 2213226 中提到的配置,但 shell-version 的 Vora 似乎可以正常工作安装手册的测试 2.7(后者没有规定 HDP 版本取决于 OS 版本,因此我选择了 SLES 下的 HDP2.3)。

不过,我在使用 Zeppelin 时遇到了问题。 0.5.6版本的github安装好像成功了,在Zeppelin notepad中可以执行"create table"语句,但是执行"show tables"语句时报错:

Error: Job aborted due to stage failure: Task 0 in stage 12.0 failed 4 times, most recent failure: Lost task 0.3 in stage 12.0 (TID 36, eba156.extendtec.com.au): java.io.InvalidClassException: org.apache.spark.unsafe.types.UTF8String; local class incompatible: stream classdesc serialVersionUID = 7459647620003804432, local class serialVersionUID = 7786395165093970948 at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:621) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1623) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1518) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1774) at 
(blablabla)

我相信我找到了原因:

所以我猜这些库的版本不匹配。我该如何进行?谢谢!

我已经将提到的 class 从 Spark 的 "unbinded" 库复制到 spark-vora-zeppelin 组合库,覆盖那里的 class。 "SHOW TABLES" 执行没有任何问题。我想知道这是否是合适的解决方案,但到目前为止它有效。

在Vora1.1 Patch 1之前,官方不支持HDP2.3.4自带的Spark 1.5.2版本(HDP-Spark1.5.2版本与Apache Spark1.5.2版本略有不同)。 Thriftserver 和 Zeppelin 有 2 个已知问题。最简单的解决方法是在 Ambari 之外安装 Apache Spark 1.5.2,而不使用 HDP-Spark 版本。

从 Vora 1.2(2016 年 3 月 31 日发布)开始,HDP-Spark 1.5.2 版本的两个问题都已解决,Vora 与其完全兼容。