下载源码进行编译
在这一篇中,介绍了如何下载源码进行编译,编译好的文件名为spark-2.4.5-bin-2.6.0-cdh5.15.1
对文件进行解压:tar -xvf spark-2.4.5-bin-2.6.0-cdh5.15.1.tgz -C ~/app
配置环境变量
修改.bashrc
文件:
# SPARK_HOME 2.4.5
SPARK_HOME=/home/iie4bu/app/spark-2.4.5-bin-2.6.0-cdh5.15.1
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin:$SPARK_HOME/bin:$PATH
运行local模式
使用命令:./spark-shell master local[2]
master 用来指定使用什么模式,这里使用Local模式,[2]
表示两个线程。
说明运行成功!
运行StandAlone模式
复制一个conf/spark-env.sh
:
SPARK_MASTER_HOST=manager
SPARK_WORKER_CORES=2
SPARK_WORKER_MEMORY=2g
SPARK_WORKER_INSTANCES=1
spark的Standalone模式与Hadoop的HDFS模式类似,是一个Master加多个worker。
复制修改slaves
:manager
修改sbin/spark-config.sh
,添加JAVA_HOME:
export JAVA_HOME=/home/iie4bu/app/jdk1.8.0_101
运行:sbin/start-all.sh
:
输入jps
查看:
可以看到有一个master
和一个worker
.
浏览器访问ip:8080
可以查看
可以看到Alive Workers: 1
,因为我们之前设置了SPARK_WORKER_INSTANCES=1
。
当我们修改了这个值:SPARK_WORKER_INSTANCES=2
时,重启spark:
sbin/start-all.sh
,可以看到有两个worker
在浏览器中可以看到:
看到Alive Worker:2
说明我们的配置生效了。
运行一个Application
运行命令:./spark-shell --master spark://manager:7077
可以看到已经启动成功,这时查看浏览器:
可以看到已经有一个Application在运行了,这个Application的name是spark-shell,并且这个Application占用了4个Cores,和1024M的内存。
由于现在的Cores已经被这个spark-shell
用光了,所以当我们再启动一个spark-shell时:
这时查看浏览器:
看到第二次启动的spark-shell
没有分配到cores,状态是WAITING
,无法运行。
那么能不能设置不把core用光呢?
可以:设置--executor-cores NUM
和--executor-memory MEM