Spark各目录作用(部署目录和运行时目录)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_23146763/article/details/79032240

版本:spark-2.1.1-bin-hadoop2.7


一、部署目录

1.bin 运行脚本目录

beeline
find-spark-home
load-spark-env.sh 加载spark-env.sh中的配置信息,确保仅会加载一次
pyspark 启动python spark shell,./bin/pyspark --master local[2]
run-example 运行example
spark-class 内部最终变成用java运行java类
sparkR
spark-shell 启动scala spark shell,./bin/spark-shell --master local[2]
spark-sql
spark-submit 提交作业到master

运行example

# For Scala and Java, use run-example:
./bin/run-example SparkPi

# For Python examples, use spark-submit directly:
./bin/spark-submit examples/src/main/python/pi.py

# For R examples, use spark-submit directly:
./bin/spark-submit examples/src/main/r/dataframe.R

2.conf

docker.properties.template
fairscheduler.xml.template
log4j.properties.template 集群日志模版
metrics.properties.template
slaves.template  worker 节点配置模版
spark-defaults.conf.template SparkConf默认配置模版
spark-env.sh.template 集群环境变量配置模版

3.data 例子里用到的一些数据

graphx
mllib
streaming

4.examples 例子源码

jars 
src 

5.jars spark依赖的jar包
6.licenses license协议声明文件
7.python
8.R
9.sbin 集群启停脚本

slaves.sh 在所有定义在${SPARK_CONF_DIR}/slaves的机器上执行一个shell命令
spark-config.sh 被其他所有的spark脚本所包含,里面有一些spark的目录结构信息
spark-daemon.sh 将一条spark命令变成一个守护进程
spark-daemons.sh 在所有定义在${SPARK_CONF_DIR}/slaves的机器上执行一个spark命令
start-all.sh 启动master进程,以及所有定义在${SPARK_CONF_DIR}/slaves的机器上启动Worker进程
start-history-server.sh 启动历史记录进程
start-master.sh 启动spark master进程
start-mesos-dispatcher.sh
start-mesos-shuffle-service.sh
start-shuffle-service.sh
start-slave.sh 启动某机器上worker进程
start-slaves.sh 在所有定义在${SPARK_CONF_DIR}/slaves的机器上启动Worker进程
start-thriftserver.sh
stop-all.sh 在所有定义在${SPARK_CONF_DIR}/slaves的机器上停止Worker进程
stop-history-server.sh 停止历史记录进程
stop-master.sh 停止spark master进程
stop-mesos-dispatcher.sh
stop-mesos-shuffle-service.sh
stop-shuffle-service.sh
stop-slave.sh 停止某机器上Worker进程
stop-slaves.sh 停止所有worker进程
stop-thriftserver.sh

10.yarn

spark-2.1.1-yarn-shuffle.jar

二、运行时目录


standalone模式

1. $SPARK_HOME/work
作用: 用以存放从HttpFileServer下载下来的第三方库依赖及Executor运行时生成的日志信息。
分析:为了解决Executor启动时依赖的Jar问题,Driver在启动的时候要启动HttpFileServer存储第三方jar包,然后由worker从HttpFileServer来获取。为此HttpFileServer需要创建相应的目录,HttpFileServer创建目录的过程详见于SparkEnv.scala中create函数,而Worker也需要创建相应的目录。即$SPARK_HOME/work

2. $SPARK_HOME/logs
作用: 存放master、worker、history server运行日志

3. spark-defaults.conf中spark.local.dir配置目录
作用: Spark用于写中间数据,如RDD Cache,Shuffle,Spill等数据的位置

分析:首先,最基本的当然是我们可以配置多个路径(用逗号分隔)到多个磁盘上增加整体IO带宽,这个大家都知道。

其次,目前的实现中,Spark是通过对文件名采用hash算法分布到多个路径下的目录中去,如果你的存储设备有快有慢,比如SSD+HDD混合使用,那么你可以通过在SSD上配置更多的目录路径来增大它被Spark使用的比例,从而更好地利用SSD的IO带宽能力。当然这只是一种变通的方法,终极解决方案还是应该像目前HDFS的实现方向一样,让Spark能够感知具体的存储设备类型,针对性的使用。

需要注意的是,在Spark 1.0 以后,SPARK_LOCAL_DIRS (Standalone, Mesos) or LOCAL_DIRS (YARN)参数会覆盖这个配置。比如Spark On YARN的时候,Spark Executor的本地路径依赖于Yarn的配置,而不取决于这个参数。

展开阅读全文

没有更多推荐了,返回首页