1,因业务需要,需要自己定义数据源,来一直产生数据,需要继承 Receiver类
import org.apache.spark.storage.StorageLevel
import org.apache.spark.streaming.receiver.Receiver
/**
* @Author: wpp
* @Date: 2020/5/4 23:36
*
*/
//自定义数据源
class CustomSourceReceiver(host: String, port: Int) extends Receiver[String](StorageLevel.MEMORY_ONLY) {
//最初启动的时候,调用该方法,作用为:读取数据并将数据发送给spark
override def onStart(): Unit = {
var idx = 0
new Thread("Socket Receiver") {
override def run(): Unit = {
while (true){
idx=idx+1
store( idx.toString)
Thread.sleep(1000)
}
}
}.start()
}
override def onStop(): Unit = {}
}
2,测试代码如下ÿ