【问题标题】:RJDBC Error When Trying to Connect to Hive Server: org.apache.thrift.TApplicationException: Invalid method name: 'execute'尝试连接到 Hive 服务器时出现 RJDBC 错误:org.apache.thrift.TApplicationException:无效的方法名称:'execute'
【发布时间】:2013-09-16 08:42:16
【问题描述】:

我一直在尝试使用 RJDBC 包将 R(在本地机器上)与 Hive(服务器)连接,并且看到错误:

.jcall(drv@jdrv, "Ljava/sql/Connection;", "connect", as.character(url)[1], 中的错误: java.sql.SQLException:org.apache.thrift.TApplicationException:无效的方法名称:'execute'

我直接将服务器上运行的 jar 复制到我的本地机器上,这应该不是驱动程序版本的问题。我也尝试过使用早期版本的 RJDBC 包,但也没有用。

如果有任何想法/建议,我将不胜感激。

我的脚本:

#

hive_connection

# lib_dir: 包含 jar 和驱动程序的目录 hive_class_path

drv

return (dbConnect(drv, server, 'hive','hive') ) }

conn

【问题讨论】:

    标签: r jdbc hadoop hive rjdbc


    【解决方案1】:

    我通过以下两个步骤解决了同样的问题 -

    变化一:

    drv <- JDBC( 'org.apache.hive.jdbc.HiveDriver', classPath= hive_class_path, "`" ) 
    

    更改在驱动程序中,注意我取出了.hadoop

    变化2:

    server <- sprintf( 'jdbc:hive2://%s:%s', hostname, port )
    

    我在连接的url中添加了“2”,连接到hiveServer2。

    我通过阅读得到了详细的解释 - http://jayunit100.blogspot.com/2013/12/the-anatomy-of-jdbc-connection-in-hive.html

    【讨论】:

      【解决方案2】:

      试试
      drv &lt;- JDBC( 'org.apache.hadoop.hive.jdbc.HiveDriver',c(hive_class_path ,pattern="jar$" ,full.names=T) )

      【讨论】:

        【解决方案3】:

        这与驱动程序和端口有关,我在连接 hive 和 jdbc 驱动程序时遇到了同样的错误。最后我找到了正确的驱动程序和带有端口的配置单元服务。效果很好。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-05-28
          • 1970-01-01
          • 1970-01-01
          • 2020-07-11
          • 1970-01-01
          • 2012-10-04
          • 1970-01-01
          • 2021-03-26
          相关资源
          最近更新 更多