一、部署目录
1.bin 运行脚本目录
beeline
exec "CLASS "{SPARK_HOME}"/bin/load-spark-env.sh表示执行spark-env.sh的配置信息,确保会加载
pyspark 最后exec "@"启动python spark shell
spark-class 内部最终变成用java运行java类
sparkR最后写exec "@"表示启动sparkR
spark-sql:最后写exec "@"表示支持的是hive的sql语言
spark-submit 最后写exec "@"表示运行spark-class,在spark-class中提交。
运行example
在run-example中最后写exec "@",表示可以直接运行例子程序
ForScala andJava, use run-example:
./bin/run-example SparkPi
ForPython examples, use spark-submit directly:
./bin/spark-submit examples/src/main/python/pi.py
image2.conf
docker.properties.template 作用:Spark properties可以控制应用程序的绝大部分属性,并且可以分别在每个应用上进行设置。这些属性可以直接在SparkConf对象上设定,该对象可以传递给SparkContext。SparkConf对象允许你去设定一些通用的属性(比如master URL、应用的名称等),这些属性可以传递给set()方法的任意key-value对。如下:
val conf = new SparkConf()
.setMaster("local")
.setAppName("CountingSheep")
.set("spark.executor.memory", "1g")
val sc = new SparkContext(conf)
fairscheduler.xml.template配置spark的调度策略Spark中的调度模式主要有两种:FIFO和FAIR。默认情况下Spark的调度模式是FIFO(先进先出),谁先提交谁先执行,后面的任务需要等待前面的任务执行。而FAIR(公平调度)模式支持在调度池中为任务进行分组,不同的调度池权重不同,任务可以按照权重来决定执行顺序。
imagelog4j.properties.template 集群日志模版,
imagemetrics.properties.template 和Hadoop类似,在Spark中也存在很多的Metrics配置相关的参数,它是基于Coda Hale Metrics Library的可配置Metrics系统,我们可以通过配置文件进行配置,通过Spark的Metrics系统,我们可以把Spark Metrics的信息报告到各种各样的Sink,比如HTTP、JMX以及CSV文件。
Spark的Metrics系统目前支持以下的实例:
(1)、master:Spark standalone模式的master进程;
(2)、worker:Spark standalone模式的worker进程;
(3)、executor:Spark executor;
(4)、driver:Spark driver进程;
(5)、applications:master进程里的一个组件,为各种应用作汇报。
slaves.template worker节点的配置,只要把节点名放在该文件中就表示是集群的worker节点
imagespark-defaults.conf.template SparkConf默认配置模版
imagespark-env.sh.template 有很大一部分的Spark设定可以通过环境变量来进行设定。这些环境变量设定在conf/spark-env.sh 脚本文件中。在 Standalone 和 Mesos模式下,这个文件可以设定一些和机器相关的信息(比如hostname)。
需要注意,在刚刚安装的Spark中conf/spark-env.sh文件是不存在的。但是你可以通过复制conf/spark-env.sh.template文件来创建,你的确保这个复制之后的文件是可运行的。
下面的属性是可以在conf/spark-env.sh文件中配置
JAVA_HOME Java的安装目录
PYSPARK_PYTHON Python binary executable to use for PySpark.
SPARK_LOCAL_IP IP address of the machine to bind to.
LIC_DNS Hostname your Spark program will advertise to other machines.
image.gif
Hostname your Spark program will advertise to other machines.
3.data 例子里用到的一些数据
graphx
mllib
streaming
4.examples 例子源码
jars
src
-
jars spark依赖的jar包 ,在ecilipse的时候就需要把所有的包导入才能开发。
6.licenses license协议声明文件
7.python 使用python开发程序 image image.gif
8.R开发程序
spark-2.1.1-yarn-shuffle.jar
image.gif
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-shuffle-service.sh
start-shuffle-service.sh shuffle启动脚本
start-slave.sh 启动某机器上worker进程
start-slaves.sh 在所有定义在${SPARK_CONF_DIR}/slaves的机器上启动Worker进程
start-thriftserver.sh sparkthriftserver用于提供远程odbc调用,在远端执行hive sql查询。默认监听10000端口,Hiveserver2默认也是监听10000端口,为了避免冲突,需要修改sparkthriftserver的端口。启用sparkthriftserver需要将hive-site.xml文件copy到spakr的conf目录下,元数据存储在mysql中,所以还需要mysql-connector-java-5.1.43-bin.jar,用于连接mysql。
stop-all.sh 在所有定义在${SPARK_CONF_DIR}/slaves的机器上停止Worker进程
stop-history-server.sh 停止历史记录进程
stop-master.sh 停止spark master进程
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能够感知具体的存储设备类型,针对性的使用。
结语
如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加我们的大数据交流群:894951460,里面有各种大数据学习的资料和技术交流。
加油吧,程序员!路就在脚下,成功就在明天!
未来的你肯定会感谢现在拼命的自己!
网友评论