随笔分类 - spark
摘要:原文:https://www.cnblogs.com/zhangrui153169/p/11375643.html比如我的内存中存在如下的以key-value形式的数据集(RDD):hello:1 sparkSubmit:1 red:1 sparkSubmit:1 hello:2 hello:1 hello:4 red:1 red:1 red:1 ......
阅读全文
摘要:一、数据接收并行度调优(1)通过网络接收数据时(比如Kafka、Flume),会将数据反序列化,并存储在Spark的内存中。如果数据接收称为系统的瓶颈,那么可以考虑并行化数据接收。每一个输入DStream都会在某个Worker的Executor上启动一个Receiver,该Receiver接收一个数据流。因此可以通过创建多个输入DStream,并且配置它们接收数据源不同的分区数据,达到接收多个数据...
阅读全文
摘要:一、数据处理原理剖析每隔我们设置的batch interval 的time,就去找ReceiverTracker,将其中的,从上次划分batch的时间,到目前为止的这个batch interval time间隔内的block封装为一个batch;其次,会将这个batch中的数据,去创建为一个初始的RDD,一个batch内,在这段时间封装了几个block,就代表这个batch对应的RDD内会有几个p...
阅读全文
摘要:一、数据接收原理二、源码分析入口包org.apache.spark.streaming.receiver下ReceiverSupervisorImpl类的onStart()方法### override protected def onStart() { // 这里的blockGenerator很重要,和数据接收有关,其运行在worker的executor端负责数据接收后的一些存取工作,以及配...
阅读全文
摘要:一、StreamingContext源码分析###入口 org.apache.spark.streaming/StreamingContext.scala/** * 在创建和完成StreamContext的初始化之后,创建了DStreamGraph、JobScheduler等关联组件之后,就会调用StreamContext的socketTextStream等方法, * 来创建输入DStream...
阅读全文
摘要:一、架构原理深度剖析StreamingContext初始化时,会创建一些内部的关键组件,DStreamGraph,ReceiverTracker,JobGenerator,JobScheduler,DStreamGraph,我们程序中定义很多DStream,中间用很多操作把这些DStream给串起来,这些DStream之间的依赖关系,就是所谓的DStreamGraph,然后调用StreamingC...
阅读全文
摘要:一、 容错机制1、背景要理解Spark Streaming提供的容错机制,先回忆一下Spark RDD的基础容错语义:1、RDD,Ressilient Distributed Dataset,是不可变的、确定的、可重新计算的、分布式的数据集。每个RDD都会记住确定好的计算操作的血缘关系,(val lines = sc.textFile(hdfs file); val words = lines.f...
阅读全文
摘要:一、部署应用程序1、流程1、有一个集群资源管理器,比如standalone模式下的Spark集群,Yarn模式下的Yarn集群等。2、打包应用程序为一个jar包。3、为executor配置充足的内存,因为Receiver接受到的数据,是要存储在Executor的内存中的,所以Executor必须配置足够的内存来保存接受到的数据。要注意的是,如果你要执行窗口长度为10分钟的窗口操作,那么Execut...
阅读全文
摘要:一、缓存与持久化机制与RDD类似,Spark Streaming也可以让开发人员手动控制,将数据流中的数据持久化到内存中。对DStream调用persist()方法,就可以让Spark Streaming自动将该数据流中的所有产生的RDD,都持久化到内存中。如果要对一个DStream多次执行操作,那么,对DStream持久化是非常有用的。因为多次操作,可以共享使用内存中的一份缓存数据。对于基于窗口...
阅读全文
摘要:一、top3热门商品实时统计案例1、概述Spark Streaming最强大的地方在于,可以与Spark Core、Spark SQL整合使用,之前已经通过transform、foreachRDD等算子看到,如何将DStream中的RDD使用Spark Core执行批处理操作。现在就来看看,如何将DStream中的RDD与Spark SQL结合起来使用。案例:每隔10秒,统计最近60秒的,每个种类...
阅读全文
摘要:一、output操作 1、output操作 2、output操作概览 二、foreachRDD 1、foreachRDD详解 2、java案例 创建mysql表 java代码
阅读全文
摘要:一、window滑动窗口 1、概述 2、window滑动窗口操作 案例:热点搜索词滑动统计,每隔10秒钟,统计最近60秒钟的搜索词的搜索频次,并打印出排名最靠前的3个搜索词以及出现次数 2、java案例 3、scala案例
阅读全文
摘要:一、transform以及实时黑名单过滤案例实战 1、概述 2、java案例 2、scala案例
阅读全文
摘要:一、updateStateByKey 1、概述 2、java案例 3、scala案例
阅读全文
摘要:一、基于Receiver的方式 1、概述 2、java版本 二、基于Direct的方式 1、概述 2、java版本
阅读全文
摘要:一、概述1、Socket:之前的wordcount例子,已经演示过了,StreamingContext.socketTextStream()2、HDFS文件基于HDFS文件的实时计算,其实就是,监控一个HDFS目录,只要其中有新文件出现,就实时处理。相当于处理实时的文件流。streamingContext.fileStream(dataDirectory)streamingContext.file...
阅读全文
摘要:输入DStream代表了来自数据源的输入数据流。在之前的wordcount例子中,lines就是一个输入DStream(JavaReceiverInputDStream),代表了从netcat(nc)服务接收到的数据流。除了文件数据流之外,所有的输入DStream都会绑定一个Receiver对象,该对象是一个关键的组件,用来从数据源接收数据,并将其存储在Spark的内存中,以供后续处理。Spark...
阅读全文
摘要:一、java版本package cn.spark.study.streaming;import java.util.Arrays;import org.apache.spark.SparkConf;import org.apache.spark.api.java.function.FlatMapFunction;import org.apache.spark.api.java.function.F...
阅读全文
摘要:一、大数据实时计算介绍 1、概述 2、图解 二、Spark Streaming基本工作原理 1、Spark Streaming简介 2、Spark Streaming基本工作原理 Spark Streaming是将流式计算分解成一系列短小的批处理作业。这里的批处理引擎是Spark Core,也就是把
阅读全文
摘要:一、概述1、需求分析数据格式:日期 用户 搜索词 城市 平台 版本需求:1、筛选出符合查询条件(城市、平台、版本)的数据2、统计出每天搜索uv排名前3的搜索词3、按照每天的top3搜索词的uv搜索总次数,倒序排序4、将数据保存到hive表中###数据 keyword.txt2018-10-1:leo:water:beijing:android:1.02018-10-1:leo1:water:bei...
阅读全文