分散SQLエンジン
Spark SQLはJDBC/ODBCあるいはコマンドラインインタフェースを使って分散型クエリエンジンとして振舞うこともできます。このモードでは、エンドユーザあるいはアプリケーションがコードを書くこと無しにSQLクエリを直接実行するためにSpark SQLと直接やり取りをすることができます。
Thrift JDBC/ODBC サーバの実行
ここで実装されているThrift JDBC/ODBC サーバは組み込み Hive の HiveServer2
に対応します。Spark あるいは互換性のある Hive に付属するbeelineスクリプトを使ってJDBCサーバをテストすることができます。
JDBC/ODBCサーバを開始するには、Sparkディレクトリで以下を実行します:
./sbin/start-thriftserver.sh
このスクリプトはHiveプロパティを指定する--hiveconf
を加えて全ての bin/spark-submit
コマンドラインを受け付けます。全ての利用可能なオプションのリストのために./sbin/start-thriftserver.sh --help
を実行するかも知れません。デフォルトでは、サーバはlocalhsot:10000をlistenします。以下のように環境変数を使ってこの挙動を上書きできます。例えば:
あるいはシステムプロパティを使って上書き:
これで、Thrift JDBC/ODBC サーバをテストするために beelineを使うことができます:
./bin/beeline
以下のようにしてbeeline内でJDBC/ODBCに接続します:
beeline> !connect jdbc:hive2://localhost:10000
Beeline はユーザ名とパスワードを尋ねるでしょう。セキュアで無いモードでは、単にマシーン上のユーザ名を入力し空のパスワードを入力します。セキュアモードのためには、beeline ドキュメント にある手順に従ってください。
Hiveの設定は、hive-site.xml
をconf/
内の core-site.xml
および hdfs-site.xml
ファイルに置き換えることで行われます。
Hiveに付属するbeeline スクリプトを使うかも知れません。
Thrift JDBC サーバはHTTPトランスポート上のThrift RPC メッセージの送信もサポートします。以下の設定を使ってシステムプロパティあるいはconf/
内のhive-site.xml
ファイルの中でHTTPモードを有効にします:
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>?hive.server2.transport.mode=http;hive.server2.thrift.http.path=<http_endpoint>
セッションを閉じて CTAS を実行する場合、hive-site.xml
で fs.%s.impl.disable.cache
を true に設定する必要があります。詳細は、[SPARK-21067] を見てください。
Spark SQL CLIの実行
Spark SQL CLI はローカルモードでHiveメタストアサービスをを実行するのに便利なツールで、コマンドラインからの入力のクエリを実行します。Spark SQL CLIはThrift JDBCサーバとやりとりできないことに注意してください。
Spark SQL CLIを開始するには、Spark ディレクトリで以下を実行してください:
./bin/spark-sql
Hiveの設定は、hive-site.xml
をconf/
内の core-site.xml
および hdfs-site.xml
ファイルに置き換えることで行われます。全ての利用可能なオプションの完全なリストのために、./bin/spark-sql --help
を実行するかもしれません。