Spark任务运行详解

本文详述了如何在Spark集群上部署和运行Spark应用程序,包括Scala和Python Shell的使用,Spark_submit的提交过程,Master URL设置,配置文件管理以及文件传输方式。重点关注Spark应用的工作流程、进程隔离和配置选项,旨在帮助用户更好地理解和执行Spark任务。
摘要由CSDN通过智能技术生成

在上一篇文章中,威廉展示了如何构建一个简单的Spark集群,本文将介绍如何在Spark集群上部署运行我们的程序

首先来看下Spark的简要工作流程

这里写图片描述

Spark应用运行在各自独立的进程中,由主程序(也被称为driver程序)中的SparkContext对象协调管理。SparkContext可连接到多种cluster manager,包括Spark本身提供的standalone cluster manager,以及YARNMesos。成功连接后,SparkContext会请求在Worker/Slave主机上运行executor进程用于管理数据,处理运算,并将JAR包或.py文件发送给executor。最后,SparkContext发送taskexecutor执行

以下几点值得注意:

  1. 应用有各自独立的executor进程,多线程处理task,不同应用的task运行在不同的JVM中,这样有利于不同任务的隔离,但也导致了在不同应用中,若不依靠外部数据存储,数据将无法共享
  2. Spark对于cluster manager是不可知的,不会影响到如YARNMesos等上运行的其他程序
  3. driver程序监听executor连接,接口可以通过spark.driver.portspark.fileserver.port配置,需保证这些接口可以被executor连接到
  4. driver程序需要和executor通信,因此最好能保证它们处于同一网段;若不得不将driver启动在远程主机上,最好能打开RPC(远程过程调用协议),以减少driverexecutor之间的通信时间

Spark支持运行Scala,Java及Python编写的应用,并提供了Python及Scala的Shell

Scala Shell
./bin/spark-shell --master local[2]

表示在本地使用2线程运行scala shell,更多参数可以通过./bin/spark-shell --help查阅

spark@master:~/spark-1.3.1-bin-hadoop2.6$ ./bin/spark-shell --master local[2]
log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
15/05/13 08:10:59 INFO SecurityManager: Changing view acls to: spark
15/05/13 08:10:59 INFO SecurityManager: Changing modify acls to: spark
15/05/13 08:10:59 INFO SecurityManager: SecurityManager: authentication disabled; ui acls disabled; users with view permissions: Set(spark); users with modify permissions: Set(spark)
15/05/13 08:10:59 INFO HttpServer: Starting HTTP Server
15/05/13 08:11:00 INFO Server: jetty-8.y.z-SNAPSHOT
15/05/13 08:11:00 INFO AbstractConnector: Started SocketConnector@0.0.0.0:46123
15/05/13 08:11:00 INFO Utils: Successfully started service 'HTTP class server' on port 46123.
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 1.3.1
      /_/

Using Scala version 2.10.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_75)
Type in expressions to have them evaluated.
Type :he
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值