Spark集群管理器介紹
Spark可以運行在各種集群管理器上,並通過集群管理器訪問集群中的其他機器。
Spark主要有三種集群管理器,如果只是想讓spark運行起來,可以采用spark自帶的獨立集群管理器,采用獨立部署的模式;如果是想讓Spark部署在其他集群上,各應用共享集群的話,可以采取兩種集群管理器:Hadoop Yarn 或 Apache Mesos。
一、獨立集群管理器
Spark獨立集群管理器提供的在集群上運行應用的簡單方法。要使用集群啟動腳本,按照以下步驟執行即可:
1、將編譯好的Spark發送到集群的其他節點相同的目錄下,例如: /home/opt/spark
2、設置集群的主節點和其他機器的SSH免密碼登錄
3、編輯主節點的conf/slaves文件,添加上所有的工作節點的主機名
4、在主節點上運行sbin/start-all.sh啟動集群,可以在http://masternode:8080上看到集群管理界面
5、要停止集群,在主節點上運行 sbin/stop-all.sh
二、Hadoop Yarn
YARN是Hadoop2.0中引入的集群管理器,可以讓多中數據處理框架運行在一個共享的資源池上,而且和Hadoop的分布式存儲系統(HDFS)安裝在同一個物理節點上。所以讓Spark運行在配置了YARN的集群上是一個非常好的選擇,這樣當Spark程序運行在存儲節點上的時候可以快速的訪問HDFS中的數據。
在Spark中使用YARN的步驟:
1.找到你的Hadoop的配置目錄,然後把它設置問環境變量HADOOP_CONF_DIR。
export HADOOP_CONF_DIR="..."
然後采用如下方式提交作業
spark-submit --master yarn yourapp
2、配置資源用量
(1) --executor-memory 設置每個執行器的內存用量
(2)--executor-cores 設置每個執行器進程從YARN中占用的核心數目
(3)--num-wxecutors Spark應用會使用固定數量的執行器節點,默認為2
三、Apache Mesos
Mesos是一個通用的集群管理器,既可以運行分析性負載又可以運行長期運行的服務。
在Mesos上使用Spark,可以采用以下方式:
spark-submit --master mesos://masternode:5050 yourapp
1、Mesos的調度模式
Mesos的調度模式分為兩種:粗粒度模式和細粒度模式
粗粒度模式:只Spark會提前為每個執行器分配固定數量的CPU,而且在任務結束前不會釋放這些資源。
可以通過設置spark.mesos.coarse為true,開啟粗粒度調度模式
細粒度模式(默認):執行器進程占用的CPU核心數會在執行任務的過程中動態變化。
2、配置資源用量
(1) --executor-memory 設置每個執行器的資源
(2) --total-executor-cores 設置應用占用的核心數
Spark集群管理器介紹