自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (5)
  • 收藏
  • 关注

原创 Map/Reduce Task 远程调试详解

Map/Reduce Task 远程调试详解

2014-06-17 22:10:07 4916 7

转载 程序员练级宝典

月光博客6月12日发表了《写给新手程序员的一封信》,翻译自《An open letter to those who want to start programming》,我的朋友(他在本站的id是Mailper)告诉我,他希望在酷壳上看到一篇更具操作性的文章。因为他也是喜欢编程和技术的家伙,于是,我让他把他的一些学习Python和Web编程的一些点滴总结一下。于是他给我发来了一些他的心得和经历,我

2012-02-01 09:29:19 5722

翻译 理解贷出模式 Loan Pattern

Loan Pattern as the name suggests would loan a resource to your function. So if you break out the sentence. It wouldCreate a resource which you can useLoan the resources to the function which

2015-09-21 07:45:25 1237

翻译 理解Cassandra源代码

原文: http://prettyprint.me/2010/05/02/understanding-cassandra-code-base/ 原作者:Ran Tavory  原文发布日期:May 2nd, 2010 译者:王旭(http://wangxu.me/blog/ , @gnawux) 翻译时间:2010年5月12日最近我为 cassandra 添加了一些小特性,

2015-08-13 02:06:08 2928

原创 Cassandra 数据读取过程

讲解橘黄色的部分都是位于JVM heap中的组件(位于内存中 on heap)。蓝色的部分也位于内存之中但不是出于JVM heap中(off heap)。Coordinator是接受到由client发来的读请求的节点。Memtable 是位于JVM heap中的表。它会周期性地flush到硬盘上成为SSTable。SSTable 是位于硬盘上的表,无法修改。它会周期性地与其他的SS

2015-08-10 15:00:28 2491

转载 ConcurrentHashMap的使用 水太深了

ConcurrentHashMap通常只被看做并发效率更高的Map,用来替换其他线程安全的Map容器,比如Hashtable和Collections.synchronizedMap。实际上,线程安全的容器,特别是Map,应用场景没有想象中的多,很多情况下一个业务会涉及容器的多个操作,即复合操作,并发执行时,线程安全的容器只能保证自身的数据不被破坏,但无法保证业务的行为是否正确。举个例子:统

2015-08-08 06:01:14 16847 1

转载 Cassandra源代码分析:数据写入流程

org.apache.cassandra.thrift.CassandraServer类的add方法将接受客户端的请求,该函数定义如下: public void add(ByteBuffer key, ColumnParent column_parent, CounterColumn column, ConsistencyLevel consistency_level)      

2015-08-08 01:24:20 1212

转载 Cassandra学习笔记之Gossip协议

Gossip协议概述Cassandra集群中的节点没有主次之分,它们通过一种叫做Gossip的协议进行通信。通过Gossip协议,它们可以知道集群中有哪些节点,以及这些节点的状态如何?每一条Gossip消息上都有一个版本号,节点可以对接收到的消息进行版本比对,从而得知哪些消息是我需要更新的,哪些消息是我有而别人没有的,然后互相倾诉吐槽,确保二者得到的信息相同,这很像现实生活中的八卦(摆龙门阵)

2015-05-06 07:30:34 947

转载 Gossip算法

Gossip算法因为Cassandra而名声大噪,Gossip看似简单,但要真正弄清楚其本质远没看起来那么容易。为了寻求Gossip的本质,下面的内容主要参考Gossip的原始论文:>。 1. Gossip背景Gossip算法如其名,灵感来自办公室八卦,只要一个人八卦一下,在有限的时间内所有的人都会知道该八卦的信息,这种方式也与病毒传播类似,因此Gossip有众多的别名“闲话算

2015-05-06 06:23:53 774

翻译 Paxos Made Simple【翻译】

Paxos一致性算法——分布式系统中的经典算法,论文本身也有一段有趣的故事。一致性问题是分布式系统的根本问题之一,在论文中,作者一步步的加强最初一致性问题(2.1节提出的问题)的约束条件,最终导出了一个可实现的一致性模型。当前Paxos算法的研究越来越多,相关实现也不少,而原论文依然是最不可少的资料。论文通篇没有一个数学公式,这是大牛的坚持!【】中的是我个人的注释。先解释文中几个关键词的翻

2015-05-06 00:44:02 474

转载 十道海量数据处理面试题与十个方法大总结

海量数据处理:十道面试题与十个海量数据处理方法总结作者:July、youwang、yanxionglu。时间:二零一一年三月二十六日本文之总结:教你如何迅速秒杀掉:99%的海量数据处理面试题。有任何问题,欢迎随时交流、指正。出处:http://blog.csdn.net/v_JULY_v。 第一部分、十道海量数据处理面试题1、海量日志数据

2015-02-12 14:47:27 627

转载 YARN MapReduce MRAppMaster-剖析

一 概述        MRv1主要由编程模型(MapReduce API)、资源管理与作业控制块(由JobTracker和TaskTracker组成)和数据处理引擎(由MapTask和ReduceTask组成)三部分组成。而YARN出现之后,资源管理模块则交由YARN实现,这样为了让MapReduce框架运行在YARN上,仅需要一个ApplicationMaster组件完成作

2015-02-05 06:39:12 1848

原创 YARN中MRAppMaster的事件驱动模型与状态机处理消息过程的分析

在MRv1中,对象之间的作用关系是基于函数调用实现的,当一个对象向另外一个对象传递消息时,会直接采用函数调用的方式,并且这个过程是串行的。比如,当TaskTracker需要执行一个Task的时候,将首先下载Task依赖的文件(JAR包,二进制文件等,字典文件等),然后执行Task。在整个过程中,下载依赖文件是阻塞式的,也就是说,前一个任务未完成文件下载之前,后一个新任务将一直处于等待状态,只有在下

2015-02-03 04:36:07 3519

翻译 远程调试hadoop各组件

原文Hadoop conf/hadoop-env.sh has following environment variables HADOOP_NAMENODE_OPTSHADOOP_SECONDARYNAMENODE_OPTS, HADOOP_DATANODE_OPTSHADOOP_BALANCER_OPTSHADOOP_JOBTRACKER_OPTSH

2014-12-25 00:05:48 685

转载 Bigtable:一个分布式的结构化数据存储系统

修正了alex翻译版的几个欠妥之处Bigtable:一个分布式的结构化数据存储系统摘要Bigtable是一个管理结构化数据的分布式存储系统,它被设计用来处理海量数据:分布在数千台通用服务器上的PB级的数据。Google的很多项目将数据存储在Bigtable中,包括Web索引、Google Earth、Google Finance。这些应用对Bigtable提出的要求差异非常

2014-12-18 13:17:21 3061

转载 Hadoop平台优化综述

1.     概述随着企业要处理的数据量越来越大,MapReduce思想越来越受到重视。Hadoop是MapReduce的一个开源实现,由于其良好的扩展性和容错性,已得到越来越广泛的应用。Hadoop作为一个基础数据处理平台,虽然其应用价值已得到大家认可,但仍存在很多问题,以下是主要几个:(1)     Namenode/jobtracker单点故障。 Hadoop采用的是mast

2014-11-13 22:30:01 831

原创 mapreduce 过程中关于 0-length 数据进入reducer 时的处理

当MapOutputBuffer对象进行spill时,会对每个 key/pair

2014-07-24 07:08:29 1071

转载 TaskTracker中HttpServer doGet源码分析

TaskTracker节点的内部Http服务组件主要提供两个功能:1)./logtask,获取某一个Task的执行日志;2)./mapOutput,获取某一个Task的map输出数据。对于用户来说,Http服务组件的/logtask功能不是必须的,但是它的/mapOutput功能对于整个Map-Reduce框架实现来说则是至关重要的,因为每一个Job的每一个Reduce任务就是通过该服务来获取它所

2014-07-24 02:15:44 933

转载 Hadoop MapReduce之MapOutputBuffer分析

前言    MapReduce的源码分析是基于Hadoop1.2.1基础上进行的代码分析。    该章节会分析在MapTask端的详细处理流程以及MapOutputCollector是如何处理map之后的collect输出的数据。map端的主要处理流程图1 MapTask处理流程    图1所示为MapTask的主要代码执行流程,在MapTask启动后会进入入口run函数,根据是否使用新的api

2014-07-16 00:20:23 4404

原创 使用 IntelliJ 远程调试 HDFS

首先找到使用的 hadoop 脚本,例如在Apache的

2014-07-12 07:11:40 7655 1

原创 Hadoop interview questions

Q1. Name the most common InputFormats defined in Hadoop? Which one is default ? Following 2 are most common InputFormats defined in Hadoop - TextInputFormat- KeyValueInputFormat- Seque

2014-07-11 06:18:16 722

转载 Hadoop MapReduce之ReduceTask任务执行(四):排序与合并

上一篇讲了reduce如何把map输出下载到本地的过程,这个过程中包含了文件合并操作,本文主要讲reduce的下一个阶段:排序。reduce端的合并单位是Segment,在对Segment合并的过程中就已经实现排序了,大家如果对Oracle比较熟悉的话,这种合并排序的方式就容易理解了,对于两个排序好的数组,每次取其中的最小值,那么结果就是一个大的有序数组,这就是merge的基本原理,当然在Hado

2014-06-17 03:18:35 5042

转载 Hadoop MapReduce之ReduceTask任务执行(三):Merger线程分析

在reduce端的文件拷贝阶段,会将数据放入内存或直接放入磁盘中,如果文件全部拷贝完再进行合并那样必然降低作业效率,所以在拷贝进行到一定阶段,数据的合并就开始了,负责该工作的有两个线程:InMemFSMergeThread和LocalFSMerger,分别针对内存和磁盘Segment的合并。首先看内存合并线程InMemFSMergeThread的run函数

2014-06-17 02:31:58 1717

转载 Hadoop MapReduce之ReduceTask任务执行(二):GetMapEventsThread线程

reduce任务为获得map的输出要和TaskTracker 通信以获得map的完成情况,负责这个工作的是GetMapEventsThread。线程运行时会通过TT的代理调用TaskUmbilicalProtocol协议的getMapCompletionEvents来获得MapTaskCompletionEventsUpdate,该返回数据总包含了最新map任务的完成状态:SUCCEEDED

2014-06-17 01:44:57 1750

转载 Hadoop MapReduce之ReduceTask任务执行(一):远程拷贝map输出

reduce执行流程经历三个阶段:copy、sort、reduce,在第一阶段reduce任务会把map的输出拷贝至本地,通过线程MapOutputCopier,该线程通过http协议将map输出拷贝至本地,该copy操作可以并行进行,默认情况下有5个线程执行此操作,如果map数量较大时可以适当调大此值,拷贝时使用http协议,此时reducetask为client,map端以jetty作为web

2014-06-16 22:25:45 6100 1

转载 Hadoop MapReduce 任务执行流程源代码详细解析

目录1 引言 1.1 目的 1.2 读者范围2 综述3 代码详细分析 3.1 启动Hadoop集群 3.2 JobTracker启动以及Job的初始化 3.3 TaskTracker启动以及发送Heartbeat 3.4 JobTracker接收Heartbeat并向TaskTracker分

2014-06-13 23:19:14 2384

转载 eclipse调试时鼠标移动到变量上不显示值的问题

ZZ from http://aniyo.iteye.com/blog/1563672Thanks to 今天同事问一问题,就说在eclipse中调试时,鼠标移动到变量上不显示值,这个原来自己也遇到过,没注意,反正就使用ctrl+shift+i嘛,也可以的,刚查了一下,解决方法如下: Window->Preferences->Java->Editor->

2014-06-12 06:13:37 1774

转载 远程调试hadoop各组件

远程调试对应用程序开发十分有用。例如,为不能托管开发平台的低端机器开发程序,或在专用的机器上(比如服务不能中断的 Web 服务器)调试程序。其他情况包括:运行在内存小或 CUP 性能低的设备上的 Java 应用程序(比如移动设备),或者开发人员想要将应用程序和开发环境分开,等等。为了进行远程调试,必须使用 Java Virtual Machine (JVM) V5.0 或更新版本。JPDA 简介S

2014-06-11 22:54:08 3555

转载 Hadoop系列 之Terasort

TeraSort是Hadoop的测试中很有用的一个工具,但以前只是粗略的知道它的功能和用法,简单的用它做了几个测试用例。实际上,对于这种比较通用的工具,如果能够了解它更多一些的话,对于理解Hadoop是很有帮助的,同时也可以更好的利用它来帮助测试。最近有点时间,就了解了一些它的背景,代码实现原理等等,就先记录下来吧。1. Hadoop与Sort BenchmarksSortBenchm

2014-06-10 23:55:14 3236

转载 Ubuntu英文系统中文字体问题

记得以前重新安装Ubuntu的时候没有遇到中文字体的问题,而这次不知道为什么出现了中文字体的问题,可能是安装Texlive改动了某些设置。那么,英文系统中的中文字体很难看,有粗有细而且有的还有阴影,这样的问题改如何解决呢?(PS:如果安装英文系统后,安装中文的语言包,然后再安装各种各样的程序,这样貌似没有问题,下次装系统时试一试,不过不想装下一次了。)Google到修改的方法,原文已经找不

2014-03-06 08:47:57 2786

原创 ubuntu 安装 Foxit Reader PDF阅读器

从 http://www.foxitsoftware.com/downloads/ 选择 “Desktop Linux”, 文件格式是deb 下载 Foxit Reader。这时候你就有一个 FoxitReader_1.1.0_i386.deb 这个安装包。这时候不要直接安装这个deb文件, 右键点击这个文件,选择 “open with archive manager”. 相当于打开压缩包

2014-02-22 04:37:32 8010

原创 ubuntu系统 调整屏幕分辨率

在终端收入xrandr -s 1280x960 就可以把屏幕分辨率调整到 1280*960. 注意 1280x960中的x是英文字母"x"。但是重启后失效。所以修改 /etc/rc.local 文件,这个是开机自启动脚本文件。sudo gvim /etc/rc.local在exit 0之前加入 xrandr -s 1280x960 即可。修改之后保存。

2014-02-22 04:03:57 1210

原创 ubuntu 安装 LAMP 环境

1. 安装Apachesudo apt-get install apache2如果 http://localhost/ 这个地址显示 It works. 那么Apache安装成功.2. 安装PHPsudo apt-get install php5 libapache2-mod-php5重启Apache使php生效sudo /etc/init.d/apache2 re

2013-04-29 04:38:37 778

原创 Hadoop HBase 伪分布式安装 配置

最近需要配置一个 HDFS 和 HBase 环境,看了网上别人写的博客内容之后发现。很多人写的根本不对,少了步骤,或者根本就是错的,或者配置文件根本写的不对。导致我自己不断出现问题无法搭建出稳定的 HDFS 环境。由于采用伪分布式安装,按照网上的教程安装之后,启动HDFS,有时候Namenode未启动,有时候Datanode未启动,运行HBase后,有时候HMaster未启动,有时候根本进了HBa

2013-04-25 09:52:14 2077

原创 esper安装与示例

1. esper的安装:在 http://esper.codehaus.org/esper/download/download.html 这里下载esper压缩包。解压缩之后获得文件夹 esper-4.x.x,在该文件夹根目录有 esper-4.x.x.jar,这就是我们需要用到的esper库,将其加入到项目中。值得注意的是,使用esper不仅仅需要这个jar文件,还需要esper所依赖的其他

2013-03-17 06:27:39 7735 4

原创 HilbertCurve 希尔伯特遍历的递归实现

#include using namespace std;struct POINT{ int x; int y;};enum{ UP, LEFT, DOWN, RIGHT};int matrix[8][8]; // 将要遍历的矩阵POINT cp; // 当前访问的矩阵上的点int tmp = 1; // 计数voi

2012-05-12 20:32:26 1550

转载 判断一棵树是否是BST

很多面试都会问到这样一个问题:给定一个二叉树,判断它是否是二叉查询树。思路:要判断是否是二叉查询树,标准就是看每一个节点是否满足:1、左节点及以下节点的值比它小;2、右节点及以下节点的值比它大。当然,前提是子节点都存在的情况。所以,我们需要从根节点不断向下递归,只要所有节点都满足,那么就是BST,否则,就不是。代码:private boolean i

2012-03-14 13:50:14 7221 1

转载 traits编程基础

转自 http://www.programfan.com/blog/article.asp?id=32496哈,我发现我终于成为标题党啦,全拿一些powerful的词做标题,骗点击率。说实话,在学校写论文全是有目的的,保研,升学,拿学位等,其实写的都是些什么哦,这里抄那里抄,能把专家组唬到就是好文章,写博客不同,我爱写就写,你当我是炫耀也好,轻浮也罢,都不放在耳边。C+

2012-02-07 09:56:49 1046

转载 C++ traits编程方法

转自: http://s99f.blog.163.com/blog/static/35118365200903111941380/ 侯捷老师在《STL 源码剖析》说:traits编程方法是一把开启STL源代码大门的钥匙,其重要性也就不必再说了。既然traits编程方法如此重要,那么掌握并领悟其精髓是相当必要了。    trait的意思是什么?英文意思是attribute,feature

2012-02-07 09:54:04 1924

转载 如何学好C++

一些同学问我,如何学好C++,我没有别的办法给你们,唯一的办法就是读书,读大量的书,就可以解决。要把C++作为日常语言,而不是一种程序语言,这样就好办了。有人又要问我,那么我应该读什么书才好?没有时间怎么办?我只能对你们说,没时间的话,就别学C++了,做你们喜欢做的事。生活中没有C++,也同样美好。如果你准备学,一定要学好,那么我开个书单,应该问题不是甚大。首先肯定要读一读Bjarne

2012-02-01 09:35:53 1034

输入法编程指南.pdf

输入法编程指南 编写IME程序的可以参考一下。

2012-02-14

duilib动态链接库及导入库

duilib所需要的dll与lib,不会手动生成lib库的这里下载

2011-12-19

google黑板报-数学之美

关于最本质的技术,以数学的形式引导学习前沿的技术。闲暇时候可以看一看。

2011-12-15

吉林大学ACM模板 很完善

吉林大学ACM模板 很完善 非常好的资料

2009-11-21

空空如也

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

TA关注的人

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