自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

致力于前沿技术研究,下一代网络、云网络、网络模拟、网络安全、k8s、网络虚拟化。

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

转载 volatile

在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。 synchronized 同步块大家都比较熟悉,通过 synchronized 关键字来实现,所有加上synchronized

2017-03-31 10:56:15 326

转载 观察者模式

Observable类  java.util.Observable  http://docs.oracle.com/javase/7/docs/api/java/util/Observable.html   Observable类用于创建可以观测到你的程序中其他部分的子类。当这种子类的对象发生变化时,观测类被通知。  观测类必须实现定义了update()方法的Observer接

2017-03-27 11:27:00 295

原创 策略模式

用接口来实现行为,就可以方便添加行为这个行为也很好复用因为你如果在超类里面定义了方法,所有子类都要去实现,很麻烦策略模式:分别封装行为接口,实现算法族,超类里放行为接口对象,在子类具体设定行为对象。原则就是分离变化部分,封装接口,基于接口编程各种功能,此模式让行为算法的变化独立于算法的使用者。注意点:1 分析项目中变化部分与不变化部分2 多用组合少用继承;用行为类组

2017-03-26 22:42:39 242

转载 动态代理

简简单单的代码让你轻松学会动态代理前言:最近一直在分析hadoop的RPC机制。在hadoop中,DataNode和NameNode之间的控制信息的交流是通过RPC机制完成的,采用的是动态代理和java NIO(参考博客:http://weixiaolu.iteye.com/blog/1479656) 的方式。DataNode端是通过获得NameNode的代理,通过该代理和NameNo

2017-03-25 15:35:38 270

转载 nio

Java NIO原理图文分析及代码实现 前言: 最近在分析hadoop的RPC(Remote Procedure Call Protocol ,远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。可以参考:http://baike.baidu.com/view/32726.htm )机制时,发现hadoop的RPC机制的实现主要用到了两个技术:

2017-03-25 15:28:48 237

转载 enumset

EnumSet 是一个与枚举类型一起使用的专用 Set 实现。枚举set中所有元素都必须来自单个枚举类型(即必须是同类型,且该类型是Enum的子类)。 枚举类型在创建 set 时显式或隐式地指定。枚举 set 在内部表示为位向量。 此表示形式非常紧凑且高效。此类的空间和时间性能应该很好, 足以用作传统上基于 int 的“位标志”的替换形式,具有高品质、类型安全的优势。 如果指定的 co

2017-03-24 17:31:40 346

转载 recommandation of sohu

摘要:对一个媒体网站来讲,一个比较重要的任务就是获取用户对于不同类型文章的兴趣分布。用户的兴趣分布会被作为用户属性标签,和其他类型的标签(例如人口属性等)一起用作推荐的模型特征。李滔,中国科技大学博士毕业,现供职于搜狐大数据中心用户推荐部,从事推荐和广告算法研发工作。主要关注技术方向包括广告技术、并行计算、大数据分析等。 李滔曾就职于理光北京研究所以及Teradata公司。在理光期间设计了

2017-03-24 14:07:24 497

转载 spark中的hash shuffle

本博文的主要内容:  1、Hash Shuffle彻底解密  2、Shuffle Pluggable解密  3、Sorted Shuffle解密  4、Shuffle性能优化 一:到底什么是Shuffle?  Shuffle中文翻译为“洗牌”,需要Shuffle的关键性原因是某种具有共同特征的数据需要最终汇聚到一个计算节点上进行计算。  二:Shuffle可

2017-03-24 12:48:12 631

转载 spark statistic

1、Spark MLlib Statistics统计Spark Mllib统计模块代码结构如下:1.1列统计汇总计算每列最大值、最小值、平均值、方差值、L1范数、L2范数。   //读取数据,转换成RDD[Vector]类型   valdata_path ="/home/jb-huangmeiling/sample_stat.txt"   valdata =sc.tex

2017-03-14 23:03:49 608

转载 floodlight多线程

模块该部分承接上文,添加三个模块,来实现网络带宽使用、丢包率、链路时延等的测量。当然,读者也可以把他们三个木块合并,只是那样的话,每一个service就不单一了。一、说在前面一般来讲,我们在Floodlight中添加自定义的模块,最基础的需要实现以下两个步骤:自定义一个interface,里面写上自定义的方法,当然,需要extends IFloodlightServcice.自定义

2017-03-14 22:46:51 1114 3

转载 floodligth rest开发

根据release note来看,主要最大的更新在于添加了对于of1.3的支持。虽然我尚未验证(后续会验证)floodlight对of1.3的支持程度,但是release note中的这句话:“ and work with OpenFlow 1.3 features such as groups and meters.”。我猜测大概是能够识别组表和计量表,但是不作处理。OTZ……还有就是以往一些小

2017-03-14 14:40:47 575

转载 idea中使用ant

Ant最初是为Java量身定做的工程构建工具,但因为其简单的XML语法和内置的任务,作为前端领域的构建工具也不失为一个明智的选择。关于Ant与前端,明河的教程有更详细的介绍:http://book.36ria.com/ant/index.html,对于Ant的常规使用方法,新手请直接学习明河的教程。下面来说说Intellij IDEA,它内置了Ant,如果你不喜欢命令行,那么在Intellij

2017-03-14 14:04:56 48980

转载 种子用户

“种子用户可以凭借自己的影响力,能吸引更多目标用户,是有利于培养产品氛围的第一批用户。要理解种子用户,需要明确以下几点!”  首先,种子用户不等于初始用户  种子用户要有选择标准。尽量选择影响力高的,活跃度高的用户作为产品使用者。  否则,即使引进了再多,也无助于目标用户数量的扩散,相反,有可能因为产品和用户不对路,造成好不容易引进的用户又大量流失了,还会给产品开发者造成错

2017-03-13 23:10:26 409

原创 Lateral View

语法定义:lateralView: LATERAL VIEW udtf(expression) table AS columns(',', columns)*fromClause: FROM baseTable (lateralView)*描述:Lateral view 通常和split, explode等udtf一起封装使用,它能够将一行数据拆分成多行数据,在此基础上可以对拆分后

2017-03-13 22:53:41 6239

原创 coalesce

用途:返回列表中第一个非null的值,如果列表中所有的值都是null则返回nullcoalesce(expr1, expr2, ...)参数说明:expri是要测试的值,所有这些值类型必须相同,或为null, 否则会引发异常。返回值:返回值类型和参数类型相同。备注:参数至少要有一个,否则返回异常。

2017-03-13 22:38:50 398

转载 ubuntu提交代码到远程仓库

http://www.360doc.com/content/15/0517/10/9043924_471163377.shtml

2017-03-09 23:56:19 391

转载 eclipse debug

作为开发人员,掌握开发环境下的调试技巧十分有必要。我们在编写Java程序的过程中,经常会遇到各种莫名其妙的问题,为了检测程序是哪里出现问题,经常需要增加日志,看变量的值,这样调试很麻烦。假设我每天花费1小时在调试我的应用程序上的话,那累积起来的话也是很大量的时间。由于这个原因,用这些时间来重视并了解所有使我们调试更方便的功能。那能为你省下一些时间,也将会使你的生活更安逸、轻松。首先我们需要注意

2017-03-09 11:09:09 218

转载 卡方数学相关推到

最近要用Bayes 分类器,其中对特征需要做一下卡方检验,验证下是否具有统计意义下面是个 卡方检验 的文章x2检验(chi-square test)或称卡方检验    x2检验(chi-square test)或称卡方检验,是一种用途较广的假设检验方法。可以分为成组比较(不配对资料)和个别比较(配对,或同一对象两种处理的比较)两类。    一、四格表资料的x

2017-03-05 11:01:08 954

转载 mllib的数据结构

此部分主要关于MLlib的基础数据结构1、本地向量MLlib的本地向量主要分为两种,DenseVector和SparseVector,顾名思义,前者是用来保存稠密向量,后者是用来保存稀疏向量,其创建方式主要有一下三种(三种方式均创建了向量(1.0, 0.0, 2.0):[plain] view plain copy import org.apache.s

2017-03-04 22:04:55 410

转载 uuid的意思

讨论UUID的定义、分类、应用及生成工具。什么是UUID?UUID是Universally Unique Identifier的缩写,它是在一定的范围内(从特定的名字空间到全球)唯一的机器生成的标识符。UUID具有以下涵义:经由一定的算法机器生成为了保证UUID的唯一性,规范定义了包括网卡MAC地址、时间戳、名字空间(Namespace)、随机或伪随机数、时序等元素

2017-03-03 19:25:17 11891

转载 mount umount的使用

1.被挂载机  1>安装Ubuntu nfs    apt-get install nfs-kernel-server  2>配置/etc/exportsUbuntu nfs允许挂载的目录及权限在文件/etc/exports中进行了定义。例如,我们要将根目录下的rootfs目录共享出来,那么我们需要在/etc/exports文件末尾添加如下一行:/rootfs *(rw,

2017-03-03 19:01:20 1896

转载 http的get post 及区别

HTTP定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符。我们可以这样认为: 一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的 查,改,增,删 4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。那么

2017-03-03 00:05:47 380

转载 java的blockingqueue

前言:     在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。认识BlockingQueue阻塞队列,顾名思义,首先它是一个队列,而一个队列

2017-03-02 23:38:05 186

转载 java守护线程和非守护线程

Java 线程分为两类:用户线程(User Thread)和守护线程(Daemon Thread)守护线程的作用是为其他线程提供服务,譬如垃圾回收器(GC),只要当前 JVM 实例中还有非守护线程运行,则守护线程就会一直工作下去,直至所有非守护线程结束,守护线程随 JVM 一起结束。除 JVM 内部的守护线程外,用户可以通过以下方法设置守护线程:public final void se

2017-03-02 23:26:07 300

转载 lr理论

什么是逻辑回归?Logistic回归与多重线性回归实际上有很多相同之处,最大的区别就在于它们的因变量不同,其他的基本都差不多。正是因为如此,这两种回归可以归于同一个家族,即广义线性模型(generalizedlinear model)。这一家族中的模型形式基本上都差不多,不同的就是因变量不同。如果是连续的,就是多重线性回归;如果是二项分布,就是Logistic回归;

2017-03-02 21:02:55 479

转载 阿里的blink

蒋晓伟认真而严谨,在加入阿里之前,他曾就职于西雅图的脸书,负责过调度系统,Timeline Infra和Messenger的项目。而后在微软的SQL Server引擎担任过Principal Engineer,负责关系数据库的架构工作。2014年加入阿里以后,作为阿里搜索事业部资深搜索专家,他负责搜索工程的数据团队。在7月19-21日20:00-21:30 的首届阿里巴巴在线技

2017-03-02 18:02:50 4277

转载 spark的checkpoint

/**   * Mark this RDD for checkpointing. It will be saved to a file inside the checkpoint   * directory set with `SparkContext#setCheckpointDir` and all references to its parent   * RDDs will be

2017-03-02 18:00:14 357

转载 rdd持久化

rdd的全称为Resilient Distributed Datasets(弹性分布式数据集)rdd的操作有两种transfrom和action。transfrom并不引发真正的rdd计算,action才会引发真正的rdd计算。rdd的持久化是便于rdd计算的重复使用。官方的api说明如下:persist(storageLevel=StorageLe

2017-03-02 13:39:49 389

转载 randomsplit_scala

randomSplitdef randomSplit(weights: Array[Double], seed: Long = Utils.random.nextLong): Array[RDD[T]]该函数根据weights权重,将一个RDD切分成多个RDD。该权重参数为一个Double数组第二个参数为random的种子,基本可忽略。scala> var rd

2017-03-02 13:33:56 2928

转载 scala集合数据操作

Scala是数据挖掘算法领域最有力的编程语言之一,语言本身是面向函数,这也符合了数据挖掘算法的常用场景:在原始数据集上应用一系列的变换,语言本身也对集合操作提供了众多强大的函数,本文将以List类型为例子,介绍常见的集合变换操作。一、常用操作符(操作符其实也是函数)++ ++[B](that: GenTraversableOnce[B]): List[B] 从列表的尾部添加另外一个

2017-03-02 13:16:29 372

转载 scala的list操作

list: List[Int] = List(-3, -2, 0, 1, 2, 3, 4)//获取某个元素(类似于下标, 从0开始)scala> list(1)res0: Int = -2//过滤元素(按条件, 传入的是一个 => Boolean)scala> list.filter(_>0)res1: List[Int] = List(1, 2, 3, 4)//判断是否存在sca

2017-03-02 13:12:51 5385

空空如也

空空如也

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

TA关注的人

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