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

目录

一、架构说明(standalone模式)

二、搭建步骤

三、启动Spark集群

四、任务启动命令



一、架构说明(standalone模式)

standalone模式是Spark自带的分布式集群模式,不依赖其他的资源调度框架
在这里插入图片描述

二、搭建步骤

  1. 下载spark安装包,下载地址:https://spark.apache.org/downloads.html
    在这里插入图片描述

  2. 上传spark安装包到Linux服务器上

  3. 解压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

在这里插入图片描述

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

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

在这里插入图片描述

四、任务启动命令

  • 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>
发布了430 篇原创文章 · 获赞 597 · 访问量 131万+

猜你喜欢

转载自blog.csdn.net/silentwolfyh/article/details/104943175
今日推荐