跟我一起学Spark之——在集群上运行Spark

7.2运行时架构

7.2.5小结

在集群上运行Spark应用的详细过程:

1.用户通过spark-submit脚本提交应用。

2.spark-submit脚本启动驱动器程序,调用用户定义的main()方法。

3.驱动器程序与集群管理器通信,申请资源以启动执行器节点。

4.集群管理器为驱动器程序启动执行器节点。

5.驱动器进程执行用户应用中的操作。根据程序中所定义的对RDD的转化操作和行动操作,驱动器节点把工作以任务的形式发送到执行器进程。

6.任务在执行器程序中进行计算并保存结果。

7.如果驱动器程序的main()方法退出,或者调用了SparkContext.stop(),驱动器程序会终止执行进程,并且通过集群管理器释放资源。

7.3使用spark-submit部署应用

7-1本地提交Python应用

bin/spark-submit my_sctipt.py

7-2提交应用时添加附加参数

bin/spark-submit --master spark://host:7077 --executor-memory 10g my_script.py

7-3spark-submit的一般格式

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

[options] 是要传给 spark-submit 的标记列表。spark-submit --help 可以列出所有可以接受的标记。

<app jar | python file>表示包含应用入口的JAR包或python脚本。

[app options] 是传给应用的选项。如果程序要处理传给main()方法的参数,它只会得到 [app options] 对应的标记,不会得到spark-submit 的标记。

附:spark-submit 还允许通过 --conf prop=value 标记设置任意的SparkConf配置选项,也可以使用 --properties-File 指定一个包含键值对的属性文件。

#使用独立集群模式提交java应用
./bin/spark-submit
--master spark://hostname:7077
--deploy-mode cluster
--class com.databricks.examples.SparkExample
--name "Example Program"
--jars dep1.jar,dep2.jar,dep3.jar
--total-executor-cores 300
--executor-memory 10g
myApp.jar "options" "to your application" "go here"
#使用yarn客户端模式提交Python应用
export Hadoop_conf_dir=/opt/hadoop/conf
./bin/spark-submit
--master yarn
--py-files somelib-1.2.egg,otherlib-4.4.zip,other-file.py
--deploy-mode client
--name "Example Program"
--queue exampleQueue
--num-executors 40
--executor-memory 10g
my_script.py "options" "xxxxxxxx" "xxxxxx"

7.4打包代码与依赖

7.5Spark应用内与应用间调度

7.6集群管理器

7.6.1独立集群管理器

7.6.2Hadoop Yarn

      Yarn可以让Spark在存储数据的物理节点上运行,以快速访问Hdfs中的数据

      使用方法:设置指向Hadoop配置目录的环境变量,然后使用spark-submit向一个特殊的节点URL提交作业即可。

7.6.3Apache Mesos

      通用集群管理器,既可以运行分析型工作负载又可以运行长期运行的服务(比如网页服务或者键值对存储)。

      使用方法:把一个mesos://的URL传给spark-submit

      形如:spark-submit --master mesos://masternode:5050 yourapp

      1.Mesos调度模式

      2.客户端和集群模式

      3.配置资源用量

7.6.4Amazon EC2

7.7选择合适的集群管理器

(1)如果是从零开始,可以先选择独立集群管理器。独立模式安装起来最简单,而且如果你只是使用spark的话,独立集群管理器提供与其他集群管理器完全一样的全部功能。

(2)如果你要在使用spark的同时使用其他应用,或者是要用到更丰富的资源调度功能(例如队列),那么YARN和Mesos都能满足你的需求。而在这两者中,对于大多数的hadoop发行版来说,一般YARN已经预装好了。

(3)Mesos相对于YARN和独立模式的一大优点在于其细粒度共享的选项,该选项可以将类似Spark shell这样的交互式应用中的不同命令分配到不同的CPU上。因此这对于多用户同时运行交互式shell的用例更有用处。

(4)在任何时候,最好把Spark运行在运行HDFS的节点还是那个,这样能快速访问存储。你可以自行在同样的节点上安装Mesos或独立集群管理器。如果使用YARN的话,大多数发行版已经把YARN和HDFS安装在了一起。

出处:《Spark快速大数据分析》作者:Holden Karau

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值