1.Spark ThriftServer
Spark ThriftServer 相當于一個持續(xù)性的Spark on Hive集成模式,可以啟動并監(jiān)聽在10000端口,持續(xù)對外提供服務(wù),可以使用數(shù)據(jù)庫客戶端工具或代碼連接上來,操作Spark
bin/spark-sql 腳本,類似于Hive的 bin/hive腳本
(內(nèi)部內(nèi)置了hive的hiveServer2服務(wù)或Spark執(zhí)行引擎,每次腳本執(zhí)行,都會啟動內(nèi)內(nèi)置的hiveServer2或Spark引擎),
一旦退出客戶端,服務(wù)端也就停止。
而, Spark的分布式執(zhí)行引擎,也即Spark ThriftServer服務(wù),是一個持續(xù)性的Spark on Hive集成模式,一旦啟動,持續(xù)對外提供服務(wù)。
可以使用DagaGrip、Pycharm、Navicat等數(shù)據(jù)庫客戶端產(chǎn)品,或代碼JDBC方式、或Beeline腳本,連接Spark ThriftServer服務(wù),直接編寫SQL語句,操作Spark。
2.啟動 Spark ThriftServer
SPARK_HOME=/export/server/spark
$SPARK_HOME/sbin/start-thriftserver.sh \
--hiveconf hive.server2.thrift.port=10000 \
--hiveconf hive.server2.thrift.bind.host=node1 \
--master local[2]
local[2]:指定線程并行度,一般是CPU核數(shù)2-3倍
master local, 每一條SQL在Local本地運行
master yarn, 每一條SQL在Yarn集群中運行
3.Beeline方式連接
cd /export/server/spark/bin
./beeline
輸入:
!connect jdbc:hive2://node1:10000
4.DataGrip方式連接
單擊"+"號,或右鍵單擊 -> 選擇數(shù)據(jù)元 -> 選中 Other -> 選中 Apache Spark
新建數(shù)據(jù)源,填寫Spark ThriftServer機器地址、監(jiān)聽端口、訪問用戶
添加驅(qū)動
配置成功,console窗口就可以直接寫SQL
5. 代碼方式
spark = SparkSession.builder \
.appName('spark on hive') \
.master('local[*]') \
.config('spark.sql.shuffle.partitions', 4) \
.config('hive.metastore.uris', 'thrift://node1:9083') \
.config('spark.sql.warehouse.dir', 'hdfs://node1:8020/user/hive/warehouse') \
.enableHiveSupport() \
.getOrCreate()
# 2. 執(zhí)行相關(guān)的操作
spark.sql("select * from pyspark_hive.stu; ").show()
6. SparkSQL運行方式
thrift server服務(wù)出現(xiàn), 只是提供了新的方式來書寫SQL: .
beeline方式 或者 圖形化界面方式
適用于: 純 SQL的開發(fā)工作, 開發(fā)后, 形成一個個的SQL的腳本, 在部署上線的時候, 采用spark-sql提交運行
.
./spark-sql -f 腳本
./spark-sql -e 'SQL語句‘
./spark-submit py文件或scala文件文章來源:http://www.zghlxwxcb.cn/news/detail-516131.html
7.參考文章
Spark On Hive:即Spark使用Hive的Metastore服務(wù)作為元數(shù)據(jù)管理服務(wù)文章來源地址http://www.zghlxwxcb.cn/news/detail-516131.html
到了這里,關(guān)于SparkSQL的分布式執(zhí)行引擎(Spark ThriftServer)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!