【问题标题】:Confusion in textFileStreamtextFileStream 中的混乱
【发布时间】:2017-07-23 20:52:24
【问题描述】:

我正在使用 textFileStream 将数据提取到 Spark Streaming 中。但数据仅针对一批进行处理。我的第一个问题是它不会从文件中流式传输每条记录吗?

根据https://docs.databricks.com/spark/latest/rdd-streaming/debugging-streaming-applications.htmlFor TextFileStream, since files are input, the # of input events is always 0. In such cases, you can look at the “Completed Batches” section in the notebook to figure out how to find more information.

其次,我想知道 Spark Engine 正在处理多少条记录。例如,如果我流式传输一个包含 100K 数据记录的 1GB 文件,我想知道 Spark Streaming 执行它需要多少时间。

任何人都可以分享他们的想法或一些有用的链接。任何帮助将不胜感激。

谢谢。

Spark 版本:2.0.1 通过 textFileStream 从 Amazon s3 摄取数据

【问题讨论】:

    标签: amazon-web-services apache-spark amazon-s3 spark-streaming


    【解决方案1】:

    没有直接的方法可以看到,但是您可以使用自定义代码来实现。

    例如,当您处理由您使用的 textFileStream 生成的 dStream 时

        dStream.forEachRDD{rdd => rdd.forEachPartition{part => { }} }
    

    所以你可以简单地在 rdd.forEachPartition {} 块中添加一些代码,这将更新在累加器中处理的记录,或者在 Kafka 主题中添加该信息,或者在 Zookeeper 中添加该信息,甚至更新 mysql 数据库:)

    dStream.forEachRDD{rdd => rdd.forEachPartition{part => {
                var recordProcessed:Int = 0; ...
                part.foreach{...;recordProcessed+=1}
                //update recordProcessed in kafka/HBase/Mysql/Zookepeer
        }} }
    

    这可以进一步用于使用可视化工具可视化记录过程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-06
      • 2010-12-04
      • 2011-05-05
      • 2018-05-30
      • 2014-07-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多