• Spark Streaming 单词计数


    Receiver

    从数据源接收数据,然后把数据存储在内存中供spark streaming使用,在本地运行spark streaming不能设置master为local或者local[1],此时运行的线程只有一个,因为需要一个线程去运行Receiver接收数据,因此,就没有线程去处理数据了

    代码

    def main(args: Array[String]) {
    
        val conf = new SparkConf()
        conf.setAppName("SparkStreamDemo")
    // 不能使用local或者local[1],k必须大于1,准确的说是大于Receiver的数量 conf.setMaster("local[*]") val sc = new SparkContext(conf) // 创建StreamingContext 第二个参数是多长时间产生一个RDD val ssc = new StreamingContext(sc, Seconds(1)) // 创建DStream val lines = ssc.socketTextStream("m1", 9050); val wordCounts = lines.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_+_) wordCounts.print() // 启动spark streaming ssc.start() // 等待计算结束 ssc.awaitTermination() }

     

    使用nc命令向m1 9050端口发送数据

    如果nc命令不存在,首先安装nc命令

    1、sudo yum list nc,发现nc命令在nc.x86_64中
    2、安装nc, sudo yum -y install nc.x86_64

    nc -lk 9050

    然后一直输入数据,就可以看到控制台的数据输出

  • 相关阅读:
    十. 代码格式化插件 Tag
    小知识点
    IE11 打开方式 出现两个图标
    一 OS X 焦点 切换
    九. 边栏工具 浏览器工具 SideBarEnhancements
    Django进阶之缓存和信号
    Django进阶之中间件
    Python 堡垒机编程之Paramiko
    Django ORM补充
    Web 开发基础之Html
  • 原文地址:https://www.cnblogs.com/heml/p/6780355.html
Copyright © 2020-2023  润新知