Spark学习笔记——在集群上运行Spark
Spark運行的時候,采用的是主從結構,有一個節點負責中央協調, 調度各個分布式工作節點。這個中央協調節點被稱為驅動器( Driver) 節點。與之對應的工作節點被稱為執行器( executor) 節點。
所有的 Spark 程序都遵循同樣的結構:程序從輸入數據創建一系列 RDD, 再使用轉化操作派生出新的 RDD,最后使用行動操作收集或存儲結果 RDD 中的數據。
1.驅動器節點:
Spark 驅動器是執行你的程序中的 main() 方法的進程。它執行用戶編寫的用來創建 SparkContext、創建 RDD,以及進行 RDD 的轉化操作和行動操作的代碼。其實,當你啟動 Spark shell 時,你就啟動了一個 Spark 驅動器程序
驅動器程序在 Spark 應用中有下述兩個職責:1.把用戶程序轉為任務 2.為執行器節點調度任務
2.執行器節點:
Spark 執行器節點是一種工作進程,負責在 Spark 作業中運行任務,任務間相互獨立。 Spark 應用啟動時, 執行器節點就被同時啟動,并且始終伴隨著整個 Spark 應用的生命周期而存在。
執行器進程有兩大作用: 第一,它們負責運行組成 Spark 應用的任務,并將結果返回給驅動器進程; 第二,它們通過自身的塊管理器(Block Manager)為用戶程序中要求緩存的 RDD 提供內存式存儲。
3.集群管理器:
驅動器節點和執行器節點是如何啟動的呢? Spark 依賴于集群管理器來啟動執行器節點,而在某些特殊情況下,也依賴集群管理器來啟動驅動器節點。
?
使用spark-submit部署應用
一般是在shell腳本中寫好,然后運行shell腳本就行了
spark-submit的詳細參數參考 spark-submit使用及說明
?
在spark任務中認證
import org.apache.hadoop.security.UserGroupInformation import org.apache.hadoop.conf.Configuration System.setProperty("java.security.krb5.conf", "/etc/krb5.conf") val configuration = new Configuration() configuration.set("hadoop.security.authentication", "Kerberos") UserGroupInformation.setConfiguration(configuration) UserGroupInformation.loginUserFromKeytab("xxx@XXXX", "xxx.keytab")?
轉載于:https://www.cnblogs.com/tonglin0325/p/6688720.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Spark学习笔记——在集群上运行Spark的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux与jvm内存关系分析
- 下一篇: Hive(三)hive的高级操作