Spark基本概念解析
1:實(shí)驗(yàn)配置
虛擬機(jī)cdh1(4G內(nèi)存,1CPU*2CORE)
虛擬機(jī)cdh2(4G內(nèi)存,1CPU*2CORE)
虛擬機(jī)cdh3(4G內(nèi)存,1CPU*2CORE)
spark配置:
conf/spark-env.sh
- export SPARK_MASTER_IP=cdh1
- export SPARK_WORKER_CORES=2
- export SPARK_WORKER_INSTANCES=2
- export SPARK_MASTER_PORT=7077
- export SPARK_WORKER_MEMORY=1200m
- export MASTER=spark://${SPARK_MASTER_IP}:${SPARK_MASTER_PORT}
conf/slaves
- cdh2
- cdh3
2:?jiǎn)?dòng)spark
在這里spark作為一個(gè)資源管理器的存在,類似YARN、Mesos的角色,為Spark Application提供資源。
在本配置里,這個(gè)standalone spark所擁有的資源是:2個(gè)Worker Node,每個(gè)Worker Node提供2Core、2個(gè)INSTANCE(也就是啟動(dòng)2個(gè)worker 實(shí)例)、1.2G內(nèi)存。所以總的資源是:4個(gè)Worker,8個(gè)Core,4.8G內(nèi)存??梢酝ㄟ^http://cdh1:8080獲取相應(yīng)的信息:
3:?jiǎn)?dòng)spark-shell
spark-shell 是一個(gè)spark application,運(yùn)行時(shí)需要向資源管理器申請(qǐng)資源,如standalone spark、YARN、Mesos。本例向standalone spark申請(qǐng)資源,所以在運(yùn)行spark-shell時(shí)需要指向申請(qǐng)資源的standalone spark集群信息,其參數(shù)為MASTER。如果未在spark-env.sh中申明MASTER,則使用命令MASTER=spark://cdh1:7077 bin/spark-shell啟動(dòng);如果已經(jīng)在spark-env.sh中申明MASTER,則可以直接用bin/spark-shell啟動(dòng)。
由于spark-shell缺省的情況下,會(huì)申請(qǐng)所有的CPU資源,也就是8個(gè)Core,本實(shí)驗(yàn)先看看使用3個(gè)Core的情況。至于spark-shell申請(qǐng)內(nèi)存資源是通過Application中SparkContext中配置-->環(huán)境變量SPARK_MEM-->缺省值512M這樣的優(yōu)先次序來決定,本例中未做任何設(shè)置 ,故每個(gè)Executor使用的是512M。
[hadoop@cdh1 spark09]$ bin/spark-shell -c 3