Spark SQL可以通过JDBC/ODBC或命令行接口用作分布式查询引擎,此时终端用户或应用可以直接与Spark SQL交互,运行SQL查询,而不需要再编写任何代码。
Thrift JDBC/ODBC server
Thrift JDBC/ODBC server与Hive 1.2.1中的HiveServer2关系紧密,可以通过Spark或Hive 1.2.1的beeline脚本测试JDBC Server.
首先,启动JDBC/ODBC server
./sbin/start-thriftserver.sh
该脚本接受bin/spark-submit
的所有命令选项,通过--hiveconf
可以指定Hive配置。
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 server
./bin/beeline
在beeline中连接JDBC/ODBC server
beeline> !connect jdbc:hive2://localhost:10000
Spark SQL CLI
Spark SQL CLI可以很方便运行本地模式下的Hive metastore service,并执行查询请求。但是,Spark SQL CLI不能与Thrift JDBC Server通信。
启动Spark SQL CLI
./bin/spark-sql