- 博客(87)
- 资源 (1)
- 收藏
- 关注
原创 【TensorFlow】Day-1 TensorFlow环境准备&参考资料
文章目录一、环境准备1、安装2、验证二、算法学习路径1、初学者模式2、进阶模式3、算法学习路径(1)基础课程(2)TensorFlow实战(3)练习(4)深入学习TF4、Keras三、Resources四、参考资料1、官方文档(1)教程(2)指南2、Github3、系统学习文档4、源码解读5、学习资源一、环境准备1、安装这里采用容器的方式安装,安装文档可以参考https://www.tensorflow.org/installdocker pull tensorflow/tensorflow:lat
2020-06-05 17:42:13 448
原创 Spark运行环境之SparkEnv和通信工具RpcEnv
Spark在运行时Driver端和Executor端需要互相通信,那么这种通信是如何进行的?在SparkEnv中有两个方法createDriverEnv,createExecutorEnv,分别用于创建Driver端和Executor端的SparkEnv对象。看一下SparkEnv对象的结构,从下面的代码中可以看到SparkEnv包含了Spark中很多重要组件,比如用于通信的RpcEnv,用于...
2019-01-03 17:14:15 2605 2
原创 【Hive】Hive Metrics体系
Hive常用的长服务主要有HiveServer2和MetaStore,这两者都可以配置一些监控数据。HiveServer2可以配置若干监控,有关HiveServer2的更多介绍可以查看文档Setting Up Hiveser2。一、HiveServer2 UI从Hive 2.0.0版本以后,提供了一个Hiveser2的UI界面,默认通过10002端口访问。在该页面上可以看到当前活跃的HiveS...
2018-11-24 17:00:17 8788
原创 饿了么大数据离线计算引擎实践
本文基于DBAPlus社群线上分享整理,原创首发于https://mp.weixin.qq.com/s/3KRNJhX5cfDseIMTlX4U9Q一、背景 饿了么BDI-大数据平台研发团队目前共有20人左右,主要负责离线&实时 Infra 和平台工具开发。其中6人的离线团队需要维护大数据集群规模如下,Hadoop集群规模1300+HDFS存量数据40+PB,Read...
2018-05-29 21:02:04 7774 1
原创 机器学习公式推导
本篇笔记主要记录及推导Andrew NG的Machine Learning课程中出现的公式。 我们假设对于任意的分类、聚类、回归等问题在自然界中总是存在一个精确的模型与之相对应,接下来我们要做的就是根据获取的样本来反推并确定这个模型。由于我们毕竟无法遍历这个问题所有的情况,所以我们只能根据获取的样本去尽可能接近的确定这个模型。 公式化上面这段描述,问题对应的模型就藏在假设空间(Hy...
2018-03-28 15:06:31 9876 2
原创 Mathjax公式教程
一般公式分为两种形式,可以理解为一种特殊的代码块,这是行内公式:$ \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. $这是行内公式:Γ(z)=∫∞0tz−1e−tdt.Γ(z)=∫0∞tz−1e−tdt. \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. 这是块公式$$\Gamma(z) = ...
2018-03-16 09:36:30 34887 4
原创 Flink入门路线
整理一个Flink的入门路线流程及相关参考资料。一、运行example观察现象https://ci.apache.org/projects/flink/flink-docs-release-1.3/quickstart/setup_quickstart.html 如果想要运行查看更多示例,可以参考 https://ci.apache.org/projects/flink/flink-d
2018-02-01 12:34:07 2808
翻译 Spark MLlib数据类型
MLlib支持几种数据类型:本地向量(local vectors),和存储在本地或者基于RDD的分布式矩阵(matrices)。底层的线性代数转换操作是基于Breeze和jblas实现的。在MLlib中有监督学习算法使用的训练样本数据类型被称为“带标签的点(labeled point)”。一、本地向量(Local Vector) 一个本地向量是由从0开始的整型下标和double型数值组成的,存储
2017-04-19 21:15:10 3790 1
原创 Spark SQL中的broadcast join分析
本文分析Spark-1.6.2中大小表join时的broadcast机制。分析源码执行逻辑,并且对源码进行一定的调整。
2017-03-25 21:34:57 30083 2
翻译 六、GC调优工具
在进行JVM GC性能调优之前,需要使用某些工具获取到当前应用的状态信息。 可以利用JVM运行时的一些原始数据来观察当时的GC性能。并且基于这些原始数据也衍生出一些经过分析统计后得到的指标。在原始数据中包含以下内容:当前内存池的使用情况当前内存池的容量每次GC暂停的耗时GC暂停的各阶段的耗时 基于这些内容分析统计得到的一些指标包括应用内存分配率,提升率等等。本章中主要讨论GC的原始数据,
2017-03-11 22:12:43 7799
翻译 四、GC算法实现
在了解了上一章中GC算法的基本概念之后,本章将深入到各GC算法的具体实现中。对大多数JVM来说,一般需要选择两种GC算法,一种用于回收新生代内存区,另一种用于回收老年代内存区域。 新生代和老年代GC算法的可能组合如下表所示,如果不指定的话,将会在新生代和老年代中选择默认的GC算法。下表中的GC算法组合是基于Java 8的,在其他Java版本中可能会有所不同。 新生代GC算法 老年代GC算法
2017-03-06 21:53:45 2722
翻译 三、GC算法概念
在开始本章具体分析垃圾回收算法的实现之前,需要理解的是所有垃圾收集器(collector)都会关注的两个方面,找到所有存活的对象清除掉不可用对象 在所有收集器中,都是通过标记(Marking)的方法找到存活对象的。一、标记可访问对象 现在JVM中所有的GC算法都是从找出存活对象开始的。下图形象的展示了JVM中各对象之间的引用关系, 首先,GC定义了一些GC Roots对象
2017-03-04 19:01:45 1194
翻译 二、Java中的垃圾回收
在垃圾回收中,标记清除(Mark and Sweep)是最重要的一个思想。但是想要在实际场景中应用这一思想,还是需要进行一些调整的。本文接下来就通过简单的示例来分析JVM是如何保证安全持续的分配对象的。一、碎片内存区域整理 JVM进行垃圾回收的目的是想要重复使用内存中那些不再被使用的对象所占的存储空间。这些不可用对象在内存中一般都不会是连续分布的,所以它们使用的空间也是比较零散的,而这种零散将会导
2017-03-04 17:35:25 1016
翻译 五、GC调优基本概念
一、核心概念 首先,我们来观察一条工厂的生产线,该生产线主要用于将自行车各个组件拼装成一辆完整的自行车。通过观察我们发现一辆自行车从车架上生产线开始装配,直到拼装成完整自行车后下线的整个耗时为4小时,如下图所示。 并且,我们还观察到这条生产线上每分钟就会有一辆组装好的自行车下线,该生产线每天24小时不间断运行。如果忽略掉例如生产线维护等时间成本,可以算出,该生产线在一
2017-03-03 00:37:03 5585
原创 激励函数-Activation Funciton
一、什么是激励函数 激励函数一般用于神经网络的层与层之间,上一层的输出通过激励函数的转换之后输入到下一层中。神经网络模型是非线性的,如果没有使用激励函数,那么每一层实际上都相当于矩阵相乘。经过非线性的激励函数作用,使得神经网络有了更多的表现力。 为了更具体的描述这个问题,请参考知乎上的回答。 原文链接:https://www.zhihu.com/question/22334626/answe
2017-02-28 23:20:30 10822 1
原创 Kafka系列之-Kafka Protocol实例分析
本文基于A Guide To The Kafka Protocol文档,以及Spark Streaming中实现的org.apache.spark.streaming.kafka.KafkaCluster类。整理出Kafka中有关Metadata APIProduce APIFetch APIOffset API(Aka ListOffset)Offset Commit/Fetch API
2017-01-16 17:32:52 4675 1
原创 TensorFlow入门和示例分析
本文以TensorFlow源码中自带的手写数字识别Example为例,引出TensorFlow中的几个主要概念。并结合Example源码一步步分析该模型的实现过程。一、什么是TensorFlow 在这里,引入TensorFlow中文社区首页中的两段描述。 关于 TensorFlow TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源
2017-01-09 22:01:17 31745
原创 Spark Streaming应用启动过程分析
本文为SparkStreaming源码剖析的第三篇,主要分析SparkStreaming启动过程。 在调用StreamingContext.start方法后,进入JobScheduler.start方法中,各子元素start方法的调用顺序如下:private var eventLoop : EventLoop[JobSchedulerEvent] = nullval listenerBus
2016-12-20 23:44:25 4857
原创 Ubuntu环境下Anaconda安装TensorFlow并配置Jupyter远程访问
本文主要讲解在Ubuntu系统中,如何在Anaconda下安装TensorFlow以及配置Jupyter Notebook远程访问的过程。 在官方文档中提到,TensorFlow的安装主要有以下五种形式:Pip安装:这种安装形式类似于安装其他的Python安装包。会影响到机器上当前的Python环境,可能会与已安装的某些版本相冲突。Virtualenv安装:将TensorFlow安装在指定路径
2016-11-02 22:23:42 12147
原创 Programming In Scala笔记-第十七章、Scala中的集合类型
本章主要介绍Scala中的集合类型,主要包括:Array, ListBuffer, Arraybuffer, Set, Map和Tuple。 一、序列 序列类型的对象中包含多个按顺序排列好的元素,可以访问其中特定位置的元素。序列类型主要包括List,Array, ListBuffer, ArrayBuffer 。1、List List在前一章已经介绍过,略。2、Array 数组在很多编程
2016-10-20 22:58:07 1182
原创 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),
2016-10-18 00:01:07 1834
翻译 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的方式。这两种方式的代码编
2016-10-14 00:08:55 6226 2
翻译 Spark Streaming编程指南
本文基于Spark Streaming Programming Guide原文翻译, 加上一些自己的理解和小实验的结果。 一、概述 Spark Streaming是基于Core Spark API的可扩展,高吞吐量,并具有容错能力的用于处理实时数据流的一个组件。Spark Streaming可以接收各种数据源传递来的数据,比如Kafka, Flume, Kinesis或者TCP等,对接收到的
2016-10-13 22:03:35 6871 3
原创 Spark-SQL之DataFrame操作大全
Spark SQL中的DataFrame类似于一张关系型数据表。在关系型数据库中对单表或进行的查询操作,在DataFrame中都可以通过调用其API接口来实现。可以参考,Scala提供的DataFrame API。 本文中的代码基于Spark-1.6.2的文档实现。一、DataFrame对象的生成 Spark-SQL可以以其他RDD对象、parquet文件、json文件、hive表,以及通过JD
2016-10-12 23:31:35 197159 18
原创 Programming In Scala笔记-第十九章、类型参数,协变逆变,上界下界
本章主要讲Scala中的类型参数化。本章主要分成三个部分,第一部分实现一个函数式队列的数据结构,第二部分实现该结构的内部细节,最后一个部分解释其中的关键知识点。接下来的实例中将该函数式队列命名为Queue。一、函数式队列 函数式队列是一种具有以下三种操作方法的数据结构,并且这些操作都必须在常量时间内完成:head,返回该队列中的第一个元素tail,返回除第一个元素之外的所有元素组成的新队列e
2016-10-10 00:08:38 1169
原创 Programming In Scala笔记-第十五章、Case Classes和模式匹配
本章主要分析case classes和模式匹配(pattern matching)。一、简单例子 接下来首先以一个包含case classes和模式匹配的例子来展开本章内容。 下面的例子中将模拟实现一个算术运算,这个算术运算可以基于变量和数字进行一些一元或二元的操作。其中有关数据类型,以及一元和二元操作的类型都定义在如下代码中。abstract class Exprcase class V
2016-10-08 23:25:36 1587
原创 Programming In Scala笔记-第十一章、Scala中的类继承关系
本章主要从整体层面了解Scala中的类层级关系。一、Scala的类层级 在Java中Object类是所有类的最终父类,其他所有类都直接或间接的继承了Object类。在Scala中所有类的最终父类为Any类,所以Any类中的所有方法都可以在Scala中任意类中使用。但是这并不是说Scala中的Any类就类似于Java中的Object类,Scala中真正地位类似于Java中Object类的是AnyRe
2016-10-06 23:14:55 1626
原创 Programming In Scala笔记-第九章、控制抽象
本章主要讲解在Scala中如何使用函数值来自定义新的控制结构,并且介绍Curring和By-name参数的概念。一、减少重复代码1、重复代码的场景描述 前面定义的函数,将实现某功能的代码封装到一起形成一个特定功能的代码块。那么,正常情况下,各函数之间有可能会有部分逻辑是相同的。不好理解的话,看看下面的代码。object FileMatcher { private def filesHere =
2016-10-04 00:16:17 919
原创 Programming In Scala笔记-第八章、函数与闭包
当程序的代码量增大时,就需要对各功能模块进行分割,这些分割的小模块就是本文中接下来会进行分析的函数。接下来的部分会讲解包括函数嵌套,函数字面量,以及函数值等概念。一、方法 一会函数一会方法的,是不是有点晕?严格来说,任何方法都是一个函数,只不过我们称呼那些写在类定义中的某个对象拥有的函数成员为方法。例如下面代码中的LongLines对象就定义了两个方法,可以用于打开指定文件名的文件并读取其中的内容
2016-09-29 23:15:07 883
原创 Programming In Scala笔记-第七章、Scala中的控制结构
所谓的内建控制结构是指编程语言中可以使用的一些代码控制语法,如Scala中的if, while, for, try, match, 以及函数调用等。需要注意的是,Scala几乎所有的内建控制结构都会返回一个值,这是由于函数式编程语言被认为是计算值的过程,所以作为函数式编程语言的一个组件,这些内建控制结构也不例外。 如果不好理解函数式编程语言中每一个内建控制结构都会返回一个值这一概念,可以回想一
2016-09-28 23:09:39 1399
原创 Spark Streaming中的操作函数分析
根据Spark官方文档中的描述,在Spark Streaming应用中,一个DStream对象可以调用多种操作,主要分为以下几类TransformationsWindow OperationsJoin OperationsOutput Operations一、Transformations1、map(func) map操作需要传入一个函数当做参数,具体调用形式为val b = a.map
2016-09-21 00:09:18 14328 2
原创 IntelliJ IDEA在Local模式下Spark程序消除日志中INFO输出
在使用Intellij IDEA,local模式下运行Spark程序时,会在Run窗口打印出很多INFO信息,辅助信息太多可能会将有用的信息掩盖掉。如下所示 要解决这个问题,主要是要正确设置好log4j文件,本文主要分析如何在local模式下,将Spark的INFO信息隐藏,不影响程序中的结果输出。1、将spark根目录下的log4j.properties文件复制到Intellij IDE
2016-09-20 20:47:25 17962 12
原创 Programming In Scala笔记-第六章、函数式对象
这一章主要是以定义和完善一个有理数类Rational为线索,分析和介绍有关类定义,构造函数,方法重写,变量定义和私有化,以及对操作符的定义等。一、Rational类定义和构造函数1、定义一个空类class Rational(n: Int, d: Int) 如果一个class没有函数体时,可以不用写花括号,上面的代码是最简形式。圆括号中的n和d是类参数,Scala编译器会根据这两个类参数,为该类生成
2016-09-19 21:10:19 880
原创 Programming In Scala笔记-第五章、Scala中的变量类型和操作
Programming In Scala第五章摘要及主要示例
2016-09-13 22:35:37 3383
原创 Programming In Scala笔记-第二、三章
本系列博客以《Programming in Scala 2nd Edition》为主,围绕其中的代码片段进行学习和分析。 本文主要梳理Chapter2和Chapter3中涉及到的主要概念。
2016-09-08 22:54:27 1162
原创 Kafka系列之-Kafka监控工具KafkaOffsetMonitor配置及使用
调用封装好的Producer,结合Kafka监控工具KafkaOffsetMonitor的使用与分析。
2016-08-30 22:51:47 42181 13
原创 Sqoop-1.4.6 Merge源码分析与改造使其支持多个merge-key
从源代码上分析sqoop merge工具,并将其改造成可以支持多个merge字段的形式。
2016-08-23 23:22:50 5732 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人