我正在使用Spark 2.1的Structured Streaming(内部使用Hive 1.2.1 jars)。我尝试为Hive开发ForEachWriter,通过JDBC连接器将流数据写入Hive。
在我的集群上,我有Hive 1.1.0。
如果我使用版本为1.2.1的Hive jdbc jar,则由于客户端和服务器版本不匹配,我会遇到以下异常:
Required field 'client_protocol' is unset!
如果我使用 Hive jdbc 版本为 1.1.0,那么在 Spark 中会出现以下异常:
Caused by: java.lang.NoSuchFieldError: METASTORE_CLIENT_SOCKET_LIFETIME
在初始化
SparkSession
中的HiveContext
时,出现了问题。