SparkSQL(3):開啟ThriftServer服務
阿新 • • 發佈:2019-01-08
一、實現功能
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() }