分布式 SQL 引擎
Spark SQL 也可以通过其 JDBC/ODBC 或命令行界面充当分布式查询引擎。在这种模式下,最终用户或应用程序可以直接与 Spark SQL 交互以运行 SQL 查询,而无需编写任何代码。
运行 Thrift JDBC/ODBC 服务器
这里实现的 Thrift JDBC/ODBC 服务器对应于内置 Hive 中的 HiveServer2
。您可以使用 Spark 或兼容 Hive 附带的 beeline 脚本测试 JDBC 服务器。
要启动 JDBC/ODBC 服务器,请在 Spark 目录中运行以下命令
./sbin/start-thriftserver.sh
此脚本接受所有 bin/spark-submit
命令行选项,以及一个 --hiveconf
选项来指定 Hive 属性。您可以运行 ./sbin/start-thriftserver.sh --help
以获取所有可用选项的完整列表。默认情况下,服务器监听 localhost:10000。您可以通过环境变量覆盖此行为,例如
或系统属性
现在,您可以使用 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 消息。使用以下设置在 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
要从 shell 使用 Spark SQL 命令行界面 (CLI)
./bin/spark-sql
有关详细信息,请参阅 Spark SQL CLI