我正在尝试连接到r的Hive。我已经在我的r env上加载了rjdbc和rjava库。我使用的是一个linux服务器,hadoop(hortonworkssandbox2.1)和r(3.1.1)安装在同一个盒子中。这是我用来连接的脚本:
drv <- JDBC("org.apache.hive.jdbc.HiveDriver", "/usr/lib/hive/lib/hive-jdbc.jar")
conn <- dbConnect(drv, "jdbc:hive2://localhost:10000/default")
我得到这个错误:
.jcall出错(drv@jdrv,“ljava/sql/connection;”,“connect“,as.character(url)[1],:java.lang.noclassdeffounderror:无法初始化类org.apache.hive.service.auth.hiveauthfactory
我已经检查了我的类路径是否包含所有的jar文件 /usr/lib/hive
以及 /usr/lib/hadoop
,但无法确定是否还有其他遗漏。知道是什么导致了这个问题吗??我是一个相当新的r(和编程的问题),所以任何具体的步骤是非常感谢。
2条答案
按热度按时间1cosmwyk1#
我用rjdbc和一些配置行成功地从r连接到了hive。我更喜欢rjdbc而不是rhive,因为rhive需要在集群的所有节点上进行复杂的安装(我真的不明白为什么)。
这是我的解决方案:
mcvgt66p2#
您只需使用rhive包从r连接到hiveserver2
下面是我必须使用的命令。