当前位置: 首页 > 知识库问答 >
问题:

无法使用JDBC连接到Spark thriftserver

令狐珂
2023-03-14
$ ./spark-2.1.1-bin-hadoop2.7/sbin/start-thriftserver.sh
$ ./spark-2.1.1-bin-hadoop2.7/bin/beeline -u 'jdbc:hive2://localhost:10000'
Connecting to jdbc:hive2://localhost:10000
log4j:WARN No appenders could be found for logger (org.apache.hive.jdbc.Utils).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Connected to: Spark SQL (version 2.1.1)
Driver: Hive JDBC (version 1.2.1.spark2)
Transaction isolation: TRANSACTION_REPEATABLE_READ
Beeline version 1.2.1.spark2 by Apache Hive
0: jdbc:hive2://localhost:10000>
[2017-07-07 16:46:57] java.lang.ClassNotFoundException: org.apache.thrift.transport.TTransportException
[2017-07-07 16:46:57]   at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
[2017-07-07 16:46:57]   at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
[2017-07-07 16:46:57]   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
[2017-07-07 16:46:57]   at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
[2017-07-07 16:46:57]   at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:105)
[2017-07-07 16:46:57]   at com.intellij.database.remote.jdbc.impl.RemoteDriverImpl.connect(RemoteDriverImpl.java:27)
[2017-07-07 16:46:57]   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[2017-07-07 16:46:57]   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[2017-07-07 16:46:57]   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[2017-07-07 16:46:57]   at java.lang.reflect.Method.invoke(Method.java:498)
[2017-07-07 16:46:57]   at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:324)
[2017-07-07 16:46:57]   at sun.rmi.transport.Transport$1.run(Transport.java:200)
[2017-07-07 16:46:57]   at sun.rmi.transport.Transport$1.run(Transport.java:197)
[2017-07-07 16:46:57]   at java.security.AccessController.doPrivileged(Native Method)
[2017-07-07 16:46:57]   at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
[2017-07-07 16:46:57]   at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
[2017-07-07 16:46:57]   at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
[2017-07-07 16:46:57]   at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
[2017-07-07 16:46:57]   at java.security.AccessController.doPrivileged(Native Method)
[2017-07-07 16:46:57]   at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
[2017-07-07 16:46:57]   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[2017-07-07 16:46:57]   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[2017-07-07 16:46:57]   at java.lang.Thread.run(Thread.java:745) (no stack trace)

我将DataGrip配置为使用spark安装文件夹中的JDBC库hive-jdbc-1.2.1.spark2.jar

共有1个答案

柳英资
2023-03-14

在spark 2.2.1发行版中,您将需要以下jar:

commons-logging-1.1.3.jar
hadoop-common-2.7.3.jar
hive-exec-1.2.1.spark2.jar
hive-jdbc-1.2.1.spark2.jar
hive-metastore-1.2.1.spark2.jar
httpclient-4.5.2.jar
httpcore-4.4.4.jar
libthrift-0.9.3.jar
slf4j-api-1.7.16.jar
spark-hive-thriftserver_2.11-2.2.1.jar
spark-network-common_2.11-2.2.1.jar

在Datagrip中,选择classorg.apache.hive.jdbc.hivedrive,并将Tx(事务控制)设置为Manual(spark不支持自动提交)。

您现在应该能够使用urljdbc:hive2://hostname:10000/进行连接

 类似资料:
  • 问题内容: 我能够使用主机“ nash-pc \ sqlexpress”的SQL Server Management Studio连接到本地计算机上的MSSQL 2008 Express。但是,当我连接Microsoft JDBC驱动程序时,它给了我类似下面的错误。JDBC在主机名中有’'的问题吗?我不确定如何使主机名成为“ localhost”,而不是“ nash-pc \ sqlexpress

  • 这是我的实体 这是我的主课 这就是我的persistence.xml 堆栈跟踪:

  • 我正在尝试使用jdbc连接到我的MS SQL2008数据库,如下所示,但它的给出错误 我的数据库名为,实例名为。请建议我如何提供数据库实例名称和数据库名称在URL。 上面写着 但是当我尝试用相同的用户名和密码从DB GUI登录时,它被登录了。想知道在jdbc设置中在哪里提供数据库实例的详细信息 我也试过用下面的dut不管用

  • 我创建了一个简单的类来测试与我的localhost数据库的通信,这是我用Mysql Workbench创建的。Mysql服务器正在运行。JDBC驱动程序被添加到我的项目的类路径中。 当我运行程序时,我得到以下异常: 线程“main”com.mysql.cj.jdbc.Exceptions.CommunicationsException异常:通信链接失败 最后一个成功发送到服务器的数据包是在0毫秒前

  • 这几天来,我无法在本地运行mac os ML的机器上连接到我的postgreSQL数据库。 我机器的nmap显示postgres在5432上运行,我可以通过pgadmin和psql进行本地连接。 收听地址设置为* 当我尝试连接JDBC时,我会遇到以下异常 组织。postgresql。util。PSQLException:连接被拒绝。检查主机名和端口是否正确,邮政局长是否接受TCP/IP连接。

  • 问题内容: 我正在尝试使用JDBC连接到SQL Server 2008。我的SQL Server 2008带有Windows身份验证。 我的代码是 我最终得到ClassNotFoundException。 堆栈跟踪为 问题答案: ClassNotFoundException可能意味着您的类路径中没有可用的SQL * Server驱动程序