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 目录下(关闭杀毒软件)

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

JOEL-T99

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

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

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

打赏作者

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

抵扣说明:

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

余额充值