我正在使用 Spark 2.1 的结构化流式传输(它在内部使用 Hive 1.2.1 jar)。我正在尝试为 Hive 开发 ForEachWriter,以通过 JDBC 连接器将流数据写入 Hive。
在我的集群上,我有 Hive 1.1.0。
如果我使用 1.2.1 版的 Hive jdbc jar,那么由于 Hive 的客户端和服务器版本不匹配,我会遇到异常:
Required field 'client_protocol' is unset!
如果我使用 1.1.0 版的 Hive jdbc jar,那么我在 Spark 中会遇到如下异常:
Caused by: java.lang.NoSuchFieldError: METASTORE_CLIENT_SOCKET_LIFETIME
它在 SparkSession
中初始化 HiveContex
t 时出现。
最佳答案
我遇到了同样的问题并找到了 HIVE-9508 .我建议你将 hive 升级到 1.2.1 或更高版本。
关于java - 获取异常 "java.lang.NoSuchFieldError: METASTORE_CLIENT_SOCKET_LIFETIME"或 "Required field ' client_protocol' 未设置!”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44151374/