自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (6)
  • 收藏
  • 关注

转载 分布式发布订阅消息系统 Kafka (A distributed publish-subscribe messaging system)

转自:http://www.oschina.net/translate/kafka-design

2014-04-10 16:44:29 1125 1

原创 编译运行HBase源码,安装hadoop集群

node1:namenode, datanode, jobtracker, tasktracker,zookeeper, hmaster, hregionservernode2:datanode, tasktracker, hregionserver Install maven, edit /etc/profile:export M2_HOME=/home/apac

2014-02-21 15:50:47 2684 1

原创 Protocol Buffers 编译安装使用Protoc2.5 on Centos6.4

下载地址:https://code.google.com/p/protobuf/downloads/list我下载的是protobuf-2.5.0.tar.gz解压:$ tar -xzvf protobuf-2.5.0.tar.gz编译:$ cd protobuf-2.5.0$ ./configure$ make$ make check安装:$ make i

2014-02-14 16:40:33 5942 3

原创 CentOS6.4安装pydoop

1.download hadoop(http://mirror.nexcess.net/apache/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz)2. tar -xzvf hadoop-1.2.1.tar.gz3. export HADOOP_HOME=/opt/hadoop-1.2.1    export JAVA_HOME=/usr

2014-02-08 14:37:04 3202

转载 Hive SQL解析/执行计划生成流程分析

Hive SQL解析/执行计划生成流程分析Hive有三种用户接口:cli (Command line interface)bin/hive或bin/hive –service cli命令行方式(默认)hive-server/hive-server2bin/hive –service hiveserver 或bin/hive –

2013-12-24 22:39:24 2357

原创 Spark & Shark & Tachyon 简介

Spark是一个高效的分布式计算系统,相比Hadoop,它在性能上比Hadoop要高100倍。Spark提供比Hadoop更上层的API,同样的算法在Spark中实现往往只有Hadoop的1/10或者1/100的长度。Shark类似“SQL on Spark”,是一个在Spark上数据仓库的实现,在兼容Hive的情况下,性能最高可以达到Hive的一百倍。 Tachyon是一个高

2013-12-02 21:17:48 4138 2

转载 深入理解HBase Memstore

原文出处:http://shitouer.cn/2013/02/configuring-hbase-memstore-what-you-should-know/MemStore是HBase非常重要的组成部分,深入理解MemStore的运行机制、工作原理、相关配置,对HBase集群管理以及性能调优有非常重要的帮助。HBase Memstore首先通过简单介绍HBa

2013-11-27 20:53:03 947 1

转载 Eclipse中最有用的快捷键组合

ctrl+shift+T:打开类型,可以全路径打开一个类、接口1. ctrl+shift+r:打开资源    这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如applic*.xml。美中不足的是这组快捷键并非在所有视图下都能用。2. ctrl+o:快速outline

2013-11-19 21:36:21 891

原创 HBase Scanner

一个region有一个regionscanner,一个regionscanner维持一个 PriorityQueue,包含storescanner;一个storescanner维持一个 PriorityQueue,包含一个memstorescanner和多个storefilescannerstore是一个family。regionscanner扫描一个region, 包含多个store

2013-11-19 21:16:15 3993 1

原创 Java Runtime.exec() hangs

有一篇总结的很不错的文章:http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html?page=3有两种方法可以解决这个问题:1.采用apache common exec2.采用多线程public static void main(String[] args) {try {Process

2013-05-03 21:09:52 1185 1

原创 Apache Tez

参考资料:官方blog:http://hortonworks.com/blog/author/arun_murthy/svn源码:http://hortonworks.com/blog/introducing-tez-faster-hadoop-processing/看到一篇很不错的文章:http://dongxicheng.org/mapreduce-nextgen/

2013-04-16 09:42:07 14925 6

原创 Apache S4

最近想研究一下流处理模型,就顺便看看Apache S4Apache S4是一个常规用途的、分布式的、可伸缩的、容错的、可插入式的平台用于处理联系的无限数据流。Apache S4填补了复杂的专有系统和面向批处理的开源计算平台之间的差距。我们的目标是开发高性能计算平台从应用编程的并行处理系统中固有的复杂性隐藏。Apache S4 已经在 Yahoo 的系统中

2013-03-29 16:27:27 1180

转载 系统架构领域的一些学习材料

转自:http://qing.weibo.com/2244218960/85c41050330031zq.html系统架构是一个工程和研究相结合的领域,既注重实践又依赖理论指导,入门容易但精通很难,有时候还要讲点悟性,很具有“伪科学”的特征。要在此领域进阶,除了要不断设计并搭建实际系统,也要注意方法论和设计理念的学习和提炼。经常有同学询问如何学习,特贴一篇学习材料,供大家参考。

2013-03-15 21:01:06 729

转载 puppet资源配置

转自:http://blog.chinaunix.net/uid-23480577-id-3379623.htmlpuppet资源配置在puppet中基本的配置宣称叫做资源,像我们在上次学习中写到的那样:file { "/etc/passwd":owner => "root",group => "root",mode => 644,}这是一个简单的pup

2013-02-28 14:28:21 1020

转载 hbase介绍

来源:http://www.tbdata.org/archives/1509一、简介history started by chad walters and jim2006.11 G release paper on BigTable2007.2 inital HBase prototype created as Hadoop

2013-02-05 09:31:13 626

转载 C++中const、volatile、mutable的用法

const修饰词紧接于函数参数表之后:告诉编译器,这个member function 不会更动class object的内容。凡是在class主体以外定义者,如果它是一个const member function,那就必须同时在声明式与定义式中都指定const。转发:http://blog.csdn.net/wuliming_sc/article/details/3717017

2013-01-27 11:09:37 535

原创 reference和pointer的区别

1.引用必须初始化,指针不必2.引用初始化以后不能改变,指针额可以改变所指的对象,引用只能在定义时被初始化一次,之后不可改变3.不存在指向空值的引用,但是存在指向空值的指针4.引用没有const5.sizeof(引用)得到所指向变量的大小,sizeof(指针)得到的是指针本身的大小6.引用是类型安全的而指针不是

2013-01-27 10:38:08 2454

原创 进程间通信(IPC):消息队列(Message Queue)

消息队列与命名管道有许多相似之处,但少了在打开和关闭管道方面的复杂性。与命名管道相比,消息队列的优势在于,它独立于发送和接收进程而存在。消息队列函数的定义如下所示:#includeint msgctl(int msqid, int cmd, struct msqid_ds *buf);//消息队列的控制函数int msgget(key_t key, int msgflg);//创

2013-01-26 14:18:52 5535 1

原创 进程间通信(IPC):共享内存

共享内存允许两个不相关的进程访问同一个逻辑内存。共享内存的定义如下:#includevoid *shmat(shm_id,const void *shm_addr, int shmflg);//连接到一个进程的地址空间中int shmctl(int shm_id, int cmd, struct shmid_ds *buf);//共享内存的控制函数int shmdt(const v

2013-01-24 10:32:45 1150 2

原创 进程间通信(IPC):信号量(Semaphore)

假定有一个信号量变量sv,P(sv):用于等待,如果sv大于0,就给它减去1,如果它的值等于0,就挂起该进程的执行V(sv):用于发送信号,如果有其他进程因等待sv而挂起,就让它恢复运行,如果没有进程因等待sv而被挂起,就给它加1semaphore sv=1;loop forever{P(sv);critical code section;V(sv);non

2013-01-23 21:26:05 1983

原创 进程间通信(IPC):管道(Pipe)

管道:一个进程连接数据流到另一个程序pipe函数的原型:#include int pipe(int file_descriptor[2]);该闪身在数组中填上两个新的文件描述符后返回0,如果失败则返回-1。写到file_descriptor[1]的所有数据都可以从file_descriptor[0]读回来。这里使用的是文件描述符而不是文件流,所以我们必须用底层的read和write调用

2013-01-23 17:05:59 1518

原创 系统调用(system call)与应用程序接口(API)

系统调用(system call):通过软件中断向内核态发出一个明确的请求应用程序接口(API):只是一个函数定义,说明了如何获得一个给定的服务系统调用属于内核,而用户态的库函数不属于内核,当用户态的进程调用一个系统调用时,CPU切换到内核态并开始执行一个内核函数。系统调用处理程序执行下列操作:1.在内核态栈保持大多数寄存器的内容2.调用名为系统调用服务例程的相应的C函数来处理

2013-01-23 16:33:37 6595

转载 Linux slab 分配器剖析

转载:http://www.ibm.com/developerworks/cn/linux/l-linux-slab-allocator/动态内存管理内存管理的目标是提供一种方法,为实现各种目的而在各个用户之间实现内存共享。内存管理方法应该实现以下两个功能:最小化管理内存所需的时间最大化用于一般应用的可用内存(最小化管理开销)内存管理实际上是一种关于权衡的零

2013-01-23 15:44:20 515

转载 Linux进程地址空间的一步步探究

转载:http://soft.chinabyte.com/os/51/12324551.shtml我们知道,在32位机器上linux操作系统中的进程的地址空间大小是4G,其中0-3G是用户空间,3G-4G是内核空间。其实,这个4G的地址空间是不存在的,也就是我们所说的虚拟内存空间。  那虚拟内存空间是什么呢,它与实际物理内存空间又是怎样对应的呢,为什么有了虚拟内存技术,我们就能

2013-01-23 15:05:18 476

原创 进程地址空间

进程的地址空间由允许进程使用的全部线性地址组成。每个进程所看到的线性地址集合是不同的,一个进程所使用的地址空间与另外一个进程所使用的地址之间没有什么关系。与进程地址空间有关的全部信息都包含在一个叫做内存描述符(memory descriptor)的数据结构中,这个结构的类型为mm_struct,进程描述符的mm字段就指向这个结构。内核线程仅运行在内核态,因此,它们永远不会访问低于TAS

2013-01-23 13:39:42 580

原创 内核内存分配器(Kernel Memory Allocator, KMA)

内核内存分配器(Kernel Memory Allocator, KMA)是一个子系统,试图满足系统中所有部分对内存的请求。基于各种不同的算法技术,已经提出了几种KMA,包括:资源图分配算法2的幂次方空闲链表McKusick-Karels分配算法伙伴(Buddy)系统Mach的区域(Zone)分配算法Dynix分配算法Solaris的Slab分配算法slab分配

2013-01-22 17:07:59 1136

原创 可重入内核

所有的Unix内核都是可重入的(reentrant),这意味着若干个进程可以同时在内核态下执行。提供可重入的一种方式是编写函数,以便这些函数只能修改局部变量,而不能改变全局数据结构,这样的函数叫做可重入函数。但是可重入内核不仅仅局限于这样的可重入函数,相反,可重入内核可以包含非重入函数,并且利用锁机制保证一次只有一个进程执行一个非重入函数

2013-01-21 21:10:58 529

原创 unix文件类型

unix文件可以是下列类型之一:普通文件(regular file)目录符号链接面向块的设备文件面向字符的设备文件管道(pipe)和命名管道(named pipe)套接字(socket)

2013-01-21 21:03:58 563

原创 硬链接和软链接(hard link&soft link)

包含在目录中的文件名就是一个文件的硬链接(hard link),或简称链接(link)。硬链接有一下两方面的限制:1.不允许用户给目录创建硬链接。因为这可能把目录树变为环形图,从而就不可能通过名字定为一个文件。2.只有在同一个系统中的文件之间才能创建链接。这带来比较大的限制,因为现代Unix系统可能包含了多种文件系统,这些文件系统位于不同的磁盘和/或分区,用户也许无法知道它们之

2013-01-21 20:52:52 1158

原创 TCP的三次握手和四次挥手

三次握手:step1:客户发送TCP SYN报文段到服务器step2:服务器接收SYN,回复SYN ACK报文段step3:客户接收SYN ACK,回复ACK报文段,可能包含数据四次挥手:step1:客户发送TCP FIN控制报文段到服务器step2:服务器接收FIN,回复ACK,进入"CLOSE_WAIT",并发送FIN到客户step3:客户接收FIN,回复A

2013-01-21 20:30:04 392

原创 判断机器的大小端

#includeunion endian{ unsigned int word; unsigned char bytes[4];};int main(int argc, char* argv){ union endian en; en.word=0x12345678; printf("%x\n",en.b

2013-01-21 20:22:31 340

原创 字符全排列

#include#includevoid exchange(char *p,char *q){ if(*p!=*q) { *p=*p^*q; *q=*p^*q; *p=*p^*q; }}void permutation(char *pstr,

2013-01-21 20:12:25 466

原创 希尔排序/shell sort

#include#includevoid shellsort(int array[],int len){ int dk; int i; int j; for(dk=len/2;dk>=1;dk/=2) { for(i=dk+1;i<=len;++i)

2013-01-21 20:10:38 469

原创 sizeof

#includestruct AA{ char a; double b; float c;};struct BB{ int a; double b; float c; };struct CC{

2013-01-21 20:08:44 298

原创 构造函数调用成员函数&成员函数是虚函数

下列输出结果是什么?includeusing namespace std;class A{ public: A() { f(); } virtual void f()

2013-01-21 19:52:54 940

原创 继承中成员变量初始化

下列输出结构是什么?#includeusing namespace std;class A{ public: int m_a; A():m_a(0){}};class B : public A{ public: int m_a;

2013-01-21 19:46:37 567 1

原创 heapsort/minheap/maxheap/堆排序/最大堆/最小堆

#include#include#includevoid exchange(int *array,int i1,int i2){ if(array[i1]!=array[i2]) { array[i1]=array[i1]^array[i2]; array[i2]=array[i1]^arra

2013-01-21 19:42:01 769

原创 linux kernel map 2.6

2013-01-21 19:33:59 487

原创 Vim键盘图

分为三种模式:一般模式、编辑模式和命令行模式

2013-01-21 19:18:11 421

原创 QuickSort/快速排序/快排

#include #include #include #include void exchange(int *array,int i1,int i2){ int temp; temp=array[i1]; array[i1]=array[i2]; array[i2]=temp;}int partition(int *

2013-01-21 19:11:52 513

TCP-IP全三卷

TCP-IP全三卷,中文,很清晰,很不错的电子书

2013-01-21

Linux System Programming (Linux系统编程中文版)

Linux System Programming (Linux系统编程中文版)

2013-01-21

linux kernel map 2.6 很清晰

linux kernel map 2.6 很清晰,

2013-01-21

vim键盘图清晰版

vim键盘图,相当实用,也很清晰,很适合打印出来贴办公室

2013-01-21

linux-2.6.0

linux-2.6.0 kernel 挺经典的一个代码版本

2013-01-21

空空如也

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

TA关注的人

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