自定义博客皮肤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

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

原创 Window下XGBoost安装

本文主要是对XGBoost安装进行介绍。在正文开始前,需要安装一些前置软件如下: - Git - MINGW下面开始正文介绍。1.首先创建XGBoost安装目录文件,然后在该目录下面启动git bash.E:\Xgboost2.然后执行如下命令。$ git clone --recursive https://github.com/dmlc/xgboost$ cd xgboost$ git su

2017-07-31 19:53:46 1727 1

原创 Spark Streaming性能优化系列-如何获得和持续使用足够的集群计算资源?

一:数据峰值的巨大影响 1. 数据确实不稳定,例如晚上的时候访问流量特别大 2. 在处理的时候例如GC的时候耽误时间会产生delay延迟二:Backpressure:数据的反压机制 基本思想:根据上一次计算的Job的一些信息评估来决定下一个Job数据接收的速度。 如何限制Spark接收数据的速度? Spark Streaming在接收数据的时候必须把当前的数据接收完毕才能接

2016-06-17 15:23:29 7555 2

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

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

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

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

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

2016-05-29 16:48:50 4291

原创 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 2481

原创 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 6254

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

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

2016-05-24 19:32:11 10787 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 10586

原创 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 11598

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

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

2016-05-23 08:56:35 13333

原创 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 14592 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 4312 1

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

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

2016-05-18 22:04:35 2380

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

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

2016-05-15 16:53:43 14109 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 6179

原创 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 9456

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

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

2016-05-08 14:36:38 4754

原创 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 4632

原创 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 8950 2

原创 Spark Streaming入门详解

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

2016-05-06 11:35:15 5005 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 1012

原创 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 5956

原创 使用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 5184

原创 使用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 1355

原创 解密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 2148

原创 Spark SQL数据加载和保存实战

一:前置知识详解: Spark SQL重要是操作DataFrame,DataFrame本身提供了save和load的操作, Load:可以创建DataFrame, Save:把DataFrame中的数据保存到文件或者说与具体的格式来指明我们要读取的文件的类型以及与具体的格式来指出我们要输出的文件是什么类型。 二:Spark SQL读写数据代码实战:import org.apache.

2016-04-18 12:33:42 12883

原创 Spark Tungsten(钨丝计划)内存详解

一:Tungsten中到底什么是Page? 1. 在Spark其实不存在Page这个类的。Page是一种数据结构(类似于Stack,List等),从OS层面上讲,Page代表了一个内存块,在Page里面可以存放数据,在OS中会存放很多不同的Page,当要获得数据的时候首先要定位具体是哪个Page中的数据,找到该Page之后从Page中根据特定的规则(例如说数据的offset和length)取出数

2016-03-14 09:58:00 2361

原创 Spark Tungsten-sort Based Shuffle 分析

本篇博客主要是对Tungsten-sort Based Shuffle简单分析,因为钨丝计划还没有成熟,所以这里不会太详细的介绍。 一:使用Tungsten功能 1, 如果想让您的程序使用Tungsten的功能,可以配置: Spark.Shuffle.Manager = tungsten-sort Spark在钨丝计划下要管理两种类型的内存存储方式:堆内和堆外。为了管理他们,所以搞了一

2016-03-13 16:37:24 894

原创 钨丝计划初探

本篇博文主要讲解内容如下: 1. 钨丝计划的产生的原因 2. 钨丝计划内幕详解 安排: 钨丝计划主要分为三篇博文进行详解,本博文主要是对钨丝计划进行介绍,先从理论的角度来理解钨丝计划。 一:“钨丝计划”产生的本质原因 1, Spark作为一个一体化多元化的(大)数据处理通用平台,性能一直是其根本性的追求之一,Spark基于内存迭代(部分基于磁盘迭代)的模型极大的

2016-03-12 12:21:50 1519

原创 Spark schedule资源调度分配详解

一:任务调度与资源调度的区别 1. 任务调度:是通过DAGScheduler,TaskScheduler,SchedulerBackend等进行的作业调度; 2. 资源调度:是指应用程序如何获得资源; 3. 任务调度时在资源调度的基础上进行的,没有资源调度那么任务调度就成为了无源之水,无本之木。 二:资源调度内幕天机揭秘 1. 因为Master负责资源管理和调度,所以资源调度的方法

2016-03-05 12:39:34 5618 1

原创 Spark Sort-Based Shuffle详解

一:为什么需要Sort-Based Shuffle? 1, Shuffle一般包含两个阶段任务: 第一部分:产生Shuffle数据的阶段(Map阶段,额外补充,需要实现ShuffleManager中的getWriter来写数据(数据可以通过BlockManager写到Memory,Disk,Tachyon等,例如想非常快的Shuffle,此时可以考虑把数据写在内存中,但是内存不稳定,所以可以考

2016-03-05 08:05:46 6337

原创 Spark Shuffle详解

一:到底什么是Shuffle? Shuffle中文翻译为“洗牌”,需要Shuffle的关键性原因是某种具有共同特征的数据需要最终汇聚到一个计算节点上进行计算。 二:Shuffle可能面临的问题?运行Task的时候才会产生Shuffle(Shuffle已经融化在Spark的算子中了)。 1, 数据量非常大,从其他各台机器收集数据占用大量网络。 2, 数据如何分类,即如何Partit

2016-03-04 16:19:09 7380

原创 Hive详解

一:Hive的历史价值1, Hive是Hadoop上的Killer Application,Hive是Hadoop上的数据仓库,Hive同时兼具有数据仓库中的存储引擎和查询引擎的作用;而Spark SQL是一个更加出色和高级的查询引擎,所以在现在企业级应用中Spark SQL+Hive成为了业界使用大数据最为高效和流行的趋势。2,Hive是Facebook的推出,主要是为了让不

2016-03-01 10:32:20 709

原创 Spark性能优化(3)

一:数据结构优化为啥要优化数据结构?减少内存使用,避免JVM由于语法特性导致的额外内存开销。1.      Java的对象:对象头是16个字节(例如指向对象的指针等元数据信息),如果对象中只有一个int的property,则此时会占据20个字节,也就是说对象的元数据占用了大部分的空间,所有在封装数据的时候尽量不要使用对象!例如说使用JSON格式来封装数据;2.      J

2016-02-29 19:55:47 520

原创 Spark性能优化(2)

一:Task性能优化 1. 慢任务的性能优化:可以考虑减少每个Partition处理的数据量,同时建议开启任务推测spark.speculation可以进行任务推测。最快完成的任务就会被采纳 慢任务出现的原因?任务倾斜,硬件故障。因为处理逻辑一样的话,时间差很多那么硬件就可能出现故障。Driver上有一个定时器不断的查看有没有慢任务。 2. 尽量减少Shuffle,例如我们要尽量减少gro

2016-02-29 16:40:45 624

原创 Spark性能优化(1)

一:Spark性能优化核心基石 1, Spark是采用Master-Slaves的模式进行资源管理和任务执行的管理: a) 资源管理:Master-Workers,在一台机器上可以有多个Workers,可以通过Spark-env.sh可以让每台host上有若干的Worker; b) 任务执行:Driver-Executors,在一台机器上Driver只有一个,当在一台机器上分配多个Wor

2016-02-29 16:12:55 849

原创 BlockManager初始化和注册,BlockManager核心方法详解

本篇博文的重要内容如下: 1. BlockManager的注册和初始化 2. BlockManager里面的重要函数详细介绍 先对一些基本概念名词介绍: Block是Spark数据处理的时候最小单位 一:BlockManager初始化 1. BlockManager的实例对象调用initializes的时候才能正常工作。

2016-02-20 00:04:07 2677

原创 BlockManager架构原理源码解析

本篇博文的主要内容如下: 1. BlockManager运行实例 2. BlockManager原理流程图 3. BlockManager源码解析 一:BlockManager运行实例观察 从Application启动的角度来观察BlockManager1. 在Application启动的时候还在SparkEnv中注册Bl

2016-02-19 23:33:03 1350

原创 Spark源码解读-TaskScheduler源码详解

简要: 本篇博文主要讨论的内容如下: 1. TaskScheduler与SchedulerBackend 2. FIFO与FAIR两种调度模式彻底解密 3. Task数据本地性资源分配源码实现 总体底层任务调度的过程如下: 1. DAGScheduler会把TaskSet通过submitTasks提交给TaskSchedul

2016-02-15 22:14:30 1453

原创 Spark源码解读-Taskscheduler源码解析

简要: 本篇博文主要讨论的内容如下; 1. Taskscheduler工作原理 2. Taskscheduler源码解密 前置知识: 一:TaskScheduler原理解密 1. DAGScheduler在提交TaskSet给底层调度器的时候是面向接口TaskScheduler的,这符合面向对象中依赖抽象而不依赖具体的

2016-02-15 21:46:03 1049

空空如也

空空如也

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

TA关注的人

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