Spark环境的搭建相比于Hadoop集群的搭建还是比较简单的,而且跟Hadoop集群的搭建流程也很相似,只是没有Hadoop集群那么多的配置文件要修改。本文中,我将详细介绍Spark的本地模式、Standalone模式(伪分布)、Standalone模式(全分布)、Yarn集群模式的搭建。

搭建环境:CentOS7+jdk8+spark2.3.2+hadoop2.7

Local本地模式

  1. 上传并解压spark2.3.2到指定目录
    tar -zxvf spark-2.3.2-bin-hadoop2.7.tgz -C apps/
  2. 添加软链接
    ln -s spark-2.3.2-bin-hadoop2.7 spark
  3. 修改环境变量
    vi ~/.bashrc
    添加
    1
    2
    3
    export SPARK_HOME=/home/hadoop/apps/spark
    export JAVA_HOME=/usr/local/jdk
    export PATH=$PATH:$SPARK_HOME/bin:$JAVA_HOME/bin

source ~/.bashrc
注:此处必须要添加JAVA_HOME的路径,虽然你可能已经在/etc/profile例配置了JAVA_HOME,但是Spark识别不到,后面启动会报找不到JAVA_HOME的错误,所以这里必须再次添加一下JAVA_HOME的路径。

  1. 测试是否安装成功
    测试运行样例
    run-example SparkPi 10
    测试shell
    spark-shell
    测试spark-submit命令
    spark-submit –class org.apache.spark.examples.SparkPi /home/hadoop/apps/spark/examples/jars/spark-examples_2.11-2.3.2.jar 100

Standalone模式(伪分布)

  1. 上传并解压spark2.3.2到指定目录
    tar -zxvf spark-2.3.2-bin-hadoop2.7.tgz -C apps/
  2. 添加软链接
    ln -s spark-2.3.2-bin-hadoop2.7 spark
  3. 修改环境变量
    vi ~/.bashrc
    添加
    1
    2
    3
    export SPARK_HOME=/home/hadoop/apps/spark
    export JAVA_HOME=/usr/local/jdk
    export PATH=$PATH:$SPARK_HOME/bin:$JAVA_HOME/bin

source ~/.bashrc
注:此处必须要添加JAVA_HOME的路径,虽然你可能已经在/etc/profile例配置了JAVA_HOME,但是Spark识别不到,后面启动会报找不到JAVA_HOME的错误,所以这里必须再次添加一下JAVA_HOME的路径。

  1. 修改配置文件spark-env.sh
    cd /home/hadoop/apps/spark/conf
    cp spark-env.sh.template spark-env.sh
    vi spark-env.sh
    在最下面添加

    1
    2
    3
    4
    # hadoop1是主节点,即本机的主机名
    export SPARK_MASTER_HOST=hadoop1
    # 默认端口号为7077
    export SPARK_MASTER_PORT=7077
  2. 启动集群
    进入sbin目录
    cd /home/hadoop/apps/spark/sbin
    启动master
    ./start-master.sh
    启动slave
    ./start-slave.sh spark://hadoop1:7077

  3. 查看是否启动成功
    jps
  4. 查看集群资源页面
    打开网页hadoop1:8080
  5. 进入集群的shell
    spark-shell –master spark://hadoop1:7077

Standalone模式(全分布)

  1. 上传并解压spark2.3.2到指定目录
    tar -zxvf spark-2.3.2-bin-hadoop2.7.tgz -C apps/
  2. 添加软链接
    ln -s spark-2.3.2-bin-hadoop2.7 spark
  3. 修改环境变量
    vi ~/.bashrc
    添加
    1
    2
    3
    export SPARK_HOME=/home/hadoop/apps/spark
    export JAVA_HOME=/usr/local/jdk
    export PATH=$PATH:$SPARK_HOME/bin:$JAVA_HOME/bin

source ~/.bashrc
注:此处必须要添加JAVA_HOME的路径,虽然你可能已经在/etc/profile例配置了JAVA_HOME,但是Spark识别不到,后面启动会报找不到JAVA_HOME的错误,所以这里必须再次添加一下JAVA_HOME的路径。

  1. 修改配置文件spark-env.sh
    cd /home/hadoop/apps/spark/conf
    cp spark-env.sh.template spark-env.sh
    vi spark-env.sh
    在最下面添加

    1
    2
    3
    4
    # hadoop1是主节点,即本机的主机名
    export SPARK_MASTER_HOST=hadoop1
    # 默认端口号为7077
    export SPARK_MASTER_PORT=7077
  2. 修改配置文件slaves
    cd /home/hadoop/apps/spark/conf
    cp slaves.template slaves
    vi slaves
    删除原有节点,添加从节点主机名

    1
    2
    3
    hadoop2
    hadoop3
    hadoop4
  3. 将整个spark文件发送到各个从节点
    scp -r /home/hadoop/apps/spark-2.3.2-bin-hadoop2.7 hadoop2:/home/hadoop/apps/
    scp -r /home/hadoop/apps/spark-2.3.2-bin-hadoop2.7 hadoop3:/home/hadoop/apps/
    scp -r /home/hadoop/apps/spark-2.3.2-bin-hadoop2.7 hadoop4:/home/hadoop/apps/

  4. 在各个从节点重复2.3步操作
  5. 启动集群
    进入sbin目录
    cd /home/hadoop/apps/spark/sbin
    启动master
    ./start-master.sh
    启动slave
    ./start-slaves.sh spark://hadoop1:7077
  6. 查看是否启动成功
    jps
  7. 查看集群资源页面
    打开网页hadoop1:8080
  8. 进入集群的shell
    spark-shell –master spark://hadoop1:7077

Yarn集群模式

  1. 上传并解压spark2.3.2到指定目录
    tar -zxvf spark-2.3.2-bin-hadoop2.7.tgz -C apps/
  2. 添加软链接
    ln -s spark-2.3.2-bin-hadoop2.7 spark
  3. 修改环境变量
    vi ~/.bashrc
    添加
    1
    2
    3
    export SPARK_HOME=/home/hadoop/apps/spark
    export JAVA_HOME=/usr/local/jdk
    export PATH=$PATH:$SPARK_HOME/bin:$JAVA_HOME/bin

source ~/.bashrc
注:此处必须要添加JAVA_HOME的路径,虽然你可能已经在/etc/profile例配置了JAVA_HOME,但是Spark识别不到,后面启动会报找不到JAVA_HOME的错误,所以这里必须再次添加一下JAVA_HOME的路径。

  1. 修改配置文件spark-env.sh
    cd /home/hadoop/apps/spark/conf
    cp spark-env.sh.template spark-env.sh
    vi spark-env.sh
    在最下面添加

    1
    2
    3
    4
    5
    6
    # hadoop1是主节点,即本机的主机名
    export SPARK_MASTER_HOST=hadoop1
    # 默认端口号为7077
    export SPARK_MASTER_PORT=7077
    # 添加hadoop的配置目录
    export HADOOP_CONF_DIR=/home/hadoop/apps/hadoop-2.7.1/etc/hadoop
  2. 优化配置-修改spark-defaults.conf
    cd /home/hadoop/apps/spark/conf
    cp spark-defaults.conf.template spark-defaults.conf
    vi spark-defaults.conf
    添加

    1
    2
    # 将spark的类库 jar包上传到hdfs上,省的每次都上传
    spark.yarn.jars hdfs://hadoop1:9000/sparklib/jars/*
  3. 修改配置文件slaves
    cd /home/hadoop/apps/spark/conf
    cp slaves.template slaves
    vi slaves
    删除原有节点,添加从节点主机名

    1
    2
    3
    hadoop2
    hadoop3
    hadoop4
  4. 将整个spark文件发送到各个从节点
    scp -r /home/hadoop/apps/spark-2.3.2-bin-hadoop2.7 hadoop2:/home/hadoop/apps/
    scp -r /home/hadoop/apps/spark-2.3.2-bin-hadoop2.7 hadoop3:/home/hadoop/apps/
    scp -r /home/hadoop/apps/spark-2.3.2-bin-hadoop2.7 hadoop4:/home/hadoop/apps/

  5. 在各个从节点重复2.3步操作
  6. 启动hadoop的yarn集群
    start-yarn.sh
  7. 启动spark集群
    进入sbin目录
    cd /home/hadoop/apps/spark/sbin
    启动master
    ./start-master.sh
    启动slave
    ./start-slaves.sh spark://hadoop1:7077
  8. 查看是否启动成功
    jps
  9. 查看集群资源页面
    打开网页hadoop1:8080
  10. 进入集群的shell
    spark-shell –master yarn

最后更新: 2018年10月22日 19:30

原始链接: https://www.lousenjay.top/2018/10/10/Spark环境搭建(多种模式)/