1. 程式人生 > >SparkSQL(3):開啟ThriftServer服務

SparkSQL(3):開啟ThriftServer服務

一、實現功能

SparkSQL的ThriftServer服務其實就是Hive的hiveServer2服務,只是將底層的執行改成spark,同時在spark上啟動。

二、配置

1.修改hive-site.xml的hiveserver2的配置資訊

<property>
	<name>hive.server2.thrift.bind.host</name>
	<value>bigdata.ibeifeng.com</value>
</property>

2. 啟動服務

./sbin/start-thriftserver.sh

3.停止服務

./sbin/stop-thriftserver.sh
  

三、測試

1.通過命令beeline來測試

./bin/beeline
beeline> !connect jdbc:hive2://bigdata.ibeifeng.com:10000

注意:給定使用者名稱的時候,如果hdfs沒有做許可權驗證,可以給定任何值;如果做了許可權驗證,必須給定操作tmp資料夾有許可權的使用者名稱稱

2.通過scala程式碼驗證

(1)新增依賴

<!--sparksql中的Thriftserver2的jdbc測試連結-->
<dependency>
  <groupId>org.spark-project.hive</groupId>
  <artifactId>hive-jdbc</artifactId>
  <version>0.13.1</version>
</dependency>

(2)程式碼

package _0728sql

import java.sql.DriverManager

/**
  * 
  */
object SaprkSQLThrift extends App{
     //1.建立驅動
     val driver="org.apache.hive.jdbc.HiveDriver"
     Class.forName(driver)

      //2.建立連線
      val (url,username,userpasswd)=("jdbc:hive2://bigdata.ibeifeng.com:10000","root","123456")
      val conn=DriverManager.getConnection(url,username,userpasswd)

      //3.執行sql
//      val sql="select * from default.emp a join default.dept b on a.deptno = b.deptno"
      val sql="select * from default.emp"
      val pstmt=conn.prepareStatement(sql)
      val rs=pstmt.executeQuery()

      while(rs.next()){
//        println(rs.getInt("default.empno")+":"+rs.getString("default.ename"))
//        println(rs.getString("emp.ename"))
        println(rs.getInt("emp.empno")+":"+rs.getString("emp.ename"))
      }

      //4.關閉
      rs.close()
      pstmt.close()
      conn.close()

}

(測試成功~)