自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (7)
  • 收藏
  • 关注

原创 zeppelin研究群和公众号

zeppelin研究群和公众号

2017-02-20 16:05:55 872

原创 zeppelin源码分析(4)——主要的class分析(下)

本文主要分析类图中右下角的部分,如果说类图中右上角部分决定了zeppelin运行时对解释器进程的处理,那么右下角这部分类是决定了Note运行方式。 Note Note是单个’记事本’的内存对象,是zeppelin管理的最小单位,无论是做权限控制、共享、还是持久化,都是以Note为粒度的。从类关系上看,Note是由一些列的有序Paragraph组成,因此其绝大部分职责都是与管理Paragrap

2017-05-25 15:15:32 2126 2

原创 zeppelin源码分析(3)——主要的class分析(中)

接上篇,本文接着分析zeppelin类图中右上角剩余的类,同样,在分析的过程中,我们重点关注该class的职责划分,以及与其他类配合,完成zeppelin的设计目标的过程。 InterpreterInfoSaving InterpreterInfoSaving是一个convenient类(提供的功能可以由其他类组合完成,设计目的是为了方便调用),定义其目的就是为了将原来分散存储在各个interp

2017-04-19 14:42:53 2431

原创 zeppelin源码分析(3)——主要的class分析(上)

zeppelin的module、package、class众多,如何快速地理清头绪,抓住重点?本文分析zeppelin主要module中重点的类以及它们之间的关系,理清这些类的职责,对于理解zeppelin的运行过程至关重要。

2017-04-05 11:26:12 3237

原创 zeppelin源码分析(0)——zeppelin要解决什么问题

通过我其他的zeppelin分析文章,大家可以从中了解zeppelin是什么样的。本篇试着阐述问题的另外一面,zeppelin为什么是这样的?本文从需求出发,探寻zeppelin的架构设计、技术选型、代码的模块划分和依赖关系最初的“出发点”。 zeppelin的核心功能用一句话总结就是:支持多个语言repl的解释器。这个核心功能的价值体现在: 站在使用者的角度,意味着: 1. 可以在一个...

2017-03-15 01:17:32 6115

转载 How Apache Zeppelin runs a paragraph

转发一篇zeppelin的主力committer Jongyoul Lee的讲解zeppelin的paragraph的运行机制的文章,原文地址:https://medium.com/apache-zeppelin-stories/how-apache-zeppelin-runs-a-paragraph-783a0a612ba9#.a85u5nlh4

2017-02-20 16:18:22 1749

原创 Weka源码分析(5)——杂项

一点杂七杂八的想法,暂时归到这里吧。1. 模型持久化模型为什么要持久化?模型的训练过程昂贵,需要将结果存储下来。模型持久化了究竟存储了什么内容?如果一个模型持久化之后不能再次被加载和用来score,那么该模型就等于没有持久化。持久化与开发语言相关的内容,但是不管何种持久化机制,至少要持久化模型的params(例如算法的fields字段) weka采用的Java的序列化来实现模型的持久化。2.

2016-11-18 17:33:10 616

原创 Weka源码分析(4)——算法系统

1. Classifier package1.1 Classifier继承体系//TODO:图太大,优化中…1.2 Classifier图 算法的2个过程: 1. build过程:算法build的过程其实就是算法参数(算法类的field)被赋值(可能是一次性的,也可能是迭代式的) 2. score过程:利用field-backed的公式或代码逻辑,计算概率分布或者分类值的过程。 Classi

2016-11-18 17:05:02 1057

原创 Weka源码分析(3)——filters package分析

1. Filter继承体系//TODO:图太大,放上来看不清,优化中…1.1 Filter数据处理的抽象类1.1.1 fields1.1.2 methods Filter抽象类定义了所有类型的数据处理需要遵循的contract,该类的主要职责如下: 1. 定义了数据处理的基本框架,主要是input(Instance)、output()、batchFinished()这3个方法。并提供了默认实现。

2016-11-18 16:54:21 563 1

原创 Weka源码分析(2)——core.converters package分析

该package的主要目标是将外部存在的各种各式的数据与weka内部的数据表示进行相互转换,以解决数据的导入导出问题。主要含有Loader和Saver,一个负责加载,一个负责导出。1. Loader及其继承体系Loader的继承体系如下: Loader是个Interface,其接口定义如下: Loader定义了3种数据加载的模式常量,NONE/BATCH/INCREMENTAL。另外,定

2016-11-18 16:44:04 735

原创 Weka源码分析(1)——模块划分及core package分析

1.1模块划分weka采用maven作为构建工具,从module划分的角度,是个单module系统,但是weka的从package划分上体现了“关注点分离”。 各package关注点(职责划分)如下: 分类 package name 职责 算法 associations 关联规则算法 attributeSelection 属性选择算法 classi

2016-11-18 15:38:39 2547

原创 zeppelin源码分析(7)——interpreter调试

前面提到了interpreter是以单独的process启动的,想要debug interpreter,需要设置启动interpreter进程的jvm以debug方式启动,然后让IDE进行remote debug,具体步骤如下:1)      在bin/interpreter.sh脚本中JAVA_INTP_OPTS变量中加入如下参数:JAVA_INTP_OPTS+=" -agentlib:

2016-07-14 16:13:06 4202 3

原创 zeppelin源码分析(6)——note的执行过程

上图是zeppelin的前后台交互模型,zeppelin采用单独的jvm来启动interpreter进程,该Interpreter进程与zeppelinServer进程之间采用Thrift协议通信,其中zeppelinServer是Thrift-Client端,而相应的InterpreterProcess是Thrift-Server端。下面是Paragraph的执行序列图(做了部分简化):

2016-06-03 20:00:57 3726

原创 zeppelin源码分析(2)——distribution assembly过程分析

主要分析zeppelin-distribution/target中的发布包的打包过程,即distribution目录结构中的bin、conf、Interpreter、lib等目录文件的来源。1.1.1 parent pom首先看一下${ZEPPELIN_HOME}/pom.xml文件中与package相关的几个重要的plugin的配置:  maven-dependency-plugi

2016-06-03 09:39:11 2657

原创 zeppelin源码分析(5)——notebook的持久化

Notebook的持久化系统主要的类图如下:各类主要的职责如下:1)      NotebookRepo是顶层接口,规定了持久化层基本的CRUD接口。2)      NotebookVersioned定义了Note的版本管理接口,目前其实现类只有GitNotebookRepo(该功能目前实现的不完善,既没有实现按照rev log进行过滤检索,界面上目前也没有入口)。3)

2016-06-02 18:53:55 3675

原创 zeppelin源码分析(4)——interpreter的调度和任务封装

SchedulerFactory工厂类负责创建所有的Scheduler实例。SchedulerFactory本身采用了Singleton设计模式,保证全局唯一实例,与Scheduler和其实现类之前形成了“简单工厂”设计模式:每个具体的Interpreter实现类在获取Scheduler实例时,都由自己决定初始化哪种类型的Scheduler实例:(PS:图中的SparkIn

2016-06-02 18:48:56 5230 7

原创 zeppelin源码分析(1)——编译、调试和maven modules分析

Zeppelin采用Java(主要)+Scala+R(少量)混合开发,采用maven作为build工具。涉及的主要技术stack如下:1)      前台:AngularJS、Node.JS、WebSocket2)      后台:Jetty(embedding)、Thrift、Shiro(权限)、Apache common-exec、Jersey REST API。

2016-05-14 10:57:59 10725 21

原创 kettle源代码解析(1)——plugin系统分析

1      plugin机制1.1  为什么要用插件?其实所有类型的plugin系统(如nutch插件)都是为了获得如下能力1)        插件self-contained(自包含)和out-of-box(开箱即用,即:拷贝后重启kettle即可使用,于运行时动态发现、加载和动态调用)的能力。2)        on-demand部署能力,根据需要仅仅部署需要的插件,减少

2015-01-29 17:28:04 3068

原创 nutch v1.9源码分析(6)——plugin系统

1      Nutch plugin system1.1        为什么要使用插件机制?1)        分离关注点,取得编译时和运行时的灵活性。插件机制也是“微内核”机制的一种应用。使用插件机制,在编译时,将处理爬取流程内核代码和流程中用到功能性接口(即:Extension-Point)分离开,遵循了“面向抽象编程”的思想,能够使得核心代码开发人员和插件开发可以并行开发,二

2015-01-20 09:44:57 1521

原创 Scrum基础

给公司团队做scrum导入时的培训内容。

2015-01-19 15:22:34 1279

原创 nutch v1.9源码分析(5)——generator分析

1.1        generator1.1.1     职责generator的目的是从crawldb中根据一定的选取策略,选取一部分url作为本次循环爬取列表(fetchlist)。在生成爬取列表的过程中,需要考虑爬虫的“礼貌”问题——爬虫不能只顾自己以最快的速度将需要爬取的内容全部爬取下来,而不管对所爬取的网站造成多大访问压力,过分的爬取策略可能会被源网站认为是DOS(Deni

2015-01-15 10:31:12 2922

原创 nutch v1.9源码分析(4)——injector分析

1.1  inject1.1.1  职责       将文本文件中的种子url初始化到系统存储所有url列表的库(crawldb)中。爬虫系统本质上是图遍历,最终目的是发现整个网络图(只不过nutch的图遍历与传统《数据结构》中的图遍历算法不同之处在于——后者一般是在图拓扑结构已知的情况下,以某种策略访问每个节点,而前者是访问之前图拓扑未知,是在访问的过程中一边发现新的节点,一边遍历的过程

2014-12-03 18:39:51 1723 3

原创 nutch v1.9源码分析(3)——nutch基本爬取流程

1      nutch基本爬取流程nutch是大名鼎鼎的Doug Cutting发起的爬虫项目,nutch孵化了现在大数据处理事实上的标准Hadoop。在nutch V 0.8.0 版本之前,Hadoop是nutch的一部分,从nutch V0.8.0开始,HDFS和MapReduce从nutch中剥离出成为Hadoop。v0.8.0之后,nutch就完全构建在Hadoop的基础之上了。

2014-12-03 18:29:31 3762

原创 nutch v1.9源码分析(2)——nutch bin和src目录解析及编译

1      nutch bin目录结构图1 nutch release包的目录结构1)        bin目录:主要含有2个可执行文件crawl和nutch脚本,其中crawl脚本只是nutch脚本的wrapper,提供了all-in-one(一站式)形式的调用方式,通过限定相对于种子url的相对深度的方式来结束爬取循环,本质上是逐个调用nutch脚本中的各个tool。2)

2014-12-03 18:19:28 3243

原创 nutch v1.9源码分析(1)——分析目标

以下主要分析一下nutch提供的各种tool,重点分析一下与爬取cycle相关的流程,也介绍一下其他tool,每个tool主要从如下几个方面介绍:1)        每个tool的功能,即职责。2)        用户视角的Command Line调用方式和命令行的参数(options)。3)        在nutch-default.xml中与该tool相关的配置项(该配置项可以通

2014-12-03 17:23:40 1637

原创 爬虫产品开发(2)——产品范围

做什么?1.        做“爬”,对Nutch的inject、generate、fetch、parse、updatedb这个闭环爬取流程进行封装,采用拖拽式流程定义可视化监控提高易用性。2.        做“内容解析”,将非结构化的网页内容解析成结构化,提取方式适用性要广,适合不同类型的网页。3.        做“内容过滤”,可按照字段过滤,采用规则引擎实现复杂的内容过滤。

2014-11-05 16:22:35 991

原创 爬虫产品开发(1)——主要功能和特色

主要功能和特色:1.  BS结构2.  完全MapReduce化3.  流程驱动,支持3种类型的流程自定义:1)        网页内容采集流程:封装了Nutch的inject、generate、fetch、parse、updatedb等节点,对普通用户将默认参数进行了调优,对“爬虫专家”用户,提供了Nutch所有高级的参数的界面设置入口。图1 网页内容爬取流程定义

2014-11-05 15:59:28 1995

原创 Maven、Nexus、SVN、Hudson 以及团队异地开发那些事(3)

1      SVN1.1  SCM常见模式与反模式一句话总结:不要提交能根据现有文件自动生成的文件。表3‑1 常见的SVN模式与反模式不提交能基于代码库自动生成的文件减少svn库大小,提高checkout时间,加速CI的时间,因此也减少了发现bug的时间典型的分成如下几类:1.  与开发工具相关的文件,例如eclipse的.setting文件、

2014-08-09 13:15:31 1704

原创 Maven、Nexus、SVN、Hudson 以及团队异地开发那些事(2)

1      Nexus1.1  Nexus是什么Nexus是aritifact仓库管理器,通过https/http等协议对外提供组件下载、上传等服务。如果是maven的本地仓库(默认位置~/.m2/repository)是让jar对你个人所有本地项目都可共享的化,那么,nexus让仓库具有整个团队乃至整个互联网访问的能力。1.2  Nexus给我们带来了什么1)        d

2014-08-09 13:12:23 1266

原创 Maven、Nexus、SVN、Hudson 以及团队异地开发那些事(1)

1      Maven1.1  Maven是什么maven起源于apache组织为了简化其JakartaTurbine项目的编译,而开发的一套项目管理工具。接触maven之前,maven对你的印象可能是:1)        build工具?2)        依赖管理工具?3)        只是遵循了“Convention over Coding”原则,可以重用的a

2014-08-09 12:01:14 3921

Artificial Intelligence and Algorithms in Intelligent Systems

15th International Workshop, WAW 2018 Moscow, Russia, May 17–18, 2018 Proceedings

2018-06-02

INFORMATION AND COMPUTER TECHNOLOGY, MODELING AND CONTROL

PROCEEDINGS OF THE INTERNATIONAL SCIENTIFIC CONFERENCE DEVOTED TO THE 85TH ANNIVERSARY OF ACADEMICIAN, volume 2

2018-05-29

Databases Theory and Applications 2018

数据库系统的基础理论, ADC 2018,LNCS 10837,掌握数据库发展的理论前沿

2018-05-25

Feature Engineering for Machine Learning and Data Analytics

机器学习特征工程方法,涵盖深度学习和传统机器学习的特征工程,是算法工程师的必备技能

2018-05-25

从FxCop归纳出来的一些规范建议

每个check项都有完整的说明和修正办法,应该时刻作为编码的对照表

2009-07-27

OO Principles Explained 译文

理解OO的精髓,让你对软件的“嗅觉”更加敏锐,防止软件逐渐“腐烂”

2009-07-27

空空如也

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

TA关注的人

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