自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Jason Ding的专栏

Technician => Scientist => Philosopher => Artists

  • 博客(30)
  • 资源 (18)
  • 收藏
  • 关注

原创 Spark与Scala学习

Spark学习配置Spark源码阅读环境Spark的Standalone模式安装部署Spark生态和Spark架构Spark基本概念弹性分布式数据集RDD概述Spark应用执行机制RDD操作详解1——Transformation和Actions概况RDD操作详解2——值型Transformation算子RDD操作详解3——键值型Transformation算子RDD操作详解4——

2015-07-15 22:02:18 3659 4

原创 【特征工程】特征工程技术与方法

引言在之前学习机器学习技术中,很少关注特征工程(Feature Engineering),然而,单纯学习机器学习的算法流程,可能仍然不会使用这些算法,尤其是应用到实际问题的时候,常常不知道怎么提取特征来建模。 特征是机器学习系统的原材料,对最终模型的影响是毋庸置疑的。特征工程的重要意义数据特征会直接影响你使用的预测模型和实现的预测结果。准备和选择的特征越好,则实现的结果越好。 影响预测结果好坏的

2015-07-31 15:43:56 17010 2

原创 【机器学习基础】梯度提升决策树

引言上一节中介绍了《随机森林算法》,该算法使用bagging的方式作出一些决策树来,同时在决策树的学习过程中加入了更多的随机因素。该模型可以自动做到验证过程同时还可以进行特征选择。 这一节,我们将决策树和AdaBoost算法结合起来,在AdaBoost中每一轮迭代,都会给数据更新一个权重,利用这个权重,我们学习得到一个g,在这里我们得到一个决策树,最终利用线性组合的方式得到多个决策树组成的G。

2015-07-26 12:06:06 6633

原创 【机器学习基础】随机森林算法

引入我们回顾一下之前学习的两个算法,Bagging算法中,通过bootstrapping得到不一样的数据,通过这些数据送到一个基本算法之后,得到不同的g,最后对这些g取平均得到G;决策树算法中,通过递归方式建立子树,最终得到一棵完整的树。 这两种算法都有其鲜明的特点,决策树对于不同的数据相对会敏感一些,即其算法的variance很大,而Bagging的特点是通过投票和平均的方式来降低varianc

2015-07-26 12:03:42 5687 1

原创 【机器学习基础】决策树算法

引言在之前的两节博文《混合和装袋》和《自适应提升》中,我们已经有现成的一堆假设g在手中,我们还如何将这些g混合起来,得到更好的分类器。 混合方式可以分为三种情况: 把g看做是同等地位,通过投票或者平均的方式将它们合起来,称为Bagging g是不平等的,有好有坏,一个可行的做法是把g当成是特征的转换,然后丢进线性模型训练就可以了,这称为AdaBoost 如果是不同的条件下,使用不

2015-07-26 12:02:23 4331

原创 【Spark Core】从作业提交到任务调度完整生命周期浅析

引言这一小节我们将就之前写的几篇博文,从提交Job,到Stage划分,到任务分发,再到任务的执行,这一完整过程做一系统的回顾。在这一过程中理清思路,明确几篇文章中涉及到的调度关系和逻辑关系。Spark作业提交到执行过程 上面这个图摘自张包峰的csdn博客,这个图很清晰的描述了作业提交执行的整个过程,略去了细节原理,给人一种清晰直观的流程概况。 通过该图结合一下我之前的博文来描述一下文章的内容和相

2015-07-20 21:19:11 2394 2

原创 【Spark Core】任务执行机制和Task源码浅析2

引言上一小节《任务执行机制和Task源码浅析1》介绍了Executor的注册过程。 这一小节,我将从Executor端,就接收LaunchTask消息之后Executor的执行任务过程进行介绍。1. Executor的launchTasks函数DriverActor提交任务,发送LaunchTask指令给CoarseGrainedExecutorBackend,接收到指令之后,让它内部的execu

2015-07-20 21:18:27 1567

原创 【Spark Core】任务执行机制和Task源码浅析1

引言上一小节《TaskScheduler源码与任务提交原理浅析2》介绍了Driver侧将Stage进行划分,根据Executor闲置情况分发任务,最终通过DriverActor向executorActor发送任务消息。 我们要了解Executor的执行机制首先要了解Executor在Driver侧的注册过程,这篇文章先了解一下Application和Executor的注册过程。1. Task类及其

2015-07-20 21:17:14 2174

原创 【Spark Core】TaskScheduler源码与任务提交原理浅析2

引言上一节《TaskScheduler源码与任务提交原理浅析1》介绍了TaskScheduler的创建过程,在这一节中,我将承接《Stage生成和Stage源码浅析》中的submitMissingTasks函数继续介绍task的创建和分发工作。DAGScheduler中的submitMissingTasks函数如果一个Stage的所有的parent stage都已经计算完成或者存在于cache中,那

2015-07-18 21:26:05 2075

原创 【Spark Core】TaskScheduler源码与任务提交原理浅析1

引言上一节《Stage生成和Stage源码浅析》中,我介绍了Stage生成划分到提交Stage的过程,分析最终归结到submitStage的递归提交Stage,其中要通过submitMissingTasks函数创建task集合来实现任务的创建和分发。 在接下来的几篇文章中,我将具体介绍一下任务创建和分发的过程,为了让逻辑更加清楚,我将分成几篇文章进行介绍,好保证简明清晰,逻辑连贯,前后统一。Tas

2015-07-18 21:24:59 1765

原创 【Spark】Stage生成和Stage源码浅析

引入上一篇文章《DAGScheduler源码浅析》中,介绍了handleJobSubmitted函数,它作为生成finalStage的重要函数存在,这一篇文章中,我将就DAGScheduler生成Stage过程继续学习,同时介绍Stage的相关源码。Stage生成Stage的调度是由DAGScheduler完成的。由RDD的有向无环图DAG切分出了Stage的有向无环图DAG。Stage的DAG通过

2015-07-15 22:00:58 2461

原创 【Spark】DAGScheduler源码浅析2

引入上一篇文章DAGScheduler源码浅析主要从提交Job的流程角度介绍了DAGScheduler源码中的重要函数和关键点,这篇DAGScheduler源码浅析2主要参考fxjwind的Spark源码分析 – DAGScheduler一文,介绍一下DAGScheduler文件中之前没有介绍的几个重要函数。事件处理在Spark 1.0版本之前,在DAGScheduler类中加入eventQueue

2015-07-15 17:30:50 1401

原创 【Spark】DAGScheduler源码浅析

DAGSchedulerDAGScheduler的主要任务是基于Stage构建DAG,决定每个任务的最佳位置 记录哪个RDD或者Stage输出被物化 面向stage的调度层,为job生成以stage组成的DAG,提交TaskSet给TaskScheduler执行 重新提交shuffle输出丢失的stage 每一个Stage内,都是独立的tasks,他们共同执行同一个compu

2015-07-15 16:43:37 2113

原创 【Spark】SparkContext源码解读

SparkContext的初始化SparkContext是应用启动时创建的Spark上下文对象,是进行Spark应用开发的主要接口,是Spark上层应用与底层实现的中转站(SparkContext负责给executors发送task)。 SparkContext在初始化过程中,主要涉及一下内容: SparkEnv DAGScheduler TaskScheduler Sche

2015-07-14 19:49:53 2903

原创 【Spark】Spark的Shuffle机制

MapReduce中的Shuffle在MapReduce框架中,shuffle是连接Map和Reduce之间的桥梁,Map的输出要用到Reduce中必须经过shuffle这个环节,shuffle的性能高低直接影响了整个程序的性能和吞吐量。 Shuffle是MapReduce框架中的一个特定的phase,介于Map phase和Reduce phase之间,当Map的输出结果要被Reduce使用时,

2015-07-14 19:49:02 2566

原创 【Spark】Spark容错机制

引入一般来说,分布式数据集的容错性有两种方式:数据检查点和记录数据的更新。 面向大规模数据分析,数据检查点操作成本很高,需要通过数据中心的网络连接在机器之间复制庞大的数据集,而网络带宽往往比内存带宽低得多,同时还需要消耗更多的存储资源。 因此,Spark选择记录更新的方式。但是,如果更新粒度太细太多,那么记录更新成本也不低。因此,RDD只支持粗粒度转换,即只记录单个块上执行的单个操作,然后将创建

2015-07-14 19:48:22 5479

原创 【Spark】RDD机制实现模型

RDD渊源弹性分布式数据集(RDD),它是MapReduce模型一种简单的扩展和延伸,RDD为了实现迭代、交互性和流查询等功能,需要保证RDD具备在并行计算阶段之间能够高效地数据共享的功能特性。RDD运用高效的数据共享概念和类似于MapReduce的操作方式,使得所有的计算工作可以有效地执行,并可以在当前特定的系统中获得关键性的优化。RDD是一种有容错机制的特殊集合,可以分布在集群的节点上,以函数式

2015-07-14 19:47:21 1823

原创 【Energy Forecasting】能源预测的发展和展望

说明本文的内容来自Tao Hong博士的Energy Forecasting: Past, Present and Future一文的翻译和整理。引入能源预测包含了电力行业中有关预测的广泛的内容,比如短期负荷预测、长期负荷预测、局部负荷预测、电价预测、需求响应预测还有可再生能源发电预测等。由于电力存储的限制和社会对于电力的需求造成了几个能源预测的有趣性质,比如复杂的季节性模式、24/7的电网数据

2015-07-13 14:51:53 4933 1

原创 【Spark】RDD操作详解4——Action算子

本质上在Actions算子中通过SparkContext执行提交作业的runJob操作,触发了RDD DAG的执行。 根据Action算子的输出空间将Action算子进行分类:无输出、 HDFS、 Scala集合和数据类型。无输出foreach对RDD中的每个元素都应用f函数操作,不返回RDD和Array,而是返回Uint。 图中,foreach算子通过用户自定义函数对每个数据项进行操作。

2015-07-12 10:49:58 3433

原创 【Spark】RDD操作详解3——键值型Transformation算子

Transformation处理的数据为Key-Value形式的算子大致可以分为:输入分区与输出分区一对一、聚集、连接操作。输入分区与输出分区一对一mapValuesmapValues:针对(Key,Value)型数据中的Value进行Map操作,而不对Key进行处理。 方框代表RDD分区。a=>a+2代表只对( V1, 1)数据中的1进行加2操作,返回结果为3。源码: /** * P

2015-07-11 22:48:05 3211

原创 【Spark】RDD操作详解2——值型Transformation算子

处理数据类型为Value型的Transformation算子可以根据RDD变换算子的输入分区与输出分区关系分为以下几种类型: 1)输入分区与输出分区一对一型 2)输入分区与输出分区多对一型 3)输入分区与输出分区多对多型 4)输出分区为输入分区子集型 5)还有一种特殊的输入与输出分区一对一的算子类型:Cache型。 Cache算子对RDD分区进行缓存输入分区与输出分区一

2015-07-11 22:47:24 4240

原创 【Spark】RDD操作详解1——Transformation和Actions概况

Spark算子的作用下图描述了Spark在运行转换中通过算子对RDD进行转换。 算子是RDD中定义的函数,可以对RDD中的数据进行转换和操作。 输入:在Spark程序运行中,数据从外部数据空间(如分布式存储:textFile读取HDFS等,parallelize方法输入Scala集合或数据)输入Spark,数据进入Spark运行时数据空间,转化为Spark中的数据块,通过BlockManager进行

2015-07-11 22:46:16 10198 1

原创 【Spark】Spark的Standalone模式安装部署

Spark运行模式Spark 有很多种模式,最简单就是单机本地模式,还有单机伪分布式模式,复杂的则运行在集群中,目前能很好的运行在 Yarn和 Mesos 中,当然 Spark 还有自带的 Standalone 模式,对于大多数情况 Standalone 模式就足够了,如果企业已经有 Yarn 或者 Mesos 环境,也是很方便部署的。 local(本地模式):常用于本地开发测试,本地还分

2015-07-10 11:19:41 5527

原创 【Scala】使用Option、Either和Try处理数据交互

Scala数据交互Scala使用一种函数式的方式来处理数据交互,包括入参及返回值。 Option: 解决null(空指针)问题 Either: 解决返回值不确定(返回两个值的其中一个)问题 Try: 解决函数可能会抛出异常问题 Option/Some/None的使用Option实际上有3个类型:Option、Some和None,Some和None都是Option的子类型,So

2015-07-09 22:08:47 5524 1

原创 Spark交互式分析平台Apache Zeppelin的安装

Zeppelin介绍Apache Zeppelin提供了web版的类似ipython的notebook,用于做数据分析和可视化。背后可以接入不同的数据处理引擎,包括spark, hive, tajo等,原生支持scala, java, shell, markdown等。它的整体展现和使用形式和Databricks Cloud是一样的,就是来自于当时的demo。Zeppelin可实现你所需要的:

2015-07-09 22:07:14 21062

原创 【Spark】Spark应用执行机制

Spark应用概念Spark应用(Application)是用户提交的应用程序。执行模式又Local、Standalone、YARN、Mesos。根据Spark Application的Driver Program是否在集群中运行,Spark应用的运行方式又可以分为Cluster模式和Client模式。 下面是Spark应用涉及的一些基本概念: Application:Spark 的应用

2015-07-08 14:26:18 3958

原创 【Spark】弹性分布式数据集RDD概述

弹性分布数据集RDDRDD(Resilient Distributed Dataset)是Spark的最基本抽象,是对分布式内存的抽象使用,实现了以操作本地集合的方式来操作分布式数据集的抽象实现。RDD是Spark最核心的东西,它表示已被分区,不可变的并能够被并行操作的数据集合,不同的数据集格式对应不同的RDD实现。RDD必须是可序列化的。RDD可以cache到内存中,每次对RDD数据集的操作之后的

2015-07-08 14:25:07 4398 1

原创 【Spark】Spark基本概念

Spark专用名词RDD —- resillient distributed dataset 弹性分布式数据集Operation —- 作用于RDD的各种操作分为transformation和actionJob —- 作业,一个JOB包含多个RDD及作用于相应RDD上的各种operationStage —- 一个作业分为多个阶段Partition —- 数据分区, 一个RDD中的数据可以分

2015-07-08 14:24:15 1913

原创 【Scala】使用Option、Some、None,避免使用null

避免null使用大多数语言都有一个特殊的关键字或者对象来表示一个对象引用的是“无”,在Java,它是null。在Java 里,null 是一个关键字,不是一个对象,所以对它调用任何方法都是非法的。但是这对语言设计者来说是一件令人疑惑的选择。为什么要在程序员希望返回一个对象的时候返回一个关键字呢?Scala的Option类型为了让所有东西都是对象的目标更加一致,也为了遵循函数式编程的习惯,Scala鼓

2015-07-07 14:13:33 28194

原创 【Scala】Scala中的Nothing,Null,None,Nil

NothingNothing是所有类型的子类,也是Null的子类。Nothing没有对象,但是可以用来定义类型。例如,如果一个方法抛出异常,则异常的返回值类型就是Nothing(虽然不会返回) 。 def get(index:Int):Int = { if(x < 0) throw new Exception(...) else ....}if语句是表达式,有返回值,必然有返回值

2015-07-07 14:12:04 4487

Reactive Programming with Scala and Akka(Pdf格式)

2016年2月出版的《Reactive Programming with Scala and Akka》,介绍了使用scala和akka构建响应式程序的相关技术,pdf格式

2016-05-15

基于AKKA的后台应用开发手册

关于akka开发技术的中文材料,可以作为参考

2016-01-21

Python网络编程攻略

Python网络编程攻略高清完整书签版本,绝对超值,绝对惊喜

2015-12-24

Learning scikit-learn Machine Learning in Python

Learning scikit-learn Machine Learning in Python python机器学习经典好书

2015-01-28

Building Probabilistic Graphical Models with Python

Building Probabilistic Graphical Models with Python 概率图模型,python机器学习经典好书

2015-01-28

scikit-learn Cookbook

scikit-learn Cookbook python机器学习经典好书

2015-01-28

Building.Machine.Learning.Systems.with.Python

Building.Machine.Learning.Systems.with.Python python机器学习经典好书

2015-01-28

Maven实战完整版带书签

Maven实战完整版带书签 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。

2014-11-27

Visual Assist X 10.8.2043.0 完美破解版

VC2012中: 在【C:\Users\你自己的用户名\AppData\Local\Microsoft\VisualStudio\11.0\Extensions】下,你可以看到名字比较随机的文件夹,例如xwy1tpfa.qz4,该文件夹中都会有一个VA_X.dll,把破解补丁覆盖到文件夹中去,覆盖完了就破解完毕了。

2014-08-28

Cocos2d-x游戏开发之旅

Cocos2d-x游戏开发之旅 适合初学者进行移动端游戏开发

2014-08-05

E2LSH源代码

E2LSH的源代码,p稳定分布LSH 用于大规模的图片检索

2014-08-01

空空如也

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

TA关注的人

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