IDEA Spark Streaming 操作(套接字流)-----make socket數據源
阿新 • • 發佈:2017-10-16
運行 accep index lines sleep div rri object art
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數據源