首页 > 解决方案 > R 连接到 Hive protobuf 类错误

问题描述

我正在尝试使用 R 连接到远程 Hive,每向前一步我都会发现一个新错误。目前我正在这样做:

library("DBI")
library("rJava")
library("RJDBC")

cp = c("/path/jars/hadoop-common-3.1.0.jar", 
       "/path/jars/hive-jdbc-2.3.3-standalone.jar")
.jinit(classpath=cp)

       drv <- JDBC("org.apache.hive.jdbc.HiveDriver", 
"/path/jars/hive-jdbc-2.3.3-standalone.jar", 
                    identifier.quote="`")
        conn <- dbConnect(drv, "jdbc:hive2://<ip>:10000/default", "myuser", "")

我得到的只是以下错误,它与protobuf有关,但不知道这是本地问题(env?)还是服务器端问题。

java.lang.NoClassDefFoundError: com/google/protobuf/ProtocolMessageEnum

标签: rhiveprotocol-buffers

解决方案


从 hadoop 安装下载或获取 protobuf.jar 并添加它可以解决问题。

cp = c("/path/jars/hadoop-common-3.1.0.jar", 
       "/path/jars/hive-jdbc-2.3.3-standalone.jar",
       "/path/jars/protobuf-java-2.5.0.jar")

推荐阅读