Spark十六 Spark Streaming之转化操作,输出操作,输入源

1 转化操作

    > 无状态转化操作: 每个批次的处理不依赖之前批次的数据

    > 有状态转化操作: 使用之前批次的数据或者中间结果计算当前批次的数据

        (1) 基于滑动窗口的有状态转化操作

            > 以一个时间阶段进行操作

            > 窗口时长和滑动步长,是批次间隔的整数倍

        (2) 追踪状态变化的转化操作

            > updateStateByKey():跟踪每个键的状态变化

2 输出操作

    > 对流数据经转化操作后的数据执行操作

    > print(),输出每个RDD的前十个元素

    > foreachRDD()对每个RDD执行计算

3 输入源

    > 核心数据源

        (1) 文件流

        (2) Akka actor流

    > 附加数据源

        (1) Kafka

        (2) Flume

    > 多数据源与集群规模

        (1) union()/join()/cogroup()合并或聚合数据源

        (2) 接收器在集群运行

            > 每个接收器都以Spark执行器程序中一个长期运行的任务运行,会占用分配给应用的核心

            > 需要可用的CPU核心处理数据,运行多个接收器,需要由多个核心,加上运算需要的核心

            > 例如,CPU核心数至少等于接收器个数 + 1

            > 所以在Spark Streaming中,不要使用"local"/"local[1]",这样只会分配一个CPU核心给任务,至少使用"local[2]"

猜你喜欢

转载自blog.csdn.net/weixin_42129080/article/details/80954080