分散SQLエンジン

Spark SQLは、JDBC/ODBCまたはコマンドラインインターフェイスを使用して、分散クエリエンジンとしても機能します。このモードでは、エンドユーザーやアプリケーションは、コードを一切記述することなく、Spark SQLと直接対話してSQLクエリを実行できます。

Thrift JDBC/ODBCサーバーの実行

ここで実装されているThrift JDBC/ODBCサーバーは、組み込みHiveのHiveServer2に対応します。JDBCサーバーは、Sparkまたは互換性のあるHiveに付属するbeelineスクリプトでテストできます。

JDBC/ODBCサーバーを開始するには、Sparkディレクトリで以下を実行します。

./sbin/start-thriftserver.sh

このスクリプトは、bin/spark-submitのすべてのコマンドラインオプションに加えて、Hiveプロパティを指定するための--hiveconfオプションを受け入れます。利用可能なすべてのオプションの完全なリストについては、./sbin/start-thriftserver.sh --helpを実行できます。デフォルトでは、サーバーはlocalhost:10000でリッスンします。この動作は、環境変数、つまり

export HIVE_SERVER2_THRIFT_PORT=<listening-port>
export HIVE_SERVER2_THRIFT_BIND_HOST=<listening-host>
./sbin/start-thriftserver.sh \
  --master <master-uri> \
  ...

またはシステムプロパティ

./sbin/start-thriftserver.sh \
  --hiveconf hive.server2.thrift.port=<listening-port> \
  --hiveconf hive.server2.thrift.bind.host=<listening-host> \
  --master <master-uri>
  ...

これで、beelineを使用してThrift JDBC/ODBCサーバーをテストできます。

./bin/beeline

beelineでJDBC/ODBCサーバーに接続するには、以下を使用します。

beeline> !connect jdbc:hive2://:10000

Beelineはユーザー名とパスワードを尋ねます。非セキュアモードでは、マシンのユーザー名と空白のパスワードを入力するだけです。セキュアモードについては、beelineドキュメントの指示に従ってください。

Hiveの設定は、hive-site.xmlcore-site.xml、およびhdfs-site.xmlファイルをconf/に配置することで行われます。

Hiveに付属するbeelineスクリプトを使用することもできます。

Thrift JDBCサーバーは、HTTPトランスポートを介したThrift RPCメッセージの送信もサポートしています。HTTPモードを有効にするには、システムプロパティとして、またはconf/hive-site.xmlファイルに以下の設定を使用します。

hive.server2.transport.mode - Set this to value: http
hive.server2.thrift.http.port - HTTP port number to listen on; default is 10001
hive.server2.http.endpoint - HTTP endpoint; default is cliservice

テストするには、beelineを使用してHTTPモードでJDBC/ODBCサーバーに接続します。

beeline> !connect jdbc:hive2://<host>:<port>/<database>;transportMode=http;httpPath=<http_endpoint>

セッションを閉じ、CTASを実行した場合は、hive-site.xmlfs.%s.impl.disable.cacheをtrueに設定する必要があります。詳細については、[SPARK-21067]を参照してください。

Spark SQL CLIの実行

シェルからSpark SQLコマンドラインインターフェイス(CLI)を使用するには

./bin/spark-sql

詳細については、Spark SQL CLIを参照してください。