Spark深入解读(五)---- SparkStandalone模式集群部署和任务启动方式
原创
©著作权归作者所有:来自51CTO博客作者北京小辉的原创作品,请联系作者获取转载授权,否则将追究法律责任
目录
一、架构说明(standalone模式)
二、搭建步骤
三、启动Spark集群
四、任务启动命令
一、架构说明(standalone模式)
standalone模式是Spark自带的分布式集群模式,不依赖其他的资源调度框架
二、搭建步骤
- 下载spark安装包,下载地址:https://spark.apache.org/downloads.html
- 上传spark安装包到Linux服务器上
- 解压spark安装包
tar -zxvf spark-2.3.3-bin-hadoop2.7.tgz
- 将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
- 将conf目录下的slaves.template重命名为slaves并修改,指定Worker的所在节点
- 将配置好的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集群
- 在Master节点Spark的安装目录执行启动脚本
- 执行jps命令查看Java进程
在hadoop11上可用看见Master进程,在其他的节点上可用看见到Worker
- 访问Master的web管理界面,端口8080
四、任务启动命令
/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[*]
/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
<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>
北京小辉微信公众号
大数据资料分享请关注