今天我们讲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. If you want the rainbow, you have to deal with the rain.

    If you want the rainbow, you have to deal with the rain.想要彩虹,就先忍受雨水.

  2. JavaScript库 — — React

    React不支持IE6.IE7 React是什么?用于构建用户界面的JAVASCRIPT库,是MVC中的V(视图). React特点:1. 声明式设计2. 减少与DOM的交互,高效3. JSX - J ...

  3. PHP underlying structure

    http://www.phpinternalsbook.com/classes_objects/magic_interfaces_comparable.html

  4. iOS 谓词(NSPredicate)的应用

    Cocoa中谓词(Predicate)提供了一个通用的查询方式处理数据,可以获取和指定数据的过滤形式,Cocoa实际开发中可以是使用NSPredicate及其父类NSComparisonPredica ...

  5. 学习html5 app项目开发

    这周因为部门接了个小的html5 app case,所以从事android开发的我就接下了这个项目.与其说是项目需要,其实更大部分是我自己想要做html5 app,因为我对这个全新的平台已经好奇很久了 ...

  6. 责任链模式(ChainOfResponsibiliby、Filter)

    Request 类: package com.demo; public class Request { private String requestStr; public String getRequ ...

  7. centreon-engine 性能调优

    http://documentation.centreon.com/docs/centreon-engine/en/latest/user/configuration/best_practice.ht ...

  8. http:origin,referer和host区别

    发起一个ajax请求时,request header里面有三个属性会涉及请求源信息.前端可能用不到这些值,但是,后台业务系统会比较关心它们,场景可能有: 处理跨域请求时,必须判断来源请求方是否合法:后 ...

  9. nginx配置优化-生产环境应用版

    user www www; worker_processes auto; worker_cpu_affinity auto; error_log /usr/local/nginx/logs/error ...

  10. 双网卡(一外一内)都启用,将内网卡默认网关去除即可正常连接Internet