有以下四个步骤。
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的算法。
创建 maven 工程
使用下面命令创建一个普通的 maven 工程:
bash
$ mvn archetype:generate -DgroupId=comclouderasparkwordcount -DartifactId=sparkwordcount -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
将 sparkwordcount 目录重命名为simplesparkapp,然后,在 simplesparkapp 目录下添加 scala 源文件目录:
bash
$ mkdir -p sparkwordcount/src/main/scala/com/cloudera/sparkwordcount
修改 pomxml 添加 scala 和 spark 依赖:
xml
<dependencies>
<dependency>
<groupId>orgscala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2104</version>
</dependency>
<dependency>
<groupId>orgapachespark</groupId>
<artifactId>spark-core_210</artifactId>
<version>120-cdh530</version>
</dependency>
</dependencies>
添加编译 scala 的插件:
xml
<plugin>
<groupId>orgscala-tools</groupId>
<artifactId>maven-scala-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
添加 scala 编译插件需要的仓库:
xml
<pluginRepositories>
<pluginRepository>
<id>scala-toolsorg</id>
<name>Scala-tools Maven2 Repository</name>
<url>>
这里是结合Hadoop20使用的1,download:根据下载的spark的README中的描述下载合适的版本3,安装其实就是解压,配置/etc/profile环境变量exportSPARK_HOME=/data1/spark/sparkexportSCALA_HOME=/data1/spark/scala-293exportPATH=$PATH:$SPARK_HOME/bin:$SCALA_HOME/bin配置spark的conf下的spark-envshexportJAVA_HOME=/usr/java/defaultexportSCALA_HOME=/data1/spark/scala-293exportSPARK_MASTER_IP=19216801exportSPARK_MASTER_WEBUI_PORT=8080exportSPARK_WORKER_WEBUI_PORT=8000exportYARN_CONF_DIR=/data/hadoop/hadoop-20/etc/hadoop配置slaves(ip根据需要修改)1921680219216803分发spark目录和scala目录到几台服务器相同路径下4,启动进入主节点的spark目录的bin下stop-allsh是停掉集群,start-allsh启动集群,jps可以在主节点看到master进程,slave节点看到worker进程5,运行程序,运行例子进入spark目录下分布式运行/run-exampleorgapachesparkexamplesSparkPispark://19216801:7077/run-exampleorgapachesparkexamplesSparkLRspark://19216801:7077本地运行/run-exampleorgapachesparkexamplesSparkPilocal/run-exampleorgapachesparkexamplesSparkLRlocal
以上就是关于简述spark的基本流程全部的内容,包括:简述spark的基本流程、如何在CDH5上运行Spark应用、求助,spark 提交任务到集群报错等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)