有以下四个步骤。
1构建SparkApplication的运行环境(启动SparkContext),SparkContext向资源管理器(可以是Standalone、Mesos或YARN)注册并申请运行Executor资源。
2资源管理器分配Executor资源并启动StandaloneExecutorBackend,Executor运行情况将随着心跳发送到资源管理器上。
3SparkContext构建成DAG图,将DAG图分解成Stage,并把Taskset发送给TaskScheduler。Executor向SparkContext申请Task,TaskScheduler将Task发放给Executor运行同时SparkContext将应用程序代码发放给Executor。
4Task在Executor上运行,运行完毕释放所有资源。
ApacheSpark是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UCBerkeleyAMPlab(加州大学伯克利分校的AMP实验室)所开源的类HadoopMapReduce的通用并行框架,Spark,拥有HadoopMapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
本文前提是已经正确安装好scala,sbt以及spark了 简述将程序挂载到集群上运行的步骤:
1、构建sbt标准的项目工程结构:SBT项目工程结构图其中:~/buildsbt文件用来配置项目的基本信息(项目名、组织名、项目版本、使用的scala版本或者再次配置些项目所需的依赖包);project/buildproperties文件配置你要使用什么版本的sbt对项目 *** 作;project/pluginssbt文件是给项目添加所需的插件;project/Buildscala文件是对项目进行些复杂的高级配置;详细的sbt安装配置实用参见博文:
2、到相应目录下编写程序,spark程序必须要创建一个SparkContext实例。SparkContext("master", "projectName", "SPARK_HOME", "yourProjectjar path")
3、sbt compile命令编译程序无错后,sbt package命令将程序打包。默认打包的jar文件存放路径为:项目根目录/target/scala-xxxxxx/your-project-name_xxxxxx-xxjar
4、将打包好的jar问价添加到SPAK_CLASSPATH中(在linux中根据作用范围的不同有多种更改环境变量的方式,这里只说我的配置方式:spark根目录下的conf/spark-envsh文件添加SPARK_CLASSPATH:xxxxxxxx)
5、配置好环境变量后就可以在spark的根目录下使用/run脚本运行你的程序了例如:/run sparkexamplesSparkPi spark://masterIP:port注意,如果程序涉及IO *** 作起默认路径为SPARK_HOME;至于如何修改这个路径,有待研究
转载,仅供参考。
以上就是关于简述spark的基本流程全部的内容,包括:简述spark的基本流程、怎么让程序运行在spark集群上、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)