Spark2.0使用手册

1.spark集群的开启

1)hadoopsbin目录下使用start-dfs.shstart-yarn.sh命令开启dfs集群;

2)sparksbin目录下使用start-master.shstart-slaves.sh命令开启MasterWorker

3)hadoopsbin目录下使用mr-jobhistory-daemon.sh start historyserver开启yarn的日志记录;

4)sparksbin目录下使用start-history-server.sh开启spark的日志记录。

2.spark集群的关闭

1)stop-master.shstop-slaves.sh关闭spark

2)stop-dfs.shstop-yarn.sh关闭dfs集群;

3)mr-jobhistory-daemon.sh stop historyserverstop-history-server.sh关闭日志

3.spark集群的使用

1Spark-shell

使用命令$ ./bin/spark-shell可以自动创建一个特殊的解释器感知型SparkContext,便于使用scala语言进行本地测试。

2Spark-submit

提交任务到集群,支持yarn-clusteryarn-client两种模式:

yarn-cluster:适用于生产环境;

yarn-client:适用于交互、调试,希望立即看到app的输出

yarn-clusteryarn-client的区别在于appMasteryarn appMaster,每个yarn app实例有一个appMaster进程,是为app启动的第一个container;负责从ResourceManager请求资源,获取到资源后,告诉NodeManager为其启动containerappMaster消除了active client的需要,app client启动app后可以结束,协调由运行在cluster上被yarn管理的进程继续

yarn-cluster modeSparkdirver 运行在 appMaster中,appMaster进程同时负责driving app,请求资源;启动spark appclient不需要一直存在于整个spark app运行生命周期

yarn-client mode:某些情况需要与spark交互,要求user input,如spark-shellpyspark,这样的spark app需要spark-driver运行在初始化spark appclient端进程中。这种情况,appMaster仅仅用于从yarn集群请求executorapp client会和请求的container通信来调度他们工作。

 

spark-submit [options] <app jar | python file> [app options]

Options:

  --master MASTER_URL         spark://host:port, mesos://host:port, yarn, or local.

  --deploy-mode DEPLOY_MODE   driver运行之处,client运行在本机,cluster运行在集群

  --class CLASS_NAME          应用程序包的要运行的class

  --name NAME                 应用程序名称

  --jars JARS                 用逗号隔开的driver本地jar包列表以及executor类路径

  --py-files PY_FILES         用逗号隔开的放置在Python应用程序PYTHONPATH上的.zip, .egg, .py文件列表

  --files FILES               用逗号隔开的要放置在每个executor工作目录的文件列表

  --properties-file FILE      设置应用程序属性的文件放置位置,默认是conf/spark-defaults.conf

  --driver-memory MEM         driver内存大小,默认512M

  --driver-java-options       driverjava选项

  --driver-library-path       driver的库路径Extra library path entries to pass to the driver

  --driver-class-path         driver的类路径,用--jars 添加的jar包会自动包含在类路径里

  --executor-memory MEM       executor内存大小,默认1G

 

Spark standalone with cluster deploy mode only:

  --driver-cores NUM          driver使用内核数,默认为1

  --supervise                 如果设置了该参数,driver失败是会重启

 

Spark standalone and Mesos only:

  --total-executor-cores NUM  executor使用的总核数

 

YARN-only:

  --executor-cores NUM        每个executor使用的内核数,默认为1

  --queue QUEUE_NAME          提交应用程序给哪个YARN的队列,默认是default队列

  --num-executors NUM         启动的executor数量,默认是2

  --archives ARCHIVES         被每个executor提取到工作目录的档案列表,用逗号隔开

用得较多的参数是:

 --class:应用程序的入口点(例如,org.apache.spark.examples.SparkPi

 --master:集群的master URL(例如,spark://localhost:7077

 --deploy-mode:driver部署到worker节点(cluster模式)或者作为外部客户端部署到本地(client模式),默认情况下是client模式

--conf:用key=value格式强制指定Spark配置属性,用引号括起来

--application-jar:包含应用程序和所有依赖的jar包的路径,路径必须是在集群中是全局可见的,例如,hdfs://路径或者file://路径

--application-arguments:传递给主类中main函数的参数

 

4.spark的三种部署方式

1Standalone模式,即独立模式,自带完整的服务,可单独部署到一个集群中,无需依赖任何其他资源管理系统。

# Run on a Spark Standalone cluster in clusterdeploy mode with supervise

./bin/spark-submit \

  --classorg.apache.spark.examples.SparkPi \

 --master spark://207.184.161.138:7077 \

 --deploy-mode cluster

 --supervise

 --executor-memory 20G \

 --total-executor-cores 100 \

 /path/to/examples.jar \

  1000

2Spark On Mesos模式。这是很多公司采用的模式,官方推荐这种模式(当然,原因之一是血缘关系)。正是由于Spark开发之初就考虑到支持Mesos,因此,目前而言,Spark运行在Mesos上会比运行在YARN上更加灵活,更加自然。

3Spark On YARN模式。这是一种最有前景的部署模式。但限于YARN自身的发展,目前仅支持粗粒度模式(Coarse-grained Mode)。

yarn-cluster

# Run on a YARN cluster

export HADOOP_CONF_DIR=XXX

./bin/spark-submit \

  --classorg.apache.spark.examples.SparkPi \

  --masteryarn-cluster \  # can also be`yarn-client` for client mode

 --executor-memory 20G \

 --num-executors 50 \

 /path/to/examples.jar \

  1000

其中,第一种类似于MapReduce 1.0所采用的模式,内部实现了容错性和资源管理,后两种则是未来发展的趋势,部分容错性和资源管理交由统一的资源管理系统完成:让Spark运行在一个通用的资源管理系统之上,这样可以与其他计算框架,比如MapReduce,公用一个集群资源,最大的好处是降低运维成本和提高资源利用率(资源按需分配)。

5.spark程序的开发

可以使用的IDE主要有有EclipseIntellij IDEA

6.sparkhadoopWebUI地址

Sparkjobs(只有有job运行时可以打开)http://192.168.80.129:4040/jobs/

SparkWebUI查看http://192.168.80.129:8082

hadoopWebUI查看http://192.168.80.129:50070

hadoopapplication查看http://192.168.80.129:8088

 

 

参考资料:

Apache Spark三种分布式部署方式比较

https://yq.aliyun.com/articles/37493

Spark Submit提交应用程序

http://www.mamicode.com/info-detail-554020.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值