美文网首页
hadoop 3.x大数据集群搭建系列4-安装Spark

hadoop 3.x大数据集群搭建系列4-安装Spark

作者: 只是甲 | 来源:发表于2022-11-21 09:09 被阅读0次

    一. 下载spark和scala并解压

    cd /home/software
    wget https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-3.3.1/spark-3.3.1-bin-hadoop3.tgz --no-check-certificate
    
    tar -xvf spark-3.3.1-bin-hadoop3.tgz -C /home/
    
    cd /home/software
    官网下载scala:https://www.scala-lang.org/download/2.13.1.html
    
    tar -xvf scala-2.13.1.tgz -C /home
    

    二. 配置SPARK_HOME环境变量

    vi /etc/profile
    # 添加如下内容
    export SPARK_HOME=/home/spark-3.3.1-bin-hadoop3
    export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
    
    export SCALA_HOME=/home/scala-2.13.1
    export PATH= $PATH:$SCALA_HOME/bin
    
    
    # 加载使其生效
    source /etc/profile
    

    三. 修改配置

    # 进入spark conf目录
    cd /home/spark-3.3.1-bin-hadoop3/conf
    # 拷贝模板文件
    cp spark-defaults.conf.template spark-defaults.conf
    cp spark-env.sh.template spark-env.sh
    

    3.1 修改 spark-defaults.conf

    vim spark-defaults.conf
    # 添加如下内容
    spark.master                     spark://hp5:7077
    spark.serializer                 org.apache.spark.serializer.KryoSerializer
    spark.driver.memory              512m
    spark.executor.memory            512m
    

    3.2 修改spark-env.sh

    export JAVA_HOME=/usr/java/jdk1.8.0_181
    export HADOOP_HOME=/home/hadoop-3.3.2
    export HADOOP_CONF_DIR=/home/hadoop-3.3.2/etc/hadoop
    export YARN_CONF_DIR=/home/hadoop-3.3.2/etc/hadoop
    export SPARK_DIST_CLASSPATH=$(/home/spark-3.3.1-bin-hadoop3/bin/hadoop classpath)
    export SPARK_MASTER_HOST=hp5
    export SPARK_MASTER_PORT=7077
    

    3.3 修改slaves文件

    vi slaves
    # 修改为如下内容
    hp5
    hp6
    hp7
    

    四. 将spark目录分发到其他节点

    cd /home
    scp -r ./spark-3.3.1-bin-hadoop3/ root@hp6:/home/
    scp -r ./spark-3.3.1-bin-hadoop3/ root@hp7:/home/
    

    五. 启动Spark集群

    # 配置了环境变量,可以在任意目录执行启动命令
    cd /home/spark-3.3.1-bin-hadoop3/sbin
    ./start-all.sh
    
    image.png

    端口是8081


    image.png

    六. 在web界面查看Spark UI

    在Linux系统上浏览器上查看Spark UI:
    http://10.31.1.119:8081/


    image.png

    七. 测试

    运行SparkPI进行案例测

    spark-submit --class org.apache.spark.examples.SparkPi \
    $SPARK_HOME/examples/jars/spark-examples_2.12-3.2.2.jar 10
    
    image.png

    八. Yarn模式

    上面默认是用standalone模式启动的服务,如果想要把资源调度交给yarn来做,则需要配置为yarn模式:

    1. 需要启动的服务:hdfs服务、yarn服务
    2. 需要关闭 Standalone 对应的服务(即集群中的Master、Worker进程)。

    在Yarn模式中,Spark应用程序有两种运行模式:

    1. yarn-client:Driver程序运行在客户端,适用于交互、调试,希望立2. 即看到app的输出
      yarn-cluster:Driver程序运行在由RM启动的 AppMaster中,适用于生产环境

    二者的主要区别:
    Driver在哪里!

    8.1 启动hdfs、yarn服务

    此处略过

    8.2 修改Hadoop中的 yarn-site.xml 配置

    在$HADOOP_HOME/etc/hadoop/yarn-site.xml中增加如下配置,然后分发到集群其他节点,重启yarn 服务。

    # 打开yarn-site.xml文件
    vi /home/hadoop-3.3.2/etc/hadoop/yarn-site.xml
    <property>
            <name>yarn.nodemanager.pmem-check-enabled</name>
            <value>false</value>
    </property>
    <property>
            <name>yarn.nodemanager.vmem-check-enabled</name>
            <value>false</value>
    </property>
    

    说明:

    1. yarn.nodemanager.pmem-check-enabled : 是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true。
    2. yarn.nodemanager.vmem-check-enabled :是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true。

    8.3 向hdfs上传spark纯净版jar包

    cd /home/software
    wget https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-3.3.1/spark-3.3.1-bin-without-hadoop.tgz --no-check-certificate
    
    tar -zxvf spark-3.3.1-bin-without-hadoop.tgz
    

    上传spark纯净版jar包到hdfs

    hdfs dfs -mkdir /spark-jars
    hdfs dfs -put /home/software/spark-3.3.1-bin-without-hadoop/jars/* /spark-jars
    

    说明:

    1. Spark任务资源分配由Yarn来调度,该任务有可能被分配到集群的任何一个节点。所以需要将spark的依赖上传到hdfs集群路径,这样集群中任何一个节点都能获取到,依此达到Spark集群的HA。
    2. Spark纯净版jar包,不包含hadoop和hive相关依赖,避免和后续安装的Hive出现兼容性问题。

    8.4 Spark on Yarn测试

    记得,先把Master与worker进程停掉,否则会走standalone模式。

    # 停掉standalone模式的服务
    stop-all.sh
    

    8.4.1 client运行模式

    这种模式可以看见:程序计算的结果(即可以看见计算返回的结果)!

    # client
    spark-submit --master yarn \
    --deploy-mode client \
    --class org.apache.spark.examples.SparkPi \
    $SPARK_HOME/examples/jars/spark-examples_2.12-3.2.2.jar 20
    
    image.png image.png

    8.4.2 cluster运行模式

    这种模式就看不见最终的结果!

    # cluster
    spark-submit --master yarn \
    --deploy-mode cluster \
    --class org.apache.spark.examples.SparkPi \
    $SPARK_HOME/examples/jars/spark-examples_2.12-3.2.2.jar 20
    
    image.png
    image.png

    参考:

    1. https://blog.csdn.net/u011109589/article/details/124855282

    相关文章

      网友评论

          本文标题:hadoop 3.x大数据集群搭建系列4-安装Spark

          本文链接:https://www.haomeiwen.com/subject/gsswtdtx.html