---------------------------------------------------------------------------------------------------------------------
一 spark on yarn
集羣方式運行,提交任務之後與客戶端就沒有聯繫,提交任務之後可以直接退出客戶端
集羣方式提交,日誌在集羣中
客戶端方式提交與集羣方式提交有區別,日誌會返回到客戶端,yarn集羣控制檯中看不到日誌
使用spark-shell啓動,必須要使用客戶端模式提交,因爲會在當前窗口中寫shell流程代碼,即driver必須在本地
---------------------------------------------------------------------------------------------------------------------
二 . spark on hive 執行hivesql的時候底層有mapreduce改成了spark
需要編譯spark源碼,編碼流程如下
1.下載hive包,下載mavem工具,安裝對應版本的scala
2.編譯spark源碼
(1)注意編譯spark選擇不帶hive的
(2)將下載好的源碼解壓進入目錄執行
.
/dev/make-distribution
.sh --name
"hadoop2-without-hive"
--tgz
"-Pyarn,hadoop-provided,hadoop-2.7,parquet-provided,orc-provided"
詳情見 spark-hive源碼編譯
https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark%3A+Getting+Started
最重要的參數只有第一個,即設置計算引擎,其他參數搭建hive的時候就配置好了
---------------------------------------------------------------------------------------------------------------------
三 . spark-sql on hive 通過spark-sql操作hive表中所有的數據
spark on hive有兩個重要文件夾
1元數據元數據文件夾 metastore_db 這個文件夾通過配置可以設置爲mysql
2.表數據文件夾 spark-warehouse 這個啓動的時候可以通過 --conf spark.sql.warehouse.dir設置路徑
spark-sql on hive配置方式
(1)將hive-site.xml拷貝到spark/conf目錄下
(2)把hive目錄下的mysql驅動拷貝到spark的jars目錄下
(3)分發所有配置和mysql驅動到spark的其他節點
(4)啓動spark-sql操作hive的sql語句
啓動需要添加配置,即設置數據路徑
--conf spark.sql.warehouse.dir=hdfs://mini1:9000/user/hive/warehouse
操作實例
spark-sql \
--master spark://mini1:7077 \
--executor-memory 1g --total--executor-cores 2 \
--conf spark.sql.warehouse.dir=hdfs://mini1:9000/user/hive/warehouse