Spark MLlib数据类型

MLlib支持几种数据类型:本地向量(local vectors),和存储在本地或者基于RDD的分布式矩阵(matrices)。底层的线性代数转换操作是基于Breeze和jblas实现的。在MLlib中有监督学习算法使用的训练样本数据类型被称为“带标签的点(labeled point)”。一、本地向量(Local Vector)   一个本地向量是由从0开始的整型下标和double型数值组成的,存储...
阅读(1302) 评论(0)

Spark SQL中的broadcast join分析

本文分析Spark-1.6.2中大小表join时的broadcast机制。分析源码执行逻辑,并且对源码进行一定的调整。...
阅读(1491) 评论(0)

六、GC调优工具

在进行JVM GC性能调优之前,需要使用某些工具获取到当前应用的状态信息。  可以利用JVM运行时的一些原始数据来观察当时的GC性能。并且基于这些原始数据也衍生出一些经过分析统计后得到的指标。在原始数据中包含以下内容: 当前内存池的使用情况 当前内存池的容量 每次GC暂停的耗时 GC暂停的各阶段的耗时  基于这些内容分析统计得到的一些指标包括应用内存分配率,提升率等等。本章中主要讨论GC的原始数据,...
阅读(630) 评论(0)

四、GC算法实现

在了解了上一章中GC算法的基本概念之后,本章将深入到各GC算法的具体实现中。对大多数JVM来说,一般需要选择两种GC算法,一种用于回收新生代内存区,另一种用于回收老年代内存区域。  新生代和老年代GC算法的可能组合如下表所示,如果不指定的话,将会在新生代和老年代中选择默认的GC算法。下表中的GC算法组合是基于Java 8的,在其他Java版本中可能会有所不同。 新生代GC算法 老年代GC算法...
阅读(299) 评论(0)

三、GC算法概念

在开始本章具体分析垃圾回收算法的实现之前,需要理解的是所有垃圾收集器(collector)都会关注的两个方面, 找到所有存活的对象 清除掉不可用对象  在所有收集器中,都是通过标记(Marking)的方法找到存活对象的。 一、标记可访问对象  现在JVM中所有的GC算法都是从找出存活对象开始的。下图形象的展示了JVM中各对象之间的引用关系,        首先,GC定义了一些GC Roots对象...
阅读(278) 评论(0)

二、Java中的垃圾回收

在垃圾回收中,标记清除(Mark and Sweep)是最重要的一个思想。但是想要在实际场景中应用这一思想,还是需要进行一些调整的。本文接下来就通过简单的示例来分析JVM是如何保证安全持续的分配对象的。一、碎片内存区域整理  JVM进行垃圾回收的目的是想要重复使用内存中那些不再被使用的对象所占的存储空间。这些不可用对象在内存中一般都不会是连续分布的,所以它们使用的空间也是比较零散的,而这种零散将会导...
阅读(305) 评论(0)

五、GC调优基本概念

一、核心概念  首先,我们来观察一条工厂的生产线,该生产线主要用于将自行车各个组件拼装成一辆完整的自行车。通过观察我们发现一辆自行车从车架上生产线开始装配,直到拼装成完整自行车后下线的整个耗时为4小时,如下图所示。            并且,我们还观察到这条生产线上每分钟就会有一辆组装好的自行车下线,该生产线每天24小时不间断运行。如果忽略掉例如生产线维护等时间成本,可以算出,该生产线在一...
阅读(1498) 评论(0)

激励函数-Activation Funciton

一、什么是激励函数  激励函数一般用于神经网络的层与层之间,上一层的输出通过激励函数的转换之后输入到下一层中。神经网络模型是非线性的,如果没有使用激励函数,那么每一层实际上都相当于矩阵相乘。经过非线性的激励函数作用,使得神经网络有了更多的表现力。  为了更具体的描述这个问题,请参考知乎上的回答。 原文链接:https://www.zhihu.com/question/22334626/answe...
阅读(985) 评论(0)

Kafka系列之-Kafka Protocol实例分析

本文基于A Guide To The Kafka Protocol文档,以及Spark Streaming中实现的org.apache.spark.streaming.kafka.KafkaCluster类。整理出Kafka中有关 Metadata API Produce API Fetch API Offset API(Aka ListOffset) Offset Commit/Fetch API...
阅读(744) 评论(1)

TensorFlow入门和示例分析

本文以TensorFlow源码中自带的手写数字识别Example为例,引出TensorFlow中的几个主要概念。并结合Example源码一步步分析该模型的实现过程。一、什么是TensorFlow  在这里,引入TensorFlow中文社区首页中的两段描述。 关于 TensorFlow TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源...
阅读(9358) 评论(0)

Linux Shell编程参考大全

本文记录Linux Shell编程中常用基本知识,方便快速入门以及查询使用。...
阅读(509) 评论(0)

Spark Streaming应用启动过程分析

本文为SparkStreaming源码剖析的第三篇,主要分析SparkStreaming启动过程。   在调用StreamingContext.start方法后,进入JobScheduler.start方法中,各子元素start方法的调用顺序如下:private var eventLoop : EventLoop[JobSchedulerEvent] = null val listenerBus...
阅读(2135) 评论(0)

Ubuntu环境下Anaconda安装TensorFlow并配置Jupyter远程访问

本文主要讲解在Ubuntu系统中,如何在Anaconda下安装TensorFlow以及配置Jupyter Notebook远程访问的过程。  在官方文档中提到,TensorFlow的安装主要有以下五种形式: Pip安装:这种安装形式类似于安装其他的Python安装包。会影响到机器上当前的Python环境,可能会与已安装的某些版本相冲突。 Virtualenv安装:将TensorFlow安装在指定路径...
阅读(4140) 评论(0)

Programming In Scala笔记-第十七章、Scala中的集合类型

本章主要介绍Scala中的集合类型,主要包括:Array, ListBuffer, Arraybuffer, Set, Map和Tuple。   一、序列  序列类型的对象中包含多个按顺序排列好的元素,可以访问其中特定位置的元素。序列类型主要包括List,Array, ListBuffer, ArrayBuffer 。1、List  List在前一章已经介绍过,略。2、Array  数组在很多编程...
阅读(612) 评论(0)

Programming In Scala笔记-第十六章、Scala中的List

本章主要分析Scala中List的用法,List上可进行的操作,以及需要注意的地方。一、List字面量  首先看几个List的示例。val fruit = List("apples", "oranges", "pears") val nums = List(1, 2, 3, 4) val diag3 = List( List(1, 0, 0), List(0, 1, 0),...
阅读(807) 评论(0)

Spark Streaming + Kafka整合(Kafka broker版本0.8.2.1+)

这篇博客是基于Spark Streaming整合Kafka-0.8.2.1官方文档。  本文主要讲解了Spark Streaming如何从Kafka接收数据。Spark Streaming从Kafka接收数据主要有两种办法,一种是基于Kafka high-level API实现的基于Receivers的接收方式,另一种是从Spark 1.3版本之后新增的无Receivers的方式。这两种方式的代码编...
阅读(1986) 评论(0)

Spark Streaming编程指南

本文基于Spark Streaming Programming Guide原文翻译, 加上一些自己的理解和小实验的结果。   一、概述  Spark Streaming是基于Core Spark API的可扩展,高吞吐量,并具有容错能力的用于处理实时数据流的一个组件。Spark Streaming可以接收各种数据源传递来的数据,比如Kafka, Flume, Kinesis或者TCP等,对接收到的...
阅读(3549) 评论(5)

Spark-SQL之DataFrame操作大全

Spark SQL中的DataFrame类似于一张关系型数据表。在关系型数据库中对单表或进行的查询操作,在DataFrame中都可以通过调用其API接口来实现。可以参考,Scala提供的DataFrame API。  本文中的代码基于Spark-1.6.2的文档实现。一、DataFrame对象的生成  Spark-SQL可以以其他RDD对象、parquet文件、json文件、hive表,以及通过JD...
阅读(16156) 评论(5)

Programming In Scala笔记-第十九章、类型参数,协变逆变,上界下界

本章主要讲Scala中的类型参数化。本章主要分成三个部分,第一部分实现一个函数式队列的数据结构,第二部分实现该结构的内部细节,最后一个部分解释其中的关键知识点。接下来的实例中将该函数式队列命名为Queue。一、函数式队列  函数式队列是一种具有以下三种操作方法的数据结构,并且这些操作都必须在常量时间内完成: head,返回该队列中的第一个元素 tail,返回除第一个元素之外的所有元素组成的新队列 e...
阅读(524) 评论(0)

Programming In Scala笔记-第十五章、Case Classes和模式匹配

本章主要分析case classes和模式匹配(pattern matching)。一、简单例子  接下来首先以一个包含case classes和模式匹配的例子来展开本章内容。   下面的例子中将模拟实现一个算术运算,这个算术运算可以基于变量和数字进行一些一元或二元的操作。其中有关数据类型,以及一元和二元操作的类型都定义在如下代码中。abstract class Expr case class V...
阅读(812) 评论(0)
79条 共4页1 2 3 4 下一页 尾页
    个人资料
    • 访问:179272次
    • 积分:2518
    • 等级:
    • 排名:千里之外
    • 原创:65篇
    • 转载:1篇
    • 译文:12篇
    • 评论:39条
    文章分类
    最新评论
    百度统计