在win10环境下运行spark streaming中的NetworkWordCount_学渣渣_宇的博客-程序员ITS203

技术标签: spark  

NetworkWordCount

测试spark streaming wordcount,在学习streaming时候官方教程中有个NetworkWordCount栗子,通过TCP套接字连接,从流数据中创建一个DStream,然后进行处理,时间窗口自己定义,但是一般都是在linux中测试。因为我的spark环境搭建在win中,所以接下来将在win10系统中对其进行实现
首先通过scala在idea中编写spark streaming代码,并构建DStream,对获取得到的流数据进行处理。

package day01
import org.apache.spark.SparkConf
import org.apache.spark.streaming.{Seconds, StreamingContext}
object Streaming {
    def main(args: Array[String]): Unit = {   
        //1、初始化Spark配置信息    
        val sparkConf = new SparkConf().setAppName("sparkStreaming").setMaster("local[*]")  
        
        //2、初始化SparkStreamingContext    
        val ssc = new StreamingContext(sparkConf,Seconds(10))    
        
        //3、通过监控窗口创建DStream,读进来的数据为一行行的    
        val lineStreams = ssc.socketTextStream("localhost",9999)    
        
        //将每一行数据进行切分,形成一个个单词    
        val wordStreams = lineStreams.flatMap(line=>line.split(" "))   
        
        //将单词映射成元组(word,1)    
        val wordAndOneStreams = wordStreams.map((_,1))    
        
        //将相同的单词次数做统计   
        val wordAndCountStreams = wordAndOneStreams.reduceByKey(_+_)   
        
        //打印    
        wordAndCountStreams.print()    
        
        //启动SparkStreamingContext    
        ssc.start()   
        
        //Drvier等待采集器的执行    
        ssc.awaitTermination()  
    }
}

运行程序会打印出很多INFO和WARN信息,这对我们的实时流数据展示很不友好。在这里插入图片描述
通过上述代码输出截图可以看出,使用的是log4j.properties文件,

Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties

所以在spark安装目录下,即…\spark-2.1.1-bin-hadoop2.7\conf文件中找到log4j.properties.template文件,并把其移动在idea中项目文件中,重命名为log4j.properties文件,并修改其打印级别,就是把WARN和INFO修改成ERROR即可。
在这里插入图片描述在这里插入图片描述
再运行会发现输出中的INFO和WARN日志没了但是还是存在新的错误,根据错误提示发现是代码中编写的端口号9999不存在,导致无法连接获取数据。
[外链图片转存失败(img-Qf4Ko7KA-1567518561481)(en-resource://database/820:1)]
采用netcat作为数据数据服务器,创建9999窗口,并往里面传输数据。所以:

  • 下载necat:https://eternallybored.org/misc/netcat/下载netcat
  • 安装,将解压好的net64.exe拷贝到C:\window下。
    在cmd中输入nc64 -l -p 9999命令创建9999端口(linux环境下使用nc -lk 9999),并输入以空格划分的字符串
a s d f g h h g f a s d f g h j

在这里插入图片描述
在idea中运行程序,获取到本机中9999端口的流式数据,并对其进行切分统计,输出结果如图所示:
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42382211/article/details/100528611

智能推荐

微信小程序 页面传参(url)参数过长报错解决办法_SuperSuperJoker的博客-程序员ITS203_小程序参数过长

在开发中,如果希望将一个对象从一个页面传到另一个页面时,大家可能都会知道用JSON.stringify()的方式,把对象转成JSON字符串再传值,但是当我们的这个对象字符串数值过长的时候就会出现报错,这时我们只需在JSON外面再包一个加密,就能解决报错了。页面(传参):跳转到的页面(接收):...

【经验分享】我转行自学Java六个月,第一份工作拿到25K!_憨小萌的博客-程序员ITS203

最近有些网友问我如何自学 Java 后端,还有些是想从别的方向想转过来,但都不太了解 Java 后端究竟需要学什么,究竟要从哪里学起,哪些是主流的 Java 后端技术等等,导致想学,但又很迷茫,不知从何下手。我就以过来人的经历,写在这篇文章里,不一定都对,但都是我根据自己的经历总结出来的,供你们的参考。Java 基础Java 是一门纯粹的面向对象的编程语言,所以除了基础语法之外,必须得弄懂它的 oop 特性:封装、继承、多态。此外还有泛型、反射的特性,很多框架的技术都依赖它,比如 Spri.

STM32W108无线射频模块AD转换器_大连飞翔科技有限公司的博客-程序员ITS203_射频收发器的ad转换器

STM32W108 AD转换器是一个一阶∑-△转换器,具有以下特性: 分辨率可达12位 采样最小时间5.33us(188KHz) 6个外部和4个内部输入源,可进行差分和单端转换 两个电压转换范围(差分):-VREF~+VREF,-VDD_PADS~+VDD_PADS 可选择内部和外部参考标准VREF:内部的VREF可用于输出 数字偏移和增益校准 专用DMA通道,通道支持一次和连续的操作模式

泰勒展开式求sin(x)的值,程序实现,余弦,正切等函数类似_qq_25814297-npl的博客-程序员ITS203_sin(x)泰勒展

问题描述用sin泰勒展式编写程序,求出sin(π/2)和sin(56°)的值,精度要求达到小数点后6位(即当最后一项的绝对值小于0.00001时,累加结束,求绝对值的函数也可以自定义函数myabs实现)。实际上,C语言的数学库(#include<math.h>)中已经提供了sin和cos函数,以及求绝对值的函数fabs,一般解题中我们直接调用即可,而本题要求自定义函数实现,为...

Failed to class-load type while reading annotation metadata. This is a non-fatal_crabdave123的博客-程序员ITS203

Failed to class-load type while reading annotation metadata. This is a non-fatal error, but certain annotation metadata may be unavailable.[DEBUG] org.springframework.core.type.classreading.Annot...

随便推点

如何在AWS中启动EC2实例_dnc8371的博客-程序员ITS203

你好朋友, 在本教程中,我们将看到如何立即在AWS中旋转EC2实例。 您应该可以访问AWS控制台。如果您还没有AWS账户,则可以单击此处并在AWS上创建免费套餐。 如何在AWS中启动EC2实例 步骤1 : 使用您的凭证登录到您的AWS账户。 第2步 : 单击服务,您将看到以下屏幕 第三步: 单击EC2,您将看到以下屏幕: 第四步 : 单击启动实例...

08---搭建分片集群_wangyongxun1983的博客-程序员ITS203_分片集群

mongodb 中的分片机制知识点:分片的概念 mongodb 中的分片架构 分片示例1.为什么需要分片?随着数据的增长,单机实例的瓶颈是很明显的。可以通过复制的机制应对压力,但mongodb中单个集群的 节点数量限制到了12个以内,所以需要通过分片进一步横向扩展。此外分片也可节约磁盘的存储。1.mongodb 中的分片架构1.mongodb 中的分片架构分片中的节点说明:路由节点(mongos):用于分发用户的请求,起到反向代理的作用。配置节点(config):

网络游戏《丛林战争》开发与学习之(二):粘包分包现象以及服务端解析数据_s1314_JHC的博客-程序员ITS203

本篇博客主要介绍数据发送和接收时遇到的粘包和分包现象,以及实现服务端解析收到消息的代码,本节的代码是在第(一)部分的基础上进行的,可以先浏览下第一部分https://blog.csdn.net/s1314_jhc/article/details/80914044源码下载地址:https://download.csdn.net/download/s1314_jhc/105455851. 粘包...

mysql 查询时间戳格式化 和thinkphp查询时间戳转换 将查询结果某个字段以逗号分隔,使用group_concat函数可以实现_王者NO1的博客-程序员ITS203

1、mysql语句格式化时间戳select id,name,FROM_UNIXTIME(time,'%Y-%m-%d %H:%i:%s') as addtime from testtable where totaltime != '';//time是时间戳字段,查出来之后是格式化的数据 ,重命名为 addtime 显示结果select id,name,UNI...

软件测试和质量保障MOOC(华中科技大)——第九单元测试题答案_J_Jocelyn_n的博客-程序员ITS203

第9周 软件质量模型与度量 第9周单元测验1、如下关于软件质量模型中,正确的描述是: A.基于经验的模型可以看做一种静态模型 B.基于构建的模型是根据经验,使用典型的质量因素来...

js中将某个value前面补0然后整个字符串还是12位_阿_洁的博客-程序员ITS203

js中将form.sfje.value前面补0然后整个字符串还是12位var s;s=new Array(12).join('0').concat(form.sfje.value+"00");form.sfje.value=s.substring(s.length-12,s);欢迎各位程序猿&程序媛批评指正~

推荐文章

热门文章

相关标签