2017-09-08 11 views
1

私はAzure HDInsightを使用しており、Thrift JDBC/ODBC Serverと同様にJDBCを使用してThrift Serverに接続します。JDBCを使用してSpark Thrift Serverに接続できません。ハイブを使用し続けます

ただし、常にHiveに接続し、Spark Thrift Serverには接続しません。両方が似ていて、データを照会することができますが、私は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 

更新:スパークスリフトServerが公衆に公開されていないように見える:Ports used in HDInsight

答えて

1

私は接続することができました次の回避策を使用して、JDBCクライアントからThrift Serverを起動します。

Spark Thrift Serverは、Azure HDInsightドキュメントのhereに記載されているように、公開されていないポート10002で動作しています。したがって、ローカルJDBCクライアントからSpark SQLに接続する別の方法があります。

背景:私はSSHを介してヘッドノードをクラスタに接続され

ssh [email protected] 

ここから、私はBearkクライアントを使用してSpark Thrift Serverに接続できました。

私はBearkエンジンを使用してSQLクエリを実行できます。ソリューション

は、だから私は、私は、JDBCクライアントでこのポートを使用することができ、今

ssh -L 10002:localhost:10002 [email protected] 

を(ヘッドノードをクラスタ化するために、前方のローカルポート10002)私のローカルマシンにSSHポート転送を設定しましたSpark SQLに接続します。

jdbc:hive2://localhost:10002/;transportMode=http 

これで、ローカルのJDBCクライアントからSpark SQLを使用できます。

関連する問題