Linux安装nc,以及通过SparkStreming实时统计单词的个数

Linux中有一个级强大的网络工具netcat,在默认情况下面都是没有安装的,现在介绍一下安装过程 

切换到root用户:

yum install -y nc

测试使用 
在一个终端上 输入 nc -lk 9999

然后可以输入数据 

 

package day15

import org.apache.spark.streaming.dstream.{DStream, ReceiverInputDStream}
import org.apache.spark.streaming.{Seconds, StreamingContext}
import org.apache.spark.{SparkConf, SparkContext}

object WordCount {
  def main(args: Array[String]): Unit = {
    //1.书写sparkStreaming的程序入口,也就是SparkStreaming
    val conf: SparkConf = new SparkConf().setAppName("wc").setMaster("local[*]")
    //sc只是为了少打印一点日志
    val sc: SparkContext = new SparkContext(conf)
    sc.setLogLevel("WARN")
    //给SparkStreaming运行批次时间参数,每5秒运行一次
    val ssc: StreamingContext = new StreamingContext(sc,Seconds(5))//第一个参数也可以是conf
    //接收数据
    //运行该程序之前,必须在终端打开端口,nc -lk 8888
    val file: ReceiverInputDStream[String] = ssc.socketTextStream("hadoop101",8888)
    //处理数据
    //切分
    val spliFile: DStream[String] = file.flatMap(_.split(" "))
    //转换为元组kv形式
    val wordAndOne: DStream[(String, Int)] = spliFile.map((_,1))
    //统计各个单词的次数
    val wordAndCount: DStream[(String, Int)] = wordAndOne.reduceByKey(_+_)
    //打印输出结果
    wordAndCount.print()

    //启动StreamingContext
    ssc.start()
    //通过调用awaitTermination方法,让其一直运行,等待关闭
    ssc.awaitTermination()
  }

}

Linux安装nc,以及通过SparkStreming实时统计单词的个数_第1张图片

Linux安装nc,以及通过SparkStreming实时统计单词的个数_第2张图片 

你可能感兴趣的:(Spark)