一:使用
1.實質
提供JDBC/ODBC連接的服務
服務運行方式是一個Spark的應用程序,只是這個應用程序支持JDBC/ODBC的連接,
所以:可以通過應用的4040頁面來進行查看操作
2.啟動服務

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. 測試

二:測試
重要的是需要哪些服務的開啟。
1.前提
首先是hadoop的兩個服務要開啟
然后是hive 的metastore
然后啟動spark-shell,如果沒有啟動hive的metastore,則會在這一步報錯,說找不到hive的9083端口。至於啟動spark-shell,則是為了看4040端口上的JDBS/ODBC服務
然后啟動hive thriftservice

2.測試
命令行測試,使用beeline腳本連接
上面的截圖已經操作了。

3.界面(4040端口)

4.測試sql語句
測試一:

測試二:

三:程序
1.結構

2.添加依賴包

3.程序
1 package com.scala.it 2 3 import java.sql.DriverManager 4 5 object ThriftserverDemo { 6 def main(args: Array[String]):Unit= { 7 //add driver 8 val driver="org.apache.hive.jdbc.HiveDriver" 9 Class.forName(driver) 10 11 //get connection 12 val (url,username,userpasswd)=("jdbc:hive2://linux-hadoop01.ibeifeng.com:10000","beifeng","beifeng") 13 val connection=DriverManager.getConnection(url,username,userpasswd) 14 15 //get statement 16 connection.prepareStatement("use hadoop09").execute() 17 val sql="select * from student" 18 val statement=connection.prepareStatement(sql) 19 20 //get result 21 val rs=statement.executeQuery() 22 while(rs.next()){ 23 println(s"${rs.getInt(1)}:${rs.getString(2)}") 24 } 25 26 //close 27 rs.close() 28 statement.close() 29 connection.close() 30 } 31 }
4.運行結果

