目录

一、架构说明(standalone模式)

二、搭建步骤

三、启动Spark集群

四、任务启动命令



一、架构说明(standalone模式)

standalone模式是Spark自带的分布式集群模式,不依赖其他的资源调度框架

Spark深入解读(五)---- SparkStandalone模式集群部署和任务启动方式_jar

二、搭建步骤

  1. 下载spark安装包,下载地址:https://spark.apache.org/downloads.html
  2. Spark深入解读(五)---- SparkStandalone模式集群部署和任务启动方式_jar_02

  3. 上传spark安装包到Linux服务器上
  4. 解压spark安装包
tar -zxvf spark-2.3.3-bin-hadoop2.7.tgz
  1. 将conf目录下的spark-env.sh.template重命名为spark-env.sh,并修改
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export JAVA_HOME=/usr/app/jdk1.8.0_77
export SPARK_MASTER_HOST=hadoop11
  1. 将conf目录下的slaves.template重命名为slaves并修改,指定Worker的所在节点
hadoop11
hadoop12
  1. 将配置好的Spark拷贝到其他节点
scp -r spark-2.3.3-bin-hadoop2.7 root@hadoop12:/usr/app/
scp -r spark-2.3.3-bin-hadoop2.7 root@hadoop13:/usr/app/

三、启动Spark集群

  1. 在Master节点Spark的安装目录执行启动脚本
sbin/start-all.sh
  1. 执行jps命令查看Java进程
jps

Spark深入解读(五)---- SparkStandalone模式集群部署和任务启动方式_jar_03

在hadoop11上可用看见Master进程,在其他的节点上可用看见到Worker

  1. 访问Master的web管理界面,端口8080

Spark深入解读(五)---- SparkStandalone模式集群部署和任务启动方式_hadoop_04

四、任务启动命令

  • Local启动
/usr/app/spark-2.3.3-bin-hadoop2.7/bin/spark-submit \
--master local \
--deploy-mode client \
--num-executors 3 \
--executor-memory 1g \
--executor-cores 1 \
--jars /usr/app/apache-hive-2.3.1-bin/lib/mysql-connector-java-5.1.36-bin.jar \
--driver-class-path /usr/app/apache-hive-2.3.1-bin/lib/mysql-connector-java-5.1.36-bin.jar \
/root/project/datawarehouse-1.0-SNAPSHOT-jar-with-dependencies.jar \
local[*]
  • yanr启动
/usr/app/spark-2.3.3-bin-hadoop2.7/bin/spark-submit \
--master yarn \
--deploy-mode cluster \
--num-executors 3 \
--executor-memory 1g \
--executor-cores 1 \
--jars /usr/app/apache-hive-2.3.1-bin/lib/mysql-connector-java-5.1.36-bin.jar \
--driver-class-path /usr/app/apache-hive-2.3.1-bin/lib/mysql-connector-java-5.1.36-bin.jar \
/root/project/datawarehouse-1.0-SNAPSHOT-jar-with-dependencies.jar \
yarn
  • 在pom中加入打包插件
<build>
<plugins>
<!-- 指定编译java的插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>

<!-- 指定编译scala的插件 -->
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>3.2.2</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
<configuration>
<args>
<arg>-dependencyfile</arg>
<arg>${project.build.directory}/.scala_dependencies</arg>
</args>
</configuration>
</execution>
</executions>
</plugin>

<!-- 把依赖jar中的用到的类,提取到自己的jar中 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
<configuration>
<archive>
<manifest>
<mainClass>类名称路径</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<!--下面是为了使用 mvn package命令,如果不加则使用mvn assembly-->
<executions>
<execution>
<id>make-assemble</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>


北京小辉微信公众号

Spark深入解读(五)---- SparkStandalone模式集群部署和任务启动方式_spark_05


大数据资料分享请关注