自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

snail_gesture的博客

Deep Learning|Machine Learning|Spark

  • 博客(23)
  • 收藏
  • 关注

原创 Spark Streaming资源动态申请和动态控制消费速率原理剖析

为什么需要动态? a) Spark默认情况下粗粒度的,先分配好资源再计算。对于Spark Streaming而言有高峰值和低峰值,但是他们需要的资源是不一样的,如果按照高峰值的角度的话,就会有大量的资源浪费。 b) Spark Streaming不断的运行,对资源消耗和管理也是我们要考虑的因素。 Spark Streaming资源动态调整的时候会面临挑战: Spark Streaming

2016-05-31 09:35:27 3829 1

原创 Spark Streaming源码解读之数据清理内幕彻底解密

本篇博客的主要目的是: 1. 理清楚Spark Streaming中数据清理的流程组织思路如下: a) 背景 b) 如何研究Spark Streaming数据清理? c) 源码解析一:背景 Spark Streaming数据清理的工作无论是在实际开发中,还是自己动手实践中都是会面临的,Spark Streaming中Batch Durations中会不断的产生RDD,这样会不

2016-05-29 16:48:50 4346

原创 Spark Streaming源码解读之No Receivers详解

背景: 目前No Receivers在企业中使用的越来越多。No Receivers具有更强的控制度,语义一致性。No Receivers是我们操作数据来源自然方式,操作数据来源使用一个封装器,且是RDD类型的。所以Spark Streaming就产生了自定义RDD –> KafkaRDD.源码分析: 1. KafkaRDD: ** * A batch-oriented interface

2016-05-28 16:11:49 2543

原创 Spark Streaming源码解读之State管理之updateStateByKey和mapWithState解密

背景: 整个Spark Streaming是按照Batch Duractions划分Job的。但是很多时候我们需要算过去的一天甚至一周的数据,这个时候不可避免的要进行状态管理,而Spark Streaming每个Batch Duractions都会产生一个Job,Job里面都是RDD,所以此时面临的问题就是怎么对状态进行维护?这个时候就需要借助updateStateByKey和mapWit

2016-05-26 21:12:19 6311

原创 Spark Streaming源码解读之Driver容错安全性

本篇博文的目标如下: 1. ReceiverBlockTracker容错安全性 2. DStream和JobGenerator容错安全性文章的组织思路如下: 考虑Driver容错安全性,我们要思考什么? 再详细分析ReceiverBlockTracker,DStream和JobGenerator容错安全性一:容错安全性 1. ReceivedBlockTracker负责管理Spa

2016-05-24 19:32:11 10855 3

原创 Spark Streaming源码解读之Executor容错安全性

本篇博文的目标是 1. Executor的WAL机制详解 2. 消息重放Kafka数据安全性的考虑:Spark Streaming不断的接收数据,并且不断的产生Job,不断的提交Job给集群运行。所以这就涉及到一个非常重要的问题数据安全性。Spark Streaming是基于Spark Core之上的,如果能够确保数据安全可好的话,在Spark Streaming生成Job的时候里面是基

2016-05-24 15:22:36 10677

原创 Spark Streaming源码解读之Driver中的ReceiverTracker详解

本篇博文的目标是: Driver的ReceiverTracker接收到数据之后,下一步对数据是如何进行管理一:ReceiverTracker的架构设计 1. Driver在Executor启动Receiver方式,每个Receiver都封装成一个Task,此时一个Job中就一个Task,而Task中就一条数据,也就是Receiver数据。由此,多少个Job也就可以启动多少个Receiver.

2016-05-24 08:33:09 11699

原创 Spark Streaming源码解读之流数据不断接收详解

特别说明: 在上一遍文章中有详细的叙述Receiver启动的过程,如果不清楚的朋友,请您查看上一篇博客,这里我们就基于上篇的结论,继续往下说。博文的目标是: Spark Streaming在接收数据的全生命周期贯通组织思路如下: a) 接收数据的架构模式的设计 b) 然后再具体源码分析接收数据的架构模式的设计 1. 当有Spark Streaming有application的时候Sp

2016-05-23 08:56:35 13391

原创 Spark Streaming源码解读之Receiver在Driver详解

一:Receiver启动的方式设想 1. Spark Streaming通过Receiver持续不断的从外部数据源接收数据,并把数据汇报给Driver端,由此每个Batch Durations就可以根据汇报的数据生成不同的Job。 2. Receiver属于Spark Streaming应用程序启动阶段,那么我们找Receiver在哪里启动就应该去找Spark Streaming的启动。

2016-05-20 13:43:19 14683 1

原创 Spark Streaming源码解读之RDD生成全生命周期详解

本篇博客将详细探讨DStream模板下的RDD是如何被创建,然后被执行的。在开始叙述之前,先来思考几个问题,本篇文章也就是基于此问题构建的。 1. RDD是谁产生的? 2. 如何产生RDD? 带着这两个问题开启我们的探索之旅。 一:实战WordCount源码如下:object WordCount { def main(args:Array[String]): Unit ={

2016-05-18 22:16:47 4378 1

原创 Spark Streaming源码解读之JobScheduler详解

一:JobSheduler的源码解析 1. JobScheduler是Spark Streaming整个调度的核心,相当于Spark Core上的DAGScheduler. 2. Spark Streaming为啥要设置两条线程? setMaster指定的两条线程是指程序运行的时候至少需要两条线程。一条线程用于接收数据,需要不断的循环。而我们指定的线程数是用于作业处理的。 3. Job

2016-05-18 22:04:35 2435

原创 Spark Streaming源码解读之Job详解

一:Spark Streaming Job生成深度思考 1. 做大数据例如Hadoop,Spark等,如果不是流处理的话,一般会有定时任务。例如10分钟触发一次,1个小时触发一次,这就是做流处理的感觉,一切不是流处理,或者与流处理无关的数据都将是没有价值的数据,以前做批处理的时候其实也是隐形的在做流处理。 2. JobGenerator构造的时候有一个核心的参数是jobScheduler,

2016-05-15 16:53:43 14207 1

原创 Spark Streaming的Exactly-One的事务处理和不重复输出详解

本篇博文组织形式如下: 一:Exactly-One的事务处理 二:输出不重复一:Exactly-One的事务处理 一:Exactly-One的事务处理 1. 什么是事务处理: a) 能够处理且只被处理一次。例如,银行转账,A转给B,A有且仅转一次。 b) 能够输出,且只能够输出一次。而B接收转账,且直接收一次。2. 事务处理会不会失败呢?可能性不大,Spark是批处理的方式来进

2016-05-10 23:02:53 6237

原创 Spark Streaming基于案例详解

本篇博文将从如下几点组织文章: 一:案例演示 二:源码分析一:案例演示 这里只是贴出源码,后续会对改代码的实战和实验演示都会详细的补充。package com.dt.spark.sparkstreamingimport org.apache.spark.SparkConfimport org.apache.spark.sql.Rowimport org.apache.spark.sql.

2016-05-10 22:35:44 9544

原创 SparkStreaming运行机制和架构详解

本篇博文将从以下几点组织文章: 1. 解密Spark Streaming运行机制 2. 解密Spark Streaming架构 一:解密Spark Streaming运行机制 1. DAG生成模板 :DStreamGrapha) Spark Streaming中不断的有数据流进来,他会把数据积攒起来,积攒的依据是以Batch Interval的方式进行积攒的,例如1秒钟,但是这1秒钟

2016-05-08 14:36:38 4807

原创 SparkStreaming on Kafka之Kafka解析和安装实战

本篇博文将从以下方面组织内容: 1. Kafka解析 2. 消息组件Kafka 3. Kafka安装 实验搭建所需要的软件: kafka_2.10-0.9.0.1 Zookeeper集群已经安装好。在上一篇博文有安装步骤,不清楚的朋友可以参考下。 一:Kafka解析 1. Kafka是生产者和消费者模式

2016-05-08 10:13:49 4671

原创 Spark搭建HA详解

实验环境: zookeeper-3.4.6 Spark:1.6.0 简介: 本篇博客将从以下几点组织文章: 一:Spark 构建高可用HA架构 二:动手实战构建高可用HA 三:提交程序测试HA一:Spark 构建高可用HA架构 Spark本身是Master和Slave,而这这里的 Master是指Spark资源调度和分配。负责整个集群的资源调度和分配。 Worke

2016-05-07 11:30:55 9042 2

原创 Spark Streaming入门详解

背景: 使用Spark主要是使用Spark Streaming,Spark Streaming的魔力之所在于: 1. 流式处理,如今是一个流处理时代,一切与流不相关的都是无效的数据。 2. 流式处理才是真正的对大数据的印象。Spark Streaming的流式处理非常强大的一个功能是可以在线处理,ML,Spark SQL等流进来的数据,这也是Spark提供的一体化,多元

2016-05-06 11:35:15 5042 2

原创 Spark SQL基于网站Log的综合案例实战

本篇博文我们将手动添加数据,这个功能非常有用,我们可以根据自己的需要创造出满足自己需要的数据格式及内容,而且数据不需要清洗,话不多说,代码实战。package com.dt.spark.SparkApps.sql.project;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.

2016-05-03 11:08:27 1031

原创 Java实战RDD与DataFrame动态转换操作

在企业中目前应用比较多的就是动态转换。动态的意思:是指提前不知道RDD中的每个record的列的个数,以及列的内容,只有在运行的时候才会知道,Row代表table中的一行数据。 实战代码如下:package com.dt.spark.SparkApps.sql;/** * 打印结果: [1,Spark,7] [2,Hadoop,10] [3,Fl

2016-05-03 08:50:49 5987

原创 使用Java实战RDD和DataFrame转换操作

一:RDD与DataFrame转换 1. 通过反射的方式来推断RDD元素中的元数据。因为RDD本身一条数据本身是没有元数据的,例如Person,而Person有name,id等,而record是不知道这些的,但是变成DataFrame背后一定知道,通过反射的方式就可以了解到背后这些元数据,进而转换成DataFrame。 如何反射? Scala: 通过case class映射,在case cl

2016-05-02 22:23:08 5250

原创 使用Java和Scala在IDE中开发DataFrame实战

本篇博文我将使用Java和Scala两种语言实战DataFrame,创建DataFrame的时候,DataFrame可以来源于其他RDD,也可以来自于Hive表,或者其他数据来源。一般基于数据来源直接构造DataFrame。例如JSON文件,那么读取JSON文件的时候就会自动创建DataFrame。 SQLContext操作数据SQL的时候:有一个弊端就是,只支持SQL一种方言。 但是如果使用H

2016-05-02 22:18:11 1365

原创 解密Spark SQL与DataFrame的本质

本篇博文主要讲解内容如下: 1. Spark SQL与DataFrame 2. RDD与DataFrame 3. Spark SQL企业级最佳实践 一:Spark SQL与DataFrame 1. Spark SQL非常强大主要体现在一下几点:a) 可以处理一切存储介质和各种格式的数据(可以方便的扩展Spark SQL的功能来支持更多类型

2016-05-02 11:56:01 2188

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除