Spark Streaming socketTextStream简单demo

时间:2021-07-30 07:58:10

正文

  SparkStreaming的入口是StreamingContext,通过scala实现 一个简单的实时获取数据。代码SparkStreaming官网也可以找到。

  

object SocketDStreamTest {

  def main(args: Array[String]): Unit = {
val conf = new SparkConf().setMaster("local[2]").setAppName("streamTest")
val ssc = new StreamingContext(conf, Seconds(2)) val textStream: ReceiverInputDStream[String] = ssc.socketTextStream("hadoop01", 9999)
textStream.flatMap(_.split(",")).map((_, 1)).reduceByKey(_ + _).print() ssc.start()
ssc.awaitTermination()
ssc.stop()
}
}

  通过maven配置相关的配置,可能有时候会遇到如下情况:

  Spark Streaming socketTextStream简单demo

  找到你的maven配置pop.xml,将对应的spark-streaming那个节点,你会发现有一个scope节点。这个节点我认为就是一个作用范围的设置,如果从maven的官网上找配置那么会有这一个节点<scope>provided</scope>,配置为provided。而我们的SparkStreaming的官网上没有这个节点,具体原因我还没有去看。解决完这个问题,直接运行代码等待。在Linux系统中,启动$ nc -lk 9999 官网写的,启动会因为我们代码中有对9999端口的监视,然后我们往里面添加数据。它是以一行一行的去读取的。

  Spark Streaming socketTextStream简单demo

  但是缺陷就是他不会累加前后的读取结果,那么怎么去累加呢,之后会在另开一个博客讲述,当然这些官网上都是有的。就这么多了,如有不对之处,还望指点。

        it's a long way for success