分布式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。你可以通过环境变量来覆盖此行为,例如:
export HIVE_SERVER2_THRIFT_PORT=<监听端口>
export HIVE_SERVER2_THRIFT_BIND_HOST=<监听主机>
./sbin/start-thriftserver.sh \
--master <主节点 URI> \
...
或系统属性:
./sbin/start-thriftserver.sh \
--hiveconf hive.server2.thrift.port=<监听端口> \
--hiveconf hive.server2.thrift.bind.host=<监听主机> \
--master <主控URI>
...
现在您可以使用 beeline 测试 Thrift JDBC/ODBC 服务器:
./bin/beeline
使用以下命令连接到beeline中的JDBC/ODBC服务器:
beeline> !连接 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 模式,作为系统属性或在
hive-site.xml
文件中,在
conf/
中:
hive.server2.transport.mode - 设置为值:http
hive.server2.thrift.http.port - 监听的HTTP端口号;默认是 10001
hive.server2.http.endpoint - HTTP 端点;默认是 cliservice
要测试,请使用 beeline 以 HTTP 模式连接到 JDBC/ODBC 服务器:
beeline> !connect jdbc:hive2://<主机>:<端口>/<数据库>?hive.server2.transport.mode=http;hive.server2.thrift.http.path=
如果你关闭了一个会话并进行了 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