首页 > 其他分享 >Spark-Yarn模式部署

Spark-Yarn模式部署

时间:2024-01-17 17:15:00浏览次数:19  
标签:部署 jar hadoop yarn Yarn conf spark Spark jars

Spark-Yarn模式部署

1. 解压缩文件

将spark-3.0.0-bin-hadoop3.2.tgz文件上传到linux并解压缩,放置在指定位置。

# 在/opt/software中
tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz -C /opt/module
cd /opt/module
mv spark-3.0.0-bin-hadoop3.2 spark

2.修改配置文件

  1. 修改hadoop配置文件/opt/module/hadoop-3.1.3/etc/hadoop/yarn-site.xml,并分发

    <!-- 是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认值为true -->
            <property>
                    <name>yarn.nodemanager.pmem-check-enabled</name>
                    <value>false</value>
            </property>
    
            <!-- 是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认值为true -->
            <property>
                    <name>yarn.nodemanager.vmem-check-enabled</name>
                    <value>false</value>
            </property>
    
  2. 修改conf/spark-env.sh,添加JAVA_HOME和YARN_CONF_DIR配置

    mv spark-env.sh.template spark-env.sh
    
    export JAVA_HOME=/opt/module/jdk1.8.0_381
    YARN_CONF_DIR=/opt/module/hadoop-3.1.3/etc/hadoop
    

3.提交应用

先启动HDFS以及YARN集群

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
./examples/jars/spark-examples_2.12-3.0.0.jar \
10

4.配置历史服务器

  1. 修改spark-defaults.conf.template文件名为spark-defaults.conf

    mv spark-defaults.conf.template spark-defaults.conf
    
  2. 修改spark-defaults.conf文件,配置日志存储路径

    spark.eventLog.enabled	true
    spark.eventLog.dir		hdfs://cloud1:8020/directory
    

    注意:需要启动hadoop集群,HDFS上的目录需要提前存在

    hadoop fs -mkdir /directory
    
  3. 修改spark-env.sh文件,添加日志配置

    export SPARK_HISTORY_OPTS="
    -Dspark.history.ui.port=18080
    -Dspark.history.fs.logDirectory=hdfs://cloud1:8020/directory
    -Dspark.history.retainedApplications=30"
    
    • 参数1含义:web ui访问的端口号为18080
    • 参数2含义:指定历史服务日志存储路径
    • 参数3含义:指定保存Application历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,这个时内存中的应用数,而不是页面上显示的应用数。
  4. 修改spark-defaults.conf

    spark.yarn.historyServer.address=cloud1:18080
    spark.history.ui.port=18080
    
  5. 启动历史服务

    sbin/start-history-server.sh
    
  6. 重新提交应用

    bin/spark-submit \
    --class org.apache.spark.examples.SparkPi \
    --master yarn \
    --deploy-mode client \
    ./examples/jars/spark-examples_2.12-3.0.0.jar \
    10
    

Spark-on Yarn作业提交缓慢优化之spark jar包处理

spark on yarn方式运行计算作业,发现作业提交缓慢,日志如下

WARN yarn.Client: Neither spark.yarn.jars nor spark.yarn.archive is set, falling back to uploading libraries under SPARK_HOME.

INFO yarn.Client: Uploading resource file:/tmp/spark-293d2659-5df4-4445-8e6a-2d46103402e4/__spark_conf__938847757818885511.zip -> hdfs://cloud1:8020/user/hadoop/.sparkStaging/application_1537843134586_0005/__spark_conf__.zip

原因分析:由于没有设置spark.yarn.jars或者spark.yarn.archive这两个参数,spark就会把$SPARK_HOME/jars/下所有的jar包上传到hdfs中,造成提交缓慢

解决办法:

  1. 将$SPARK_HOME/jars/下面所有的jar包都上传到hdfs上

    hadoop fs -mkdir -p /spark/jars/
    hadoop fs -put /opt/module/spark/jars/*.jar /spark/jars/
    
  2. 在spark-defaults.conf文件中添加参数

    spark.yarn.jars	hdfs://cloud1:8020/spark/jars/*.jar
    

标签:部署,jar,hadoop,yarn,Yarn,conf,spark,Spark,jars
From: https://www.cnblogs.com/coke0914/p/17970462

相关文章

  • JeecgBoot与东方通TongWeb的高效部署方案
    在当前的国际形势下,信创产业已成为推动中国经济发展的重要力量,也是保障国家信息安全的重要支撑。随着技术的不断发展和应用的不断深入,信创产业将迎来更加广阔的发展前景。为此,JeecgBoot也完成了与东方通TongWeb的国产化适配。前后台项目均部署到TongWeb。后台采用war包的打包......
  • RocketMQ服务端部署
    系统环境Java:openjdkversion"1.8.0_392"操作系统:腾讯云Ubuntu20.04镜像RocketMQ:rocketmq-5.1.4下载RocketMQ官网下载入口,见“下载安装”部分GitHub仓库下载Ubuntu镜像下载:#DownloadreleasefromtheApachemirror$wgethttps://dist.apache.org/repos/dist/re......
  • spark中的shuffle
    在Spark中,Shuffle是一个核心概念和步骤,它是数据分发的过程,需要消耗大量的资源和时间。Shuffle的主要功能是将分布在各个节点上的同一类数据汇集到某一个节点上进行计算,此过程有助于提高整体性能和吞吐量。同时,Shuffle作为连接Map阶段和Reduce阶段的桥梁,其性能受到磁盘和网......
  • hadoop完全分布式安装部署
    简介Hadoop的完全分布式模式是在多台机器上运行Hadoop集群,实现更高的性能和可伸缩性。以下是Hadoop完全分布式模式的简要安装部署。环境准备确保你的环境满足以下要求:•操作系统:CentOS•Java:安装Java8或更高版本•SSH:确保所有节点之间可以通过SSH互相通信安装部署JDK......
  • Spark on Yarn
    简介ApacheSpark是一个开源的大数据处理框架,提供了高性能、通用的分布式数据处理能力。而YARN(YetAnotherResourceNegotiator)是Hadoop生态系统的资源管理器,用于分配和管理集群资源。SparkonYARN是将Spark框架与YARN集成,以便更好地利用集群资源进行分布式计算。安装部署解......
  • python-pyspark数据输入
    数据容器转rdd对象通过SparkContext对象的parallelize成员方法,将python数据容器转为rdd对象frompysparkimportSparkConf,SparkContextconf=SparkConf().setMaster("local[*]").setAppName("test_spark_app")sc=SparkContext(conf=conf)data1=[1,2,3,4,5]data2=(1......
  • ceph分布式存储部署(ceph-deploy)
    ceph分布式存储部署(ceph-deploy)ceph学习ceph简介和特性ceph时一个多版本存储系统,它把每一个待管理的数据量切分为一到多个固定带下的对象数据,并以其为原子单元完成数据存取。对象数据的地处存储服务是由多个主机组成的存储集群,该集群也被称为RADOS存储集群即可靠、自动化、分布式......
  • 基于SpringBoot+Vue的校园招聘系统设计实现(源码+lw+部署文档+讲解等)
    (文章目录)前言:heartpulse:博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌:heartpulse:......
  • Jetty 部署项目
    下载PreviousJettyVersions|TheEclipseFoundation部署项目项目打包后直接放到webapps目录下即可配置数据库源在ect/jetty.xml里面新增如下配置,此处以Oracle数据库为例<!--注意放在<Configureid="Server"class="org.eclipse.jetty.server.Server">里面--><N......
  • Spark
    ApacheSpark是专门为大数据处理而设计的通用的计算引擎。spark拥有MapReduce所具有的优点,但不同于MapReduce的是Job中间输出结果可以缓存到内存中,从而不再需要读写HDFS,减少磁盘数据交互,因此Spark能更好的适应机器学习和数据挖掘等需要迭代的算法。Spark提供了SparkRDD、Spar......