Spark学习之路(三)——Spark部署模式

1、本地模式(开发):运行在单机上(路径:spark/bin)

交互式运行(Python):./pyspark --master local[*]

交互式运行(Scala):./spark-shell --master local[*]

提交Spark作业:./spark-submit --master local[*] --name [applicationname] .py文件 file:///[输入文件路径] file:///[输出文件路径]

2、Standalone模式(独立集群):

配置文件 (路径:spark/conf)
①cp slaves.template slaves
②sudo vi slaves (将localhost修改为Master)

Master

如果是多台机器同时运行,那么就应对salves进行如下配置:

Master
Slave1
Slave2

③cp spark-env.sh.template spark-env.sh
④sudo vi spark-env.sh (必须添加,否则启动spark集群时会出错)

JAVA_HOME=/home/spark/app/jdk

⑤安装包分发到其他节点:

scp  -r  spark/  slave1:$pwd
scp  -r  spark/  slave2:$pwd

启动集群:
①启动HDFS(路径:hadoop/bin)

./start-dfs.sh

②启动spark集群(路径:spark/sbin)

./start-all.sh

检测:jps
主节点:NameNode、SecondaryNameNode、Master
从节点:DataNode、Worker
交互式运行(python):./pyspark --master spark://hostname:7077
#注若使用Standalone模式,且节点个数大于1时,使用本地文件进行计算,必须保证每个节点上都有本地测试文件。

3、YARN模式:

配置文件(路径:spark/conf)
①sudo vi spark-env.sh

HADOOP_CONF_DIR=/home/spark/app/hadoop/etc/hadoop

#注:启动Spark的YARN模式必须确保HADOOP_CONF_DIR或YARN_CONF_DIR指向包含Hadoop集群配置文件的目录(路径:/home/spark/app/hadoop/etc/hadoop)
启动集群:
①启动HDFS(路径:hadoop/bin)

./start-dfs.sh

②启动YARN(路径:hadoop/bin)

./start-yarn.sh

③启动spark集群(路径:spark/sbin)

./start-all.sh

检测:jps
主节点:NameNode、SecondaryNameNode、ResourceManager、Master
从节点:DataNode、NodeManager、Worker
交互式运行(python):./pyspark --master yarn-client

4、Mesos模式:

Spark on Mesos有两种模式:粗粒度(coarse-grained,默认)和细粒度(fine-grained)。细粒度模式从Spark 2.0.0开始弃用。
粗粒度模式
启动开销小,但是该模式运行时,每个应用程序会一直保留Mesos资源,直到整个应用程序结束后才会释放资源。
细粒度模式
Spark执行程序内的每个Spark任务都作为单独的Mesos任务运行。这允许Spark的多个实例(和其他框架)以非常精细的粒度共享内核,其中每个应用程序在运行时,将动态地获得或多或少的内核,但是在启动每个任务时会带来额外的开销。此模式可能不适用于低延迟要求。虽然细粒度的Spark任务在终止时会放弃内核,但它们不会放弃内存,因为JVM不会将内存返回给操作系统。

警告:

WARN yarn.Client: Neither spark.yarn.jars nor spark.yarn.archive is set, falling back to uploading libraries under SPARK_HOME.

原因:每次运行spark时都会把yarn所需的spark jar打包上传至HDFS,然后分发到每个NM,为了节省时间,可以将jar包提前上传至HDFS,那么运行spark时就少了一步上传,可以直接从HDFS读取了。
做法:①HDFS上创建存放spark jar的目录

hadoop  fs  -mkdir  -p  /spark-yarn/jars

②将/spark/jars下的jar包上传至刚建的HDFS路径

cd  /home/spark/app/spark/jars/
hadoop  fs  -put  *  /spark-yarn/jars/

③设置spark-defaults.conf

spark.yarn.jars=hdfs://master:8020/spark-yarn/jars/*.jar

#记录Spark事件, 用于应用程序在完成后重构Web_UI(运行本地模式时以下语句要注释)
spark.eventLog.enabled	true
spark.eventLog.dir		hdfs://Master:8020/directory
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值