037 SparkSQL ThriftServer服務的使用和程序中JDBC的連接


一:使用

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.運行結果

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM