11 hjxhjh

尚未进行身份认证

暂无相关简介

等级
TA的排名 2w+

博客关而复开

前段时间密码泄露,账户丢了。导致自己博客连绵很多非法的盗链,但是自己比较懒,今天才发现博客被封禁了。联系客服,还好咱们csdn的客服还是很赞的,很热心的帮忙清理了博客解封博客。非常感谢!接下来的一年,要多积累了。博客荒芜的不行了。。。

2015-02-16 16:46:26

定制mapreduce输出

这里以redis数据库为例。这里的例子是,我想统计日志文件中的某天各个小时的访问量,日志格式为:?12014-02-1004:52:34127.0.0.1xxx我们知道在写mapreduce job时,要配置输入输出,然后编写mapper和reducer类,hadoop默

2014-11-02 14:22:24

hbase MapReduce程序样例入门

1、先看一个标准的hbase作为数据读取源和输出源的样例:View Code JAVA12345678Configuration conf = HBaseConfiguration.create();Job job = new Job(conf, "job name ");job.setJarByClass(test.class)

2014-11-02 13:43:07

Sendfile Linux 系统中的零拷贝

如今几乎每个人都听说过Linux中所谓的"零拷贝"特性,然而我经常碰到没有充分理解这个问题的人们。因此,我决定写一些文章略微深入的讲述这个问题,希望能将这个有用的特性解释清楚。在本文中,将从用户空间应用程序的角度来阐述这个问题,因此有意忽略了复杂的内核实现。什么是”零拷贝”为了更好的理解问题的解决法,我们首先需要理解问题本身。首先我们以一个网络服务守护进程为例,考虑它在将存储在文件

2014-09-30 15:30:06

SkipList

SkipList是链表的一种,是有序单向链表的一种改进,使用跳表可以将查询操作的复杂度控制到O(lg n),而普通的链表只能通过顺序查找,复杂度为O(n),如此跳表的优势就很明显了,虽然它是通过以空间换时间搞定的。它实现起来简单,而且查找效率高,因此被一些数据库应用采纳为底层的数据结构,比如leveldb,redis等。redis里面的sorted set就是使用skiplist作

2014-09-14 15:49:53

Linux协议栈accept和syn队列问题

环境:       Client 通过tcp 连接server,server端只是listen,但是不调用accept。通过netstat –ant查看两端的连接情况。server端listen,不调用accept。client一直去connect server。问题:运行一段时间后,为什么server端的ESTABLISHED连接的个数基本是固定的12

2014-08-23 20:38:32

SQL常见的可优化点

###################################################   # 索引相关   # ###################################################   1. 查询(或更新,删除,可以转换为查询)没有用到索引   这是最基础的步骤,需要对sql执行explain查看执行计划中是否用到

2014-08-23 20:15:08

cache 缓存算法

LRU(Least Recent Used)是我们在cache替换算法中最普遍使用的算法,在缓存块已满,而需要缓存新的数据块的时候,这时需要从缓存中找到一个“没有价值”的块用新的数据块去替换它。Cache有两个问题:一个是前面提到的降低锁粒度,另一个是提高精准度,或者称为提高命中率。LRU在大多数情况下表现是不错的,但是有如下的问题:1, 顺序扫描。顺序扫描的情况下LRU没

2014-08-23 19:41:20

将登博整理的较好的博客拿来,留个底

前段时间,我在微博上分享了自己订阅的博客Feeds,一共有200个左右,内容覆盖多个领域,包括有:Database(MySQL、Oracle、PostgreSQL),Programming,Distributed Systems,Systems 等。俗话说,过犹不及,太多的选择,往往意味着没有选择。在过去的几年,对于自己订阅的所有博客,我基本上做到每天都看,因此对每个博客的内容有了一定的了解。本文

2014-08-11 18:08:10

C/C++ Volatile关键词深度剖析

背景前几天,发了一条如下的微博 (关于C/C++ Volatile关键词的使用建议):此微博,引发了朋友们的大量讨论:赞同者有之;批评者有之;当然,更多的朋友,是希望我能更详细的解读C/C++ Volatile关键词,来佐证我的微博观点。而这,正是我写这篇博文的初衷:本文,将详细分析C/C++ Volatile关键词的功能 (有多种功能)、Volatile关键词在多线程

2014-08-11 17:12:39

tcp 连接关闭详解

注:tcp关闭连接不区分客户端和服务端,哪一端口可以主动发起关闭连接请求。所以为了描述方便,描述中的“主动方”表示主动发起关闭连接一方,“被动方”表示被动关闭连接一方。1. tcp关闭连接状态转换 上图是tcp连接主动关闭端的状态转换图:(1)应用层调用close函数发起关闭连接请求(2)发送FIN到对端,关闭写通道,自己进入FIN_WAIT1状

2014-07-13 16:48:51

从TCP协议的原理来谈谈rst复位攻击

在谈RST攻击前,必须先了解TCP:如何通过三次握手建立TCP连接、四次握手怎样把全双工的连接关闭掉、滑动窗口是怎么传输数据的、TCP的flag标志位里RST在哪些情况下出现。下面我会画一些尽量简化的图来表达清楚上述几点,之后再了解下RST攻击是怎么回事。1、TCP是什么?TCP是在IP网络层之上的传输层协议,用于提供port到port面向连接的可靠的字节流传输。我来用土语解释下上

2014-03-04 08:44:29

linux c 进程跟踪工具:strace、ltrace、truss

strace命令详解strace 命令是一种强大的工具,它能够显示所有由用户空间程序发出的系统调用。  strace 显示这些调用的参数并返回符号形式的值。strace 从内核接收信息,而且不需要以任何特殊的方式来构建内核。  下面记录几个常用 option .  1 -f -F选项告诉strace同时跟踪fork和vfork出来的进程  2 -o xxx.txt 输出到某个文

2014-02-28 15:56:17

高性能网络编程七--tcp连接的内存使用

当服务器的并发TCP连接数以十万计时,我们就会对一个TCP连接在操作系统内核上消耗的内存多少感兴趣。socket编程方法提供了SO_SNDBUF、SO_RCVBUF这样的接口来设置连接的读写缓存,linux上还提供了以下系统级的配置来整体设置服务器上的TCP内存使用,但这些配置看名字却有些互相冲突、概念模糊的感觉,如下(sysctl -a命令可以查看这些配置):[cpp]

2014-02-19 11:44:52

python 自动补全

1. 设置"PYTHONSTARTUP"环境变量 root@localhost:~$ cat .bashrc ...# setting python env PYTHONSTARTUP='/root/.pythonstartup'export PYTHONSTARTUP2. 添加.pythonstartup文件

2014-02-17 21:23:53

网络编程中重要函数总结:如何判断socket关闭

1、阻塞模式与非阻塞模式下recv的返回值各代表什么意思?有没有区别?(就我目前了解阻塞与非阻塞recv返回值没有区分,都是 0接收到数据大小,特别:返回值 2、阻塞模式与非阻塞模式下write的返回值各代表什么意思?有没有区别?(就我目前了解阻塞与非阻塞write返回值没有区分,都是 0发送数据大小,特别:返回值 3、阻塞模式下read返回值 非阻塞模式下read返回值 0表示接收

2014-02-11 11:15:41

位运算总结及应用

一、C语言的六种位运算符:& 按位与| 按位或^ 按位异或~ 取反左移>> 右移 1.   按位与运算按位与运算符"&"是双目运算符。        其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。例如:9&5可写算式如下: 00001001 (9的二进制补码)&0000010

2014-01-17 12:12:32

高性能网络编程六--reactor反应堆与定时器管理

反应堆开发模型被绝大多数高性能服务器所选择,上一篇所介绍的IO多路复用是它的实现基础。定时触发功能通常是服务器必备组件,反应堆模型往往还不得不将定时器的管理囊括在内。本篇将介绍反应堆模型的特点和用法。首先我们要谈谈,网络编程界为什么需要反应堆?有了IO复用,有了epoll,我们已经可以使服务器并发几十万连接的同时,维持高TPS了,难道这还不够吗?我的答案是,技术层面足够了,但在软件

2013-12-26 18:24:56

高性能网络编程五--IO复用与并发编程

对于服务器的并发处理能力,我们需要的是:每一毫秒服务器都能及时处理这一毫秒内收到的数百个不同TCP连接上的报文,与此同时,可能服务器上还有数以十万计的最近几秒没有收发任何报文的相对不活跃连接。同时处理多个并行发生事件的连接,简称为并发;同时处理万计、十万计的连接,则是高并发。服务器的并发编程所追求的就是处理的并发连接数目无限大,同时维持着高效率使用CPU等资源,直至物理资源首先耗尽。并

2013-12-12 09:00:50

linux shell 将多行文件转换为一行

说实话,虽然对shell编程包括awk有所了解,但是对sed的多行与一行的处理还是不甚理解,在网上搜罗了一篇文章觉得还不错,记录一下:  今天一个工程师问我,怎么将一个文件中的多行转换成一行。     我给出了如下三种方法:     1.采用awk     awkBEGIN{RS=EOF}'{gsub(/\n/,"");print}'f

2013-12-11 16:27:06

查看更多

勋章 我的勋章
    暂无奖章