16-Linux部署Spark环境

Linux部署Spark环境

注意

本小节的操作,基于:大数据集群(Hadoop生态)安装部署环节中所构建的Hadoop集群

如果没有Hadoop集群,请参阅前置内容,部署好环境。

参考文章:

14-Linux部署Hadoop集群:http://t.csdnimg.cn/ptHa3

简介

Spark是一款分布式内存计算引擎,可以支撑海量数据的分布式计算。

Spark在大数据体系是明星产品,作为最新一代的综合计算引擎,支持离线计算和实时计算。

在大数据领域广泛应用,是目前世界上使用最多的大数据分布式计算引擎。

我们将基于前面构建的Hadoop集群,部署Spark Standalone集群。

Spark官网:https://spark.apache.org/

安装

  1. 【node1执行】下载并解压

    • 下载
      wget --no-check-certificate https://archive.apache.org/dist/spark/spark-2.4.5/spark-2.4.5-bin-hadoop2.7.tgz
      
      • 解压
        tar -zxvf spark-2.4.5-bin-hadoop2.7.tgz -C /export/server/
        
        • 软连接
          ln -s /export/server/spark-2.4.5-bin-hadoop2.7 /export/server/spark
          
        • 【node1执行】修改配置文件名称

          # 改名
          cd /export/server/spark/conf
          mv spark-env.sh.template spark-env.sh
          mv slaves.template slaves
          
        • 【node1执行】修改配置文件,spark-env.sh

          使用vim编辑配置文件

          vim spark-env.sh
          

          复制下面的全部内容到spark-env.sh

          ## 设置JAVA安装目录
          JAVA_HOME=/export/server/jdk
          ## HADOOP软件配置文件目录,读取HDFS上文件和运行YARN集群
          HADOOP_CONF_DIR=/export/server/hadoop/etc/hadoop
          YARN_CONF_DIR=/export/server/hadoop/etc/hadoop
          ## 指定spark老大Master的IP和提交任务的通信端口
          export SPARK_MASTER_HOST=node1
          export SPARK_MASTER_PORT=7077
          SPARK_MASTER_WEBUI_PORT=8080
          SPARK_WORKER_CORES=1
          SPARK_WORKER_MEMORY=1g
          
        • 【node1执行】修改配置文件,slaves

          使用vim操作slaves文件

          vim slaves
          

          输入下面内容

          node1
          node2
          node3
          
        • 【node1执行】分发

          进入/export/server

          cd /export/server
          

          分发spark-2.4.5-bin-hadoop2.7文件到node2、node3

          scp -r spark-2.4.5-bin-hadoop2.7 node2:$PWD
          scp -r spark-2.4.5-bin-hadoop2.7 node3:$PWD
          
        • 【node2、node3执行】设置软链接

          ln -s /export/server/spark-2.4.5-bin-hadoop2.7 /export/server/spark
          
        • 【node1执行】启动Spark集群

          /export/server/spark/sbin/start-all.sh
          # 如需停止,可以
          /export/server/spark/sbin/stop-all.sh
          

          使用jps查看进程

          [root@node1 server]# jps
          6561 Jps
          2629 NodeManager
          3014 WebAppProxyServer
          6423 Master
          1752 NameNode
          5081 HRegionServer
          1898 DataNode
          4140 QuorumPeerMain
          2477 ResourceManager
          4989 HMaster
          2222 SecondaryNameNode
          6494 Worker
          [root@node1 server]# ssh node2
          Last login: Thu Feb 29 09:29:52 2024 from node1
          [root@node2 ~]# jps
          2369 HRegionServer
          3186 Jps
          1508 QuorumPeerMain
          1621 DataNode
          1735 NodeManager
          3113 Worker
          [root@node2 ~]# 

          node1有HMaster和Worker,node2有Worker说明启动成功

        • 打开Spark监控页面,浏览器打开:http://192.168.149.131:8081

        • 【node1执行】提交测试任务

          /export/server/spark/bin/spark-submit --master spark://node1:7077 --class org.apache.spark.examples.SparkPi /export/server/spark/examples/jars/spark-examples_2.11-2.4.5.jar
          

          可以看到输出的pi值

          在可视化界面可以看到该进程的信息

          说明Spark部署成功~~~