自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

liupc123123的专栏

骐骥一跃不能十步

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

原创 LinkedHashMap源码浅析

LinkedHashMap实现浅析前言LinkedHashMap是java中常见的数据结构,保存了元素的插入顺序,因此通过迭代器访问输出的时候是按照插入顺序的,jdk中LinkedHashMap是怎么实现保存插入顺序的?一起看看代码便知。代码分析首先,看一下LinkedHashMap的继承关系LinkedHashMap基于HashMap并且实现了Map接口。而关于H

2014-08-10 20:28:59 691

原创 Hadoop之JobTracker源码分析

JobTracker源码分析前言JobTracker是Hadoop中的一个重要角色,负责任务的调度和分配,和client端的任务提交也有关系,这次主要分析JobTracker中JobTracker和TaskTracker心跳机制在JobTracker这端的详细实现过程以及client提交的任务是如何被处理然后分配给TaskTracker的。JobTracker启动在ha

2014-07-29 18:01:23 1694

原创 线程死锁的思考

线程池中的死锁情况这次死锁发生在什么情况下呢?在最开始写线程池的时候,我设计了线程是可重用的,主要是通过Event信号实现,通过在每个线程核心工作代码执行完毕后会将自己归还到池中,然后等待Event信号。主线程会以循环超时阻塞的方式监视一个任务队列,当发现有任务时便会从线程池中取出一个线程,并设置它的任务和目标函数,然后去start或者resume,resume就是会设置Event信号让线程不再阻塞,这里,从池中取线程的方法_get和归还线程方法returnThread都已经加锁,_get和return

2014-07-23 14:19:18 849

原创 Hadoop任务提交过程

Hadoop任务提交分析分析工具和环境下载一份hadoop的源码,这里以hadoop-1.1.2为例。本地IDE环境为eclipse,导入整个目录,然后可以在IDE里面看到目录结构了,要分析任务提交过程,需要找到入口代码,很明显,对于熟悉Hadoop应用程序开发的同学来说很容易的知道任务的提交是从job的配置开始的,所以需要这样一份提交Job的代码,在src/examples里

2014-07-21 20:03:13 2737

原创 hive全排序中的问题

因为项目需求,要对大数据进行处理,在某一个环节要对海量恶意检测报告中的url出现次数进行排序,对于排序这种操作显然hive编程无疑更加方便和简洁,同时如果使用全排序,可以通过设置mapred.reduce.tasks来将排序任务由多个reduce来完成显然效率更高。不然如果利用hive中的order by,所有数据会汇总到一个reduce节点这样负载过大效率较低。实践都有一篇参考文章,就是它h

2014-05-11 11:51:57 1380 1

转载 Intellij IDEA快捷键

Intellij IDEA中有很多快捷键让人爱不释手,stackoverflow上也有一些有趣的讨论。每个人都有自己的最爱,想排出个理想的榜单还真是困难。以前也整理过Intellij的快捷键,这次就按照我日常开发时的使用频率,简单分类列一下我最喜欢的十大快捷-神-键吧。1 智能提示Intellij首当其冲的当然就是Intelligence智能!基本的代码提示用Ctrl+Space,

2015-04-23 09:43:29 539

原创 apache mina中写的过程分析

apache mina作为一个网络应用框架,经常被用作消息系统中,也就是说经常要去处理IO,因此要实现高效的写和读。最近又看了看写的处理,始终发现不能完全的理解他的处理思路。涉及的类先看一下写操作中涉及的类。分析过程从最底下的AbstractPollingIoProcessor.flush来分析在mina的处理流程中,当Processor接受到可以写可以

2014-12-23 17:53:32 692

原创 Hadoop中分片为什么需要metasplitInfo文件

说明:把之前的东西总结梳理了一下,发上来,比较粗略,不过意思还是比较明白。在hadoop中,很重要的一个特点就是分片,将输入划分成很多个split,而通过分析我们知道划分分片的时候会最终生成两个split文件,一个是splitinfo文件,一个是splitmetainfo文件,splitinfo对象里面主要包括了path, offset, length, hosts是个属性,

2014-12-18 11:15:13 999

原创 bash中$(命令)和反引号的区别

概述bash 脚本命令的编程过程中,经常用到反引号```,也经常用到`$(命令)`,一般我们的常见用法如下:反引号内容替换```bashbin=`dirname $0`bin=`cd $bin;pwd````会将反引号里面的内容解释为命令行,开启子shell,然后去执行命令,然后将输出结果替换反引号以及其中的命令。$(命令)可

2014-11-27 17:32:40 1606

原创 Apache mina流程分析

Apache mina工作流介绍apache mina的整体工作流程包含了几个重要的概念和组件,分别是IoService,IoProcessor,IoHandler和IoFilter,在弄清楚整体的运作流程之前需要先介绍下各个组件各自的作用。IoService这个是mina请求接受器(Acceptor)以及连接器(Connector)的一个抽象的父类,作用就是提供连接和接受

2014-08-22 15:41:37 1120

原创 tornado的权限认证之tornado.web.authenticated

如果web开发这块写一个web框架,很多时候都要用到Decorator(如果不是太清楚python的Decorator可以去找找资料看看,非常有用),例如下面的代码:class MainHandler(BaseHandler): @tornado.web.authenticated def get(self): name = tornado.escape.x

2014-08-12 15:12:50 5836

原创 二叉排序树

前言最近要看看算法了,今天看到

2014-08-08 17:50:54 392

原创 Apache mina学习

Apache mina 学习前言最近研究RPC的异步机制是在Capnproto这个项目开始,大致看了一下说明和examples中的调用方式,采用了一种回调的方式,即调用发送后,会立即返回一个promise对象,然后Promise.then(){}这样可以去注册then中的回调函数。异步的RPC能够很好的提高系统的并发性能。由于C++实在比较长一段时间没有经常写了,然后一些新特性也不

2014-08-05 18:36:55 740

原创 守护进程和supervisor

守护进程和supervisor前言接触守护进程已经很久了,但是在工作中有时候却经常忘记它。这次是在需要后台跑一个十几万的数据处理工作,耗时较长的时候,习以为常的通过&将脚本放到后台去执行,将标准输出和错误输出重定向到日志文件。然后干其他的事情,却发现进程莫名奇妙的死掉,即使已经在所有可能出现异常的地方都比较注意,然后在合适的地方加上了try except这样的异常处理。但是任何异常

2014-07-31 00:36:58 2474

原创 gvim配置备份

Gvim配置前言vim很好用,但是确实得配置好才行,不然每次换环境,总得又去重新装一遍,有些插件或者功能还得再去找如何安装,太浪费时间了,于是记下这篇简短的配置安装过程,方便在新环境中找回以前的vim。下载与安装官网上的最新版已经到了vim74,但是我个人还是停留在vim73,懒得升级了。可以从 vim备份下载。安装过程参考了另外一篇博客,主要分为以下几个步骤:

2014-07-09 10:51:49 617

原创 小boss对于爬虫的几点建议

READE FILEwriting a crawler we need to take these problems into account:first, considering ThreadPool, by using threadpool we can control the number of running thread precisely under different

2014-07-07 20:02:26 534

原创 Gvim配置

Gvim配置前言vim很好用,但是确实得配置好才行,不然每次换环境,总得又去重新装一遍,有些插件或者功能还得再去找如何安装,太浪费时间了,于是记下这篇简短的配置安装过程,方便在新环境中找回以前的vim。下载与安装官网上的最新版已经到了vim74,但是我个人还是停留在vim73,懒得升级了。可以从 vim备份下载。安装过程参考了另外一篇博客,主要分为以下几

2014-07-02 22:16:11 537

原创 Tornado入门实践

Tornado入门实践tornado简介tornado是轻量级的高性能的web应用服务器,是用python组织的代码,因此开发起来很快。它在内部采用了linux中的epoll模型和非阻塞式IO,因此对于高并发的清况能够较好的应对。这么吊的好东西,是由facebook公司出品。大公司的东西总是简洁好用。tornado的开发其实主要需要了解三个部分,一个是路径映射,也就是相对于

2014-07-01 00:04:11 819

原创 探索java security manager

探索java security manager从setAccessble引入今天看了点以前写的关于java 反射的代码,再次回忆起了一个当初就没弄太明白的一个问题,先看看引出问题的代码:MyObject.javapublic class MyObject { public String name; public int age; public enum S

2014-06-25 21:33:17 1575

原创 小窥markdown

How To Use Markdown quickly!前言 markdown是一种轻量级的标记语言,与html不同的是,它设计的目的就是让文档的可读性更高,让格式直接成为文档书写的一部分,而不是像office那样,后期去通过各种工具和按钮来修改装饰。html拥有的标记,在markdown里面都能够使用,但是,markdown本身的标记是被简化和重新设计过的。不过在html标记里面

2014-06-22 11:31:19 559

原创 hadoop mapreduce问题排查和解决

前几天,由于项目最近在对算法引起

2014-06-18 09:57:06 1219

原创 Javascript原型链式模型分析

javascript中最难理解的就是原型链式模型,在写这篇文章前我也找过一些文章,faxian

2014-06-17 17:20:57 594

原创 Http解析 OCP原则 设计模式

这是我在CSDN论坛和ITeye上都提过的问题,但是没有人给出回答,是不是有点过度

2014-06-13 10:58:55 683

原创 apache rewrite配置

前言今天将手头的ubuntu12.04 upgrade to ubuntu14.04

2014-06-06 22:31:51 752

原创 css中的position、z-index、clearfix

在css中调样式是再常见不过了,不过今天要说的position、z-index、clearfix和clear是非常需要注意的。position平时直接使用html元素的时候,可以不显式的使用它,但是事实上浏览器会给它设置默认值position:static。position的取值共有4种:static、relative、absolute、fixed。st

2014-05-30 10:27:59 1096

原创 jquery内部实现原理分析

我们经常用jquery的选择器,甚至为jquery写插件,今天来讨论一下jquery内部的实现原理。一、关于window.$和window.jQuery其实在jquery中这两个变量就是一个函数对象,即如下的形式window.$=window.jQuery=function(){....}二、关于jQuery.fn和jQuery.prototype其实在jquery中j

2014-05-22 18:47:13 7830 1

空空如也

空空如也

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

TA关注的人

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