SparkStreaming入门案例Wordcount

@[TOC](spark Stream入门案例))



一、准备工作

centos7环境
spark环境搭建
nc安装(netcat):yum -y install nc

二、案例分析

将nc作为服务端,用户在场产生数据;启动sparkStreaming中案例中的客户端程序,
通过nc监听服务器发送的数据,对数据进行词频统计。实现sparkStreaming流式处
理的wordcount入门程序

三、官网案例

1、启动nc

nc -l -p 6666

2、启动sparkStreaminga案例程序

进入spark安装目录下,以下是本人自己的安装目录

cd /opt/module/spark-local

执行案例程序,端口号与启动nc时的端口号对应

bin/run-example streaming.NetworkWordCount localhost 6666

3、在nc服务端输入测试数据

在这里插入图片描述

4、测试结果,如下图所示

在这里插入图片描述

四、使用idea开发Wordcount程序

1、创建一个maven项目
2、在pom.xml文件中添加sparkstreaming项目依赖

		<!--spark-Stream实时处理-->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-streaming_2.11</artifactId>
            <version>2.1.1</version>
        </dependency>

3、在idea中编写Wordcount程序代码

import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.sql.catalyst.expressions.Second
import org.apache.spark.storage.StorageLevel
import org.apache.spark.streaming.dstream.{DStream, ReceiverInputDStream}
import org.apache.spark.streaming.{Seconds, StreamingContext}

object SparkStreamingTestOne {
  def main(args: Array[String]): Unit = {
    //创建SparkConf
    val sparkconf = new SparkConf().setMaster("local[*]").setAppName("SparkStreamingTestOne")
    //创建SparkContext
    val sc = new SparkContext(sparkconf)
    //利用SparkContext创建SparkStramingContext
    val streamingContext = new StreamingContext(sc,Seconds(3))
    //通过创建DStream输入对象,链接到nc服务器创建输入数据源
    val rids:ReceiverInputDStream[String] = streamingContext.socketTextStream("ethan002",6666,StorageLevel.MEMORY_AND_DISK)
    //采集数据,并做分词处理
    val ds:DStream[String] = rids.flatMap(_.split(" "))
    //做词频统计,,,resultDS的结果是一个由元组组成的数组
    val resultDS: DStream[(String, Int)] = ds.map((_,1)).reduceByKey(_+_)
    //将结果打印
    resultDS.print()
    //启动SparkStreaming实时计算
    streamingContext.start()
    //等待计算结束
    streamingContext.awaitTermination()
  }
}

4、在服务器上启动nc,并输入测试数据
在这里插入图片描述

5、在idea运行Wordcount程序
在这里插入图片描述

6、执行结果,如图所示:
处理结果显示在idea的控制台
在这里插入图片描述
注意:Wordcount程序会一直处于执行状态,若要停止,需要在IDEA手动中结束程序


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

似懂非dong

你的肯定使我加倍努力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值