037 SparkSQL ThriftServer服务的使用和程序中JDBC的连接

时间:2021-01-02 15:26:13

一:使用

1.实质

  提供JDBC/ODBC连接的服务

  服务运行方式是一个Spark的应用程序,只是这个应用程序支持JDBC/ODBC的连接,

  所以:可以通过应用的4040页面来进行查看操作

2.启动服务

  037 SparkSQL ThriftServer服务的使用和程序中JDBC的连接

3.配置(已经被隐含)

  1. 配置thriftserver2的ip地址和端口号
    修改hive-site.xml文件
    hive.server2.thrift.port=10000
    hive.server2.thrift.bind.host=localhost
  2. 集成Hive环境(类似SparkSQL)
  3. 启动服务
    $ sbin/start-thriftserver.sh
    $ sbin/stop-thriftserver.sh
  4. 测试

  037 SparkSQL ThriftServer服务的使用和程序中JDBC的连接

二:测试

重要的是需要哪些服务的开启。

1.前提

  首先是hadoop的两个服务要开启

  然后是hive 的metastore

  然后启动spark-shell,如果没有启动hive的metastore,则会在这一步报错,说找不到hive的9083端口。至于启动spark-shell,则是为了看4040端口上的JDBS/ODBC服务

  然后启动hive thriftservice

  037 SparkSQL ThriftServer服务的使用和程序中JDBC的连接

2.测试

  命令行测试,使用beeline脚本连接

  上面的截图已经操作了。

  037 SparkSQL ThriftServer服务的使用和程序中JDBC的连接

3.界面(4040端口)

  037 SparkSQL ThriftServer服务的使用和程序中JDBC的连接

4.测试sql语句

  测试一:

  037 SparkSQL ThriftServer服务的使用和程序中JDBC的连接

  测试二:

  037 SparkSQL ThriftServer服务的使用和程序中JDBC的连接

三:程序

1.结构

  037 SparkSQL ThriftServer服务的使用和程序中JDBC的连接

2.添加依赖包

  037 SparkSQL ThriftServer服务的使用和程序中JDBC的连接

3.程序

 package com.scala.it

 import java.sql.DriverManager

 object ThriftserverDemo {
def main(args: Array[String]):Unit= {
//add driver
val driver="org.apache.hive.jdbc.HiveDriver"
Class.forName(driver) //get connection
val (url,username,userpasswd)=("jdbc:hive2://linux-hadoop01.ibeifeng.com:10000","beifeng","beifeng")
val connection=DriverManager.getConnection(url,username,userpasswd) //get statement
connection.prepareStatement("use hadoop09").execute()
val sql="select * from student"
val statement=connection.prepareStatement(sql) //get result
val rs=statement.executeQuery()
while(rs.next()){
println(s"${rs.getInt(1)}:${rs.getString(2)}")
} //close
rs.close()
statement.close()
connection.close()
}
}

4.运行结果

  037 SparkSQL ThriftServer服务的使用和程序中JDBC的连接