当使用 HDP 2.5 和 spark 1.6.2 时,我们使用带有 Tez 的 Hive 作为其执行引擎并且它工作正常。
但是当我们使用 spark 2.1.0 迁移到 HDP 2.6 时,Hive 无法使用 Tez 作为其执行引擎,并且在DataFrame.saveAsTable
调用 API 时会引发以下异常:
java.lang.NoClassDefFoundError: org/apache/tez/dag/api/SessionNotRunning
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:529)
at org.apache.spark.sql.hive.client.HiveClientImpl.<init> HiveClientImpl.scala:188)
在查看了这个问题的答案之后,我们将 hive 执行引擎切换到 MR (MapReduce) 而不是 Tez 并且它起作用了。
但是,我们希望在 Tez 上与 Hive 合作。为了让 Tez 上的 Hive 工作,解决上述异常需要什么?