Spark入门(五)Spark SQL shell启动方式(元数据存储在derby)
一、spark-sql shell介紹
Spark sql是以hive SQL提交spark任務到spark集群執行。
由于spark是計算框架沒有存儲功能,所有spark sql數據表映射關系存儲在運行shell的當前目錄下metastore_db目錄里面(spark默認使用derby數據庫創建的本地存儲,使用其他非本地數據庫沒有此目錄),切換不同的目錄啟動spark-sql shell會創建不同位置的metastore_db目錄存儲關系數據。而且metastore_db目錄在spark-sql shell里面訪問權限是獨占的,同一個目錄只能啟動一個spark-sql shell進程,多啟動會報錯。
?
二、啟動spark-sql shell
--driver-class-path是指定driver程序啟動數據庫連接驅動類庫
--jars是給worker執行調用的類庫,需要指定數據庫連接驅動類庫
--total-executor-cores? 啟動的核數,默認是所有核數
--executor-memory? 每個work分配的內存,默認是work的所有內存
數據庫連接驅動類庫放在spark-sql機器的指定目錄。也可以添加到spark集群每臺機器的spark安裝目錄的jars目錄下,這樣就不用指定--driver-class-path --jars?
cd ~/software/spark-2.4.4-bin-hadoop2.6 bin/spark-sql --master spark://hadoop01:7077,hadoop02:7077,hadoop03:7077 --driver-class-path /home/mk/mysql-connector-java-5.1.26-bin.jar --jars /home/mk/mysql-connector-java-5.1.26-bin.jar --total-executor-cores?2 --executor-memory?1g?執行結果:
?
?
?
三、執行sql
(1)創建表
create table test(id int, name string) USING org.apache.spark.sql.jdbc options(url 'jdbc:mysql://192.168.150.1:3306/spark-mysql?user=root&password=admin', dbtable 'test_a');show tables;?
(2)插入數據
insert into test values(1, 'a'), (2, 'b'), (3, 'c'); select * from test;(3) 刪除元數據表
drop table test;總結
以上是生活随笔為你收集整理的Spark入门(五)Spark SQL shell启动方式(元数据存储在derby)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spark入门(四)Idea远程提交项目
- 下一篇: 护花危情结局 该剧主要讲述了什么故事