sparkstreaming日志切分配置

在Spark Standalone模式下,spark默认使用org/apache/spark/log4j-defaults.properties配置,所有的日志都记录在stderr里面,由于Spark Streaming应用程序是一直运行的,时间长了以后stderr文件会非常大,占用空间的同时难以让我们调试和定位问题,所以我们需要切分日志,spark原生提供了对Executor日志的切分,Driver日志需要我们单独配置log4j。

  • Executor日志切分,在spark应用环境变量中配置
  spark.executor.logs.rolling.strategy  time  //可以按日期(time)和日志大小(size)来切分日志
  spark.executor.logs.rolling.time.interval daily  //可以按天、小时、分钟切分
  spark.executor.logs.rolling.maxRetainedFiles 7  //保留多少个日志文件,旧的日志自动删除

或者也可以自定义日志生成方式,只要配置参数spark.executor.extraJavaOptions,指定log4j配置。
- Driver日志切分
sparksubmit的时候自定义log4j, –driver-java-options “-Dlog4j.configuration=file:/$PATH/log4j-driver.properties -Dapp.logging.name=NAME” ,用NAME去区分不同spark应用

 log4j.rootCategory=INFO,  FILE
 log4j.appender.FILE.Threshold=info 
 log4j.appender.FILE.file=/$PATH/${app.logging.name}-driver.log  
 log4j.appender.FILE.DatePattern='.'yyyy-MM-dd 
 log4j.appender.FILE.layout=org.apache.log4j.PatternLayout  
 log4j.appender.FILE.layout.ConversionPattern=[%p] %d %c %M - %m%n 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spark Streaming 执行流程如下: 1. 数据源输入:Spark Streaming 支持多种数据源输入,包括 Kafka、Flume、HDFS、Socket 等。 2. 数据切分Spark Streaming 将输入的数据流按照时间间隔切分成一系列的小批次数据。 3. 数据处理:对每个小批次数据进行处理,可以使用 Spark 的各种 API 进行数据转换、过滤、聚合等操作。 4. 数据输出:将处理后的数据输出到各种存储系统,如 HDFS、数据库、Kafka 等。 5. 容错机制:Spark Streaming 具有容错机制,可以在节点故障时自动恢复。 6. 监控和管理:Spark Streaming 提供了丰富的监控和管理工具,可以实时监控应用程序的运行状态,进行调优和管理。 ### 回答2: Spark Streaming是一个实时处理框架,它可以从数据源中获取实时数据,并将其实时处理成有意义的结果。Spark Streaming框架的执行流程一般可以分为四个步骤,包括数据源接入、数据分析、数据处理和生成结果。 首先,Spark Streaming需要从数据源中获取实时数据,数据源可以是文件系统、Kafka、Flume、Twitter等不同的来源。当数据源接入之后,Spark Streaming会将数据流分成若干个批次,每个批次时间间隔由用户自定义。每个批次中的数据会被收集到一个RDD中。 接着,Spark Streaming将收集到的数据流转换成DStream,然后进行数据分析。这个步骤是执行实时数据处理任务的关键步骤。Spark Streaming提供了许多支持数据分析的API,例如map、filter、reduce、count等API,可以根据合适的API函数对DStream中的数据进行操作和处理。 接下来是数据处理的步骤,数据处理通常包括数据清洗、数据过滤、特征提取、模型训练等,Spark Streaming可以使用Spark的多个API实现这些数据处理任务。例如,可以使用Spark SQL通过Spark Streaming操作一个表来进行数据清洗和数据过滤。 最后一步是生成结果,Spark Streaming通过foreachRDD API将处理好的数据输出到指定的存储系统,如HDFS、Kafka等。此外,还可以使用Spark Streaming提供的一些可视化工具来监控处理结果。 综上所述,Spark Streaming的执行流程具体如下:数据源接入、数据分析、数据处理和生成结果。这个流程可以帮助用户实现准实时、高性能的流式数据处理应用程序。 ### 回答3: Spark StreamingSpark 提供的一种对流式数据进行处理的框架,它提供了一种高级别抽象(Discretized Stream或DStream),使用户可以像处理静态数据一样轻松处理连续的数据流。Spark Streaming 的执行流程可以分为以下几个步骤: 1.数据输入:Spark Streaming 支持多种数据输入源,包括 Kafka、Flume、Twitter、Hadoop 文件系统等。Spark Streaming 的输入源机制提供了容错机制,保证了在数据流处理过程中的数据丢失的最小程度。输入的数据被 Spark Streaming 原始分散到多个节点上,这些节点构成了 StreamingContext。 2.数据转换:在原始数据被分散到各个节点上后,Spark Streaming 将它们按照一定时间间隔分成一个个小的批次(batch),并将这些批次转换成一个个 RDD。这个过程被称为 DStream 的生成。DStream 可以看做是一系列时间片(RDD)的集合。这个过程的用户代码通常是使用 Spark Streaming 提供的高级别接口(如map、flatMap 等)编写的。 3.数据处理:Spark Streaming 提供了一系列转换算子,如 map、window、reduceByKeyAndWindow、updateStateByKey 等,用来对 DStream 进行各种转换操作,进行数据处理并产生一个新的 DStream。数据处理这一步的用户代码通常是使用这些算子来实现的。 4.数据输出:经过转换后的结果 RDD 可以通过 Spark Streaming 的操作输出(直接存储到 Hadoop 文件系统、数据库等)、打印、对外部系统发送 HTTP 请求、写到 Kafka、发送邮件等多种方式输出。用户代码通常使用 Spark Streaming 内置的输出算子(如 saveAsTextFiles、foreachRDD 等)来实现。 这些步骤是在整个程序执行周期中不断重复的,直到接收数据源的数据结束。Spark Streaming 的程序执行过程是基于 Spark 引擎进行的,因此它拥有 Spark 处理批处理的所有优点,如高性能、易扩展、 容错性强,同时又可用于对流处理分析。 以上是 Spark Streaming 执行流程的简单介绍,通过以上几步 Spark Streaming 可以高效、稳定地处理海量实时数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值