SparkStreaming 采集器

自定义采集器

自定义采集器实现步骤:

  1. 继承 Receiver 类
  2. 实现集中 onStart()onStop() 方法
  3. 实例化自定义类
// 自定义 Receiver 类
class MyReceiver extends Receiver[String](StorageLevel.MEMORY_ONLY) {
    private var flag = true
    private var massage = ""

    // 开始方法
    override def onStart(): Unit = {
        new Thread(new Runnable {
            override def run(): Unit = {
                while (flag) {
                    massage = "采集的数据为" + new Random().nextInt(10).toString
                    store(massage)
                    Thread.sleep(500)
                }

            }
        }).start()
    }

    // 停止方法
    override def onStop(): Unit = {
        flag = false
    }
}
def main(args: Array[String]): Unit = {

    // 1. 初始化 Spark 配置信息
    val sparkConf = new SparkConf().setMaster("local[2]").setAppName("StreamWordCount")
    // 2. 初始化 SparkStreamingContext
    val ssc = new StreamingContext(sparkConf, Seconds(3))
    // 3. 实例化自定义的 Receiver
    val massageDS: ReceiverInputDStream[String] = ssc.receiverStream(new MyReceiver)
    
    // 打印
    massageDS.print()

    // 启动 SparkStreamingContext
    ssc.start()
    ssc.awaitTermination()

}

Socket 采集器

使用 netcat 工具向某一端口号发送数据,并通过 SocketReceiver 采集数据。

def main(args: Array[String]): Unit = {

    // 1. 初始化 Spark 配置信息
    val sparkConf = new SparkConf().setMaster("local[2]").setAppName("StreamWordCount")
    // 2. 初始化 SparkStreamingContext
    val ssc = new StreamingContext(sparkConf, Seconds(3))

    // 3. 通过监控端口创建 DStream,读进来的数据为一行行
    val lineStreams = ssc.socketTextStream(<主机地址>, <端口号>)

    // 打印
    lineStreams.print()

    // 启动 SparkStreamingContext
    ssc.start()
    ssc.awaitTermination()

}

在这里插入图片描述

netcat工具下载连接:https://eternallybored.org/misc/netcat/

image-20211231163300733

PS:加压后将 nc.exe 文件放到 C:\Windows\System32 目录下(关闭杀毒软件)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JOEL-T99

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值