赞
踩
Spark-shell 是以一种交互式命令行方式将Spark应用程序跑在指定模式上,也可以通过Spark-submit提交指定运用程序,Spark-shell 底层调用的是Spark-submit,二者的使用参数一致的,通过- -help 查看参数:
sparkconf的传入有三种方式:
Standalone集群模式通过配置spark-env.sh和slaves文件来部署,可以通过以下配置
1. vi spark-env.sh
2. SPARK_MASTER_HOST=192.168.137.200 ##配置Master节点
3. SPARK_WORKER_CORES=2 ##配置应用程序允许使用的核数(默认是所有的core)
4. SPARK_WORKER_MEMORY=2g ##配置应用程序允许使用的内存(默认是一个G)
5. vi slaves
6. 192.168.137.200
7. 192.168.137.201
8. 192.168.137.202
启动集群
1. sbin/start-all.sh
Web UI:192.168.137.200:8080
提交作业之前需要将HADOOP_CONF_DIR或YARN_CONF_DIR配置到Spark-env.sh中:
1. vi spark-env.sh
2. HADOOP_CONF_DIR=/opt/software/hadoop-2.6.0-cdh5.7.0/etc/hadoop
1.由client向ResourceManager提交请求,并上传Jar到HDFS上
这期间包括四个步骤:
a).连接到RM
b).从RM ASM(applicationsManager)中获得metric,queue和resource等信息。
c).upload app jar and spark-assembly jar
d).设置运行环境和container上下文
2.ResourceManager向NodeManager申请资源,创建Spark ApplicationMaster(每个SparkContext都有一个ApplicationManager)
3.NodeManager启动Spark App Master,并向ResourceManager ASM注册
4.Spark ApplicationMaster从HDFS中找到jar文件,启动DAGScheduler和YARN Cluster Scheduler
5.ResourceManager向ResourceManager ASM注册申请container资源(INFO YarnClientImpl: Submitted application)
6.ResourceManager通知NodeManager分配Container,这是可以收到来自ASM关于container的报告。(每个container的对应一个executor)
7.Spark ApplicationMaster直接和container(executor)进行交互,完成这个分布式任务。
spark.yarn.jars/spark.yarn.archive
将本地jar包上传到hdfs,然后通过这个参数指定上传路径:
1. [hadoop@hadoop001 spark-2.2.0-bin-2.6.0-cdh5.7.0]$ hdfs dfs -mkdir -p /spark/jars
2. [hadoop@hadoop001 spark-2.2.0-bin-2.6.0-cdh5.7.0]$ hdfs dfs -put jars/ /spark/jars
3. vi spark-defaults.conf
4. spark.yarn.jars hdfs:///spark/jars/*
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。