IDEA Spark Streaming 操作(套接字流)-----make socket数据源

Posted soyosuyang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IDEA Spark Streaming 操作(套接字流)-----make socket数据源相关的知识,希望对你有一定的参考价值。

import java.io.PrintWriter
import java.net.ServerSocket

import scala.io.Source


object DStream_makeSocket {
  def main(args: Array[String]): Unit = {
    val file="/home/soyo/桌面/spark编程测试数据/1.txt"
    val lines=Source.fromFile(file).getLines().toList
      lines.foreach(println)
    val rowCount=lines.length //行数
    val listen= new ServerSocket(6667)
    while(true)
      {
        val socket=listen.accept()
        val thread=new Thread(){
          override def run={
            println("客户端地址为:"+socket.getInetAddress)
            val send=new PrintWriter(socket.getOutputStream,true)
            while (true)
              {
                Thread.sleep(1000)  //每隔1秒发送一次数据
               val content=lines(index(rowCount))
                println("******")
                println(content)
                send.write(content+"\n")
                send.flush()
              }
            socket.close()
          }
        }
        thread.start()
      }
  }
  def index(length:Int):Int ={
    val rd=new java.util.Random()
    rd.nextInt(length) //随机获取0-length 之间的一个数
  }

}

功能:随机读取1.txt文件内的一行 发送到6667端口

备注:需要同时运行监听程序

以上是关于IDEA Spark Streaming 操作(套接字流)-----make socket数据源的主要内容,如果未能解决你的问题,请参考以下文章

IDEA Spark Streaming 操作(套接字流)-----make socket数据源

如何在idea里面直接运行spark streaming程序

关于IDEA开发环境下的Kafka+Spark Streaming的classpath配置方式

Spark 系列(十六)—— Spark Streaming 整合 Kafka

spark-streaming与kafka的整合

Spark Streaming发行版笔记17:资源动态分配和动态控制消费速率