我使用的是azurehdinsight,并希望使用jdbc以类似的方式连接到thrift服务器:thrift jdbc/odbc服务器。
不过,它总是连接到Hive,而不是spark thrift服务器。虽然它们看起来很相似,而且我可以查询数据,但我想利用spark执行引擎,因为我主要使用spark2,有时需要jdbc连接。spark引擎也可能比hive/tez更快。
连接字符串如下所示:
jdbc:hive2://hdinsight-name.azurehdinsight.net:443/default;ssl=true?hive.server2.transport.mode=http;hive.server2.thrift.http.path=/hive2
驾驶员尝试:
1. maven:/org.spark-project.hive:hive-jdbc:1.2.1.spark2
2. maven:/org.apache.hive:hive-jdbc
更新:看起来spark thrift server没有公开:hdinsight中使用的端口
1条答案
按热度按时间a14dhokn1#
我能够通过以下解决方法从jdbc客户端连接到spark thrift服务器。
spark thrift服务器正在端口10002上运行,如azure hdinsight文档中所述,该端口不可公开访问。因此,这里是从本地jdbc客户机连接到sparksql的另一种方法。
背景:
我通过ssh连接到集群头节点。
从这里,我可以使用beeline客户端连接到spark-thrift服务器。
使用beeline,我可以使用spark引擎运行sql查询。
解决方案:
所以我在本地机器上设置了ssh端口转发(将本地端口10002转发到集群头节点)
现在,我可以在jdbc客户机中使用这个端口来连接sparksql。
这样,就可以从本地jdbc客户机使用sparksql。