今天我们讲spark streaming的应用,这个是实时处理的,类似于Storm以及Flink相关的知识点,

  说来也巧,今天的自己也去听了关于Flink的相关的讲座,可惜自己没有听得特别清楚,好像是

  spark streaming与flink是竞争关系,好了,我们进入今天的主题吧

    1.一般会做用户画像的差不多集中在两个行业,电商以及广告行业

     一般根据现实给这个人打上一个标签,在根据标签来确定画像

    2.如果一个人不登录,怎样确定这个人的详情

    

    这个就是spark streaming的应用

    nc -lk 8888 这个端口可以一直发送数据

    请记住,spark中产生的rdd,可能会由于某种意外的原因,从而这个计算可能就要重新开始计算,

    但是假如我们设置了checkpoint(如果多个进程同时开始的话,我们可以搞一个共享存储)的时候,

    就可以保存这个值,当再一次出现意外的时候,就可以从恢复的这个值重新读取

      对于map来说,可以map(),同时也可以map{},这样的两种表达形式,不过当我们写成了case()的

      这种形式,则我们必须使用map的大括号的这种形式了,后文附带代码

    

package cn.wj.spark.day09

import org.apache.spark.streaming.{Seconds, StreamingContext}
import org.apache.spark.{HashPartitioner, SparkConf, SparkContext} /**
* Created by WJ on 2017/1/18.
*/
object StateFulWordCount { //Seq这个批次某个单词的次数
//Option[Int]:以前的结果
//(hello,1),(hello,1),(tom,1)
//(hello,Seq(1,1)),(tom,Seq(1))
//此时x=>String(Key的值),y=>Seq[Int](当前的这个value的值),z=>Option[Int],这个代表的是以前的value的值
val updateFunc = (iter:Iterator[(String,Seq[Int],Option[Int])]) =>{
iter.flatMap{case(x,y,z) => Some(y.sum+z.getOrElse()).map(m =>(x,m))}
} def main(args: Array[String]): Unit = {
LoggerLevels.setStreamingLogLevels()
//StreamingContext
val conf = new SparkConf().setAppName("StreamingContext").setMaster("local[2]")
val sc = new SparkContext(conf)
sc.setCheckpointDir("/tmp/ck")
// sc.setCheckpointDir("hdfs://192.168.109.136:9000/person/myfile")
val ssc = new StreamingContext(sc,Seconds())
val ds = ssc.socketTextStream("192.168.109.136",)
//updateStateByKey:这个方法的意思是说将每一次的partition都进行一次累计
val result = ds.flatMap(_.split(" ")).map((_,)).updateStateByKey(updateFunc,new HashPartitioner(sc.defaultParallelism),true)
result.print()
ssc.start()
ssc.awaitTermination()
}
}

   其中,LoggerLevels.setStreamingLogLevels()这个是设置日志文件的显示情况的,是让打出来的日志更清晰,

   如果没必要,可以删除的。

   首先我们在linux里面向8888端口发送信息:

   

   然后启动项目,这个时候就可以看见这个效果了(可以叠加的spark streaming)

   

spark streaming的应用的更多相关文章

  1. Spark踩坑记——Spark Streaming+Kafka

    [TOC] 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark strea ...

  2. Spark Streaming+Kafka

    Spark Streaming+Kafka 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端, ...

  3. Storm介绍及与Spark Streaming对比

    Storm介绍 Storm是由Twitter开源的分布式.高容错的实时处理系统,它的出现令持续不断的流计算变得容易,弥补了Hadoop批处理所不能满足的实时要求.Storm常用于在实时分析.在线机器学 ...

  4. flume+kafka+spark streaming整合

    1.安装好flume2.安装好kafka3.安装好spark4.流程说明: 日志文件->flume->kafka->spark streaming flume输入:文件 flume输 ...

  5. spark streaming kafka example

    // scalastyle:off println package org.apache.spark.examples.streaming import kafka.serializer.String ...

  6. Spark Streaming中动态Batch Size实现初探

    本期内容 : BatchDuration与 Process Time 动态Batch Size Spark Streaming中有很多算子,是否每一个算子都是预期中的类似线性规律的时间消耗呢? 例如: ...

  7. Spark Streaming源码解读之No Receivers彻底思考

    本期内容 : Direct Acess Kafka Spark Streaming接收数据现在支持的两种方式: 01. Receiver的方式来接收数据,及输入数据的控制 02. No Receive ...

  8. Spark Streaming架构设计和运行机制总结

    本期内容 : Spark Streaming中的架构设计和运行机制 Spark Streaming深度思考 Spark Streaming的本质就是在RDD基础之上加上Time ,由Time不断的运行 ...

  9. Spark Streaming中空RDD处理及流处理程序优雅的停止

    本期内容 : Spark Streaming中的空RDD处理 Spark Streaming程序的停止 由于Spark Streaming的每个BatchDuration都会不断的产生RDD,空RDD ...

  10. Spark Streaming源码解读之State管理之UpdataStateByKey和MapWithState解密

    本期内容 : UpdateStateByKey解密 MapWithState解密 Spark Streaming是实现State状态管理因素: 01. Spark Streaming是按照整个Bach ...

随机推荐

  1. DIV内数据删除操作

    对于数据操作,前端提供静态方法,交给后台去操作 此处记录一下,待优化,不过精华都在里面了 静态页面: 鼠标移上显示: html代码 css代码 js代码

  2. MyEclipse快捷键大全,很实用

    Eclipse本身很快的,但是加上了myeclipse后,就狂占内存,而且速度狂慢,那如何让Eclipse拖着myeclipse狂飚呢?这里提供一个: 技巧:取消自动validation  valid ...

  3. js获取农历日期【转】

    var CalendarData=new Array(100); var madd=new Array(12); var tgString="甲乙丙丁戊己庚辛壬癸"; var dz ...

  4. UDoc(云平台企业应用级 文档管理产品)

    类型: 定制服务 软件包: integrated industry solution collateral 联系服务商 产品详情 解决方案 概要 为企业提供基于云平台企业应用级文档管理产品,尽可能最大 ...

  5. 监控系统-mod-gearman

    doc http://labs.consol.de/nagios/mod-gearman/ 安装 yum -y install gearmand-server-0.33-2.rhel6.x86_64. ...

  6. vos套餐设置

    为实现对客户不同时段按不同费率计算,可以在vos里设置套餐, 具体案例: 1. 2.时段费率 套餐里没包含的时间段是不能打电话的 即:周一到周五       21:30—24:00    00:00- ...

  7. 使用ABAP(ADBC)和Java(JDBC)连接SAP HANA数据库

    在表DBCON里维护一条记录,指向HANA数据库.con_ENV里填入HANA数据库的主机名和端口号.如vmXXXX:30015 DATA: ls_new TYPE DBCON. ls_new-con ...

  8. IOS照相机的启动,图片的读取,存储demo

    #import @interface ViewController : UIViewController@property (retain, nonatomic) IBOutlet UIImageVi ...

  9. Last_Errno: 1396

    Last_Errno: 1396   Last_Error: Error 'Operation CREATE USER failed for 'usera63'@'%'' on query. Defa ...

  10. POJ-1159 Palindrome---变成回文串的最小代价

    题目链接: https://cn.vjudge.net/problem/POJ-1159 题目大意: 题意很明确,给你一个字符串,可在任意位置添加字符,最少再添加几个字符,可以使这个字符串成为回文字符 ...