分布式 SQL 引擎
Spark SQL 还可以使用其 JDBC/ODBC 或命令行界面充当分布式查询引擎。在此模式下,终端用户或应用程序可以直接与 Spark SQL 交互以运行 SQL 查询,而无需编写任何代码。
运行 Thrift JDBC/ODBC 服务器
此处实现的 Thrift JDBC/ODBC 服务器对应于内置 Hive 中的 HiveServer2
。您可以使用 Spark 或兼容 Hive 附带的 beeline 脚本来测试 JDBC 服务器。
要在 Spark 目录中启动 JDBC/ODBC 服务器,请运行以下命令
./sbin/start-thriftserver.sh
此脚本接受所有 bin/spark-submit
命令行选项,以及一个 --hiveconf
选项用于指定 Hive 属性。您可以运行 ./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://localhost:10000
Beeline 将要求您输入用户名和密码。在非安全模式下,只需输入您机器上的用户名和空密码。对于安全模式,请遵循 beeline 文档中给出的说明。
Hive 的配置通过将您的 hive-site.xml
、core-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.xml
中将 fs.%s.impl.disable.cache
设置为 true。更多详细信息请参阅 [SPARK-21067]。
运行 Spark SQL 命令行界面
要从 shell 使用 Spark SQL 命令行界面 (CLI)
./bin/spark-sql
有关详细信息,请参阅 Spark SQL 命令行界面