开发者学堂课程【大数据Spark2020版(知识精讲与实战演练)第五阶段:Sparkstreaming 案例-代码编写】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/692/detail/12132
Sparkstreaming 案例-代码编写
内容介绍
一、编写代码准备工作
二、编写代码实际操作
一、编写代码准备工作与代码编写注意
在编写代码前第一步进行创建对应的包与类
首先将目录标注为 steamingwordcount,创建环境
编写 mian 方法
Def main (args:Array [string]:UNIT={
大致的步骤为
//1.初始化环境
//2.数据处理
////1.把句子拆为单词
//2.展示和启动
//3.展示和启动
首先进行第一步,初始化环境
//1.初始化环境
Val spark conf =new spark conf() setappname (“steaming word count “ )
同时设定setmaster (“lacal{6}”)
Val ssc =new 此时使用 streamingcontext 接受两个参数 (sparkconf seonds(1))需要告诉每一批大概多久,大概一秒一次
点入发现,该步骤为下载了一个 Ssc.socket textstream
如果上网即可下载,所做的事情为 Ssc.socket textstream 和 streamingcontext 的下载
创建完成
二、编写代码实际操作
进行编写
在数据处理前进行读取通过 ssc
Ssc.socket textstream(,
接收参数
第一个参数
Hostname =“192.16/8.169.101”
查看进入窗口中,中断程序,输入 ifconfig
查看 ip,进行复制可能为其他的 ip 没关系,复制即可
第二个参数 Port=9999
第三个参数为可选择的参数,指获取数据时如何保存,一般情况下给定默认的即可
Storagelevel=storagelevel。MEMORY-AND-DISK-SER
给定后获取对象
Val lines 给定对象的类型为 receiver inputdstream (string)
可以当成 idd 进行处理
//2.数据的处理
//1.把句子拆为单词
Val。Words=lines flatmap (。,msplit (regex=””))
//转换单词
Val tuples=words.map(~.1)
//词频 reduce
之后进行词频的统计,可以叫做 Val. Counts=tupiles reducebykey(-+-) 内部的统计逻辑把前一个和当前的统计结果相加统计总个数,接下来进行程序的运行
//3.展示和启动
使用 COUNTS.print() 并不会导致整个流的施行 ,同时加上 Ssc.start() 来进行整体流的运作
正常请情况下运行到 COUNTS.print() 整体流程便结束
//main 方法执行完毕后整个程序就会退出,所以需要阻塞主线程
Ssc.Awaitermination 为等待中断的意思,等待外部发布指令
因为需要在后台不断开启数据所以线程数必须大于 1,如果给 1 则在外部处理时则没有子线程无法操作。