Spark搭建

Spark搭建

Standalone模式

  • 1、上传解压

    tar -zxvf spark-2.4.5-bin-hadoop2.7.tgz -C /usr/local/soft
    mv spark-2.4.5-bin-hadoop2.7 spark-2.4.5
    
  • 2、修改配置文件

    # 重命名文件
    cp spark-env.sh.template spark-env.sh
    cp slaves.template slaves
    

    增加配置vim spark-env.sh

    master相当于RM worker相当于NM

    export SPARK_MASTER_IP=master
    export SPARK_MASTER_PORT=7077
    export SPARK_WORKER_CORES=2
    export SPARK_WORKER_INSTANCES=1
    export SPARK_WORKER_MEMORY=2g
    export JAVA_HOME=/usr/local/soft/jdk1.8.0_171
    

    增加从节点配置vim slaves

    以node1、node2作为从节点

    node1
    node2
    
  • 3、复制到其它节点

    cd /usr/local/soft/
    scp -r spark-2.4.5 node1:`pwd`
    scp -r spark-2.4.5 node2:`pwd`
    
  • 4、配置环境变量

  • 5、在主节点执行启动命令

    注意:start-all.sh 与Hadoop的sbin目录中的启动命令有冲突

    cd /usr/local/soft/spark-2.4.5/
    ./sbin/start-all.sh	
    
  • 6、访问Spark Web UI

    http://master:8080/
    
  • 7、测试及使用

    切换目录cd /usr/local/soft/spark-2.4.5/examples/jars

    standalone client模式 :日志在本地输出,一般用于上线前测试

    • 提交自带的SparkPi任务

      spark-submit --class org.apache.spark.examples.SparkPi --master spark://master:7077 --executor-memory 512m --total-executor-cores 1 spark-examples_2.11-2.4.5.jar 100
      

    standalone cluster模式:上线使用,不会在本地打印日志

    • 提交自带的SparkPi任务

      spark-submit --class org.apache.spark.examples.SparkPi --master spark://master:7077 --executor-memory 512M --total-executor-cores 1 --deploy-mode cluster spark-examples_2.11-2.4.5.jar 100
      
  • 8、其他运行方式

    • spark-shell spark 提供的一个交互式的命令行,可以直接写代码

      spark-shell master spark://master:7077
      

On Yarn模式

在公司一般不适用standalone模式

因为公司一般已经有yarn 不需要搞两个资源管理框架

Spark整合yarn只需要在一个节点整合, 可以删除node1 和node2中所有的Spark 文件

  • 1、停止Spark Standalone模式集群

    # 切换目录
    cd /usr/local/soft/spark-2.4.5/
    # 停止集群
    ./sbin/stop-all.sh
    
  • 2、增加hadoop 配置文件地址

    vim spark-env.sh
    # 增加HADOOP_CONF_DIR
    export HADOOP_CONF_DIR=/usr/local/soft/hadoop-2.7.6/etc/hadoop
    
  • 3、关闭Yarn

    stop-yarn.sh
    
  • 4、修改Yarn配置

    cd /usr/local/soft/hadoop-2.7.6/etc/hadoop/
    vim 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>
    
  • 5、同步到其他节点

    scp -r yarn-site.xml node1:`pwd`
    scp -r yarn-site.xml node2:`pwd`
    
  • 6、启动Yarn

    start-yarn.sh
    
  • 7、测试及使用

    切换目录cd /usr/local/soft/spark-2.4.5/examples/jars

    Spark on Yarn Client模式:日志在本地输出,一班用于上线前测试

    • 提交自带的SparkPi任务

      spark-submit --class org.apache.spark.examples.SparkPi --master yarn-client --executor-memory 512M --num-executors 2 spark-examples_2.11-2.4.5.jar 100
      

    Spark on Yarn Cluster模式:上线使用,不会在本地打印日志

    • 提交自带的SparkPi任务

      spark-submit --class org.apache.spark.examples.SparkPi --master yarn-cluster --executor-memory 512m --num-executors 2 --executor-cores 1 spark-examples_2.11-2.4.5.jar 100
      
    • 获取yarn程序执行日志 执行成功之后才能获取到

      yarn logs -applicationId application_1652086375126_0002
      
  • 8、开启Spark On Yarn的WEB UI

    修改配置文件

    # 切换目录
    cd /usr/local/soft/spark-2.4.5/conf
    
    # 去除后缀
    cp spark-defaults.conf.template spark-defaults.conf
    
    # 修改spark-defaults.conf
    vim spark-defaults.conf
    
    # 加入以下配置
    spark.eventLog.enabled  true
    spark.eventLog.dir      hdfs://master:9000/user/spark/applicationHistory
    spark.yarn.historyServer.address        master:18080
    spark.eventLog.compress true
    spark.history.fs.logDirectory   hdfs://master:9000/user/spark/applicationHistory
    spark.history.retainedApplications      15
    

    创建HDFS目录用于存储Spark History日志

    hdfs dfs -mkdir -p /user/spark/applicationHistory
    

    启动Spark History Server

    cd /usr/local/soft/spark-2.4.5/
    ./sbin/start-history-server.sh
    
posted @ 2022-10-30 20:26  伍点  阅读(73)  评论(0编辑  收藏  举报