摘要: 正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^\x00-\xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:\n\s*\r 评注:可以用来删除空白行 匹配HTML标记的正则表达式: <(\S*?)[^>]*>.*? </\1> ¦ <.*? /> 评注:网上流传的版本太糟糕,上面这 阅读全文
posted @ 2011-07-20 18:38 Angels-Wing 阅读(344) 评论(0) 推荐(0) 编辑
摘要: A:转换的含义是通过改变一个变量的类型为别的类型从而改变该变量的表示方式。为了类型转换一个简单对象为另一个对象你会使用传统的类型转换操作符。比如,为了转换一个类型为doubole的浮点数的指针到整型 代码 int i; double d; i = (int) d; 或者 i = int (d); 对于具有标准定义转换的简单类型而言工作的很好。然而,这样的转换符也能不分皂白的应用于类(class)和类的指针。ANSI-C++标准定义了四个新的转换符:‘reinterpret_cast‘, ‘static_cast‘, ‘dynamic_cast‘ 和 ‘const_cast‘,目的在于控制类(. 阅读全文
posted @ 2011-07-19 15:19 Angels-Wing 阅读(1072) 评论(0) 推荐(0) 编辑
摘要: 1.Hash介绍 Hash这个在实现某些功能的经常会用到的数据结构,在java和c++ 里面都有相应的封装好的数据结构:C++ STL Map java 有HashMapTreeMap。计算理论中,没有Hash函数的说法,只有单向函数的说法。所谓的单向函数,是一个复杂的定义,大家可以去看计算理论或者密码学方面的数据。用“人 类”的语言描述单向函数就是:如果某个函数在给定输入的时候,很容易计算出其结果来;而当给定结果的时候,很难计算出输入来,这就是单项函数。各种加密函数都可以被认为是单向函数的逼近。Hash函数(或者成为散列函数)也可以看成是单向函数的一个逼近。即它接近于满足单向函数的定义。Ha 阅读全文
posted @ 2011-07-03 14:52 Angels-Wing 阅读(5090) 评论(0) 推荐(0) 编辑
摘要: 在Linux 下用hda、sda 等来标识不同的硬盘;用hda1、hda2、hda5、hda6 来标识不同的分区。其中:hd表示识别为IDE硬盘,sd表示识别为SCSI硬盘。1) 字母a 代表第一块硬盘,b 代表第二块硬盘,依次类推。2) 数字1 代表一块硬盘的第一个分区、2 代表第二个分区,依次类推。1 到4 对应的是主分区(Primary Partition)或扩展分区(Extension Partition)。从5开始,对应的都是硬盘的逻辑分区(Logical Partition)。 一块硬盘即使只有一个主分区,逻辑分区也是从5开始编号的,这点应特别注意。我们看看下面的例子,这里/dev 阅读全文
posted @ 2011-06-28 18:04 Angels-Wing 阅读(433) 评论(0) 推荐(0) 编辑
摘要: hadoop上传数据问题 2011-06-14 22:07当一个HDFS系统同时处理许多个并行的put操作,往HDFS上传数据时,有时候会出现dfsclient 端发生socket 链接超时的报错,有的时候甚至会由于这种原因导致最终的put操作失败,造成数据上传不完整。log类似如下:All datanodes *** are bad. Aborting...类似这样的错误,常常会在并行的put操作比较多,比如60-80个,每个put的数据量约100G的时候,产生类似的错误,错误出现以后,比较好一点的情况是DFSClient端会报出一些列的错误log,如:error Recovery for. 阅读全文
posted @ 2011-06-20 17:11 Angels-Wing 阅读(4335) 评论(2) 推荐(1) 编辑
摘要: 转载:http://blog.csdn.net/AE86_FC/archive/2010/08/26/5842020.aspxNameNode启动过程详细剖析NameNode中几个关键的数据结构FSImageNamenode会将HDFS的文件和目录元数据存储在一个叫fsimage的二进制文件中,每次保存fsimage之后到下次保存之间的所有hdfs操作,将会记录在editlog文件中,当editlog达到一定的大小(bytes,由fs.checkpoint.size参数定义)或从上次保存过后一定时间段过后(sec,由fs.checkpoint.period参数定义),namenode会重新将内 阅读全文
posted @ 2011-04-26 16:43 Angels-Wing 阅读(1969) 评论(1) 推荐(0) 编辑
摘要: 用C/C++开发其中最令人头疼的一个问题就是内存管理,有时候为了查找一个内存泄漏或者一个内存访问越界,需要要花上好几天时间,如果有一款工具能够帮助我们做这件事情就好了,valgrind正好就是这样的一款工具。Valgrind是一款基于模拟linux下的程序调试器和剖析器的软件套件,可以运行于x86, amd64和ppc32架构上。valgrind包含一个核心,它提供一个虚拟的CPU运行程序,还有一系列的工具,它们完成调试,剖析和一些类似的任务。valgrind是高度模块化的,所以开发人员或者用户可以给它添加新的工具而不会损坏己有的结构。valgrind的官方网址是:http://valgrin 阅读全文
posted @ 2011-04-26 15:09 Angels-Wing 阅读(1582) 评论(0) 推荐(0) 编辑
摘要: 曾经做过一个测试,用hdfs和 kfs分别作hadoop的底层,发现还是hdfs快,可能hdfs更符合hadoop的生态系统,但是一个很明显的现象就是用hdfs的时候,系统的内存缓存量很大几乎等于全部内存,iowait 也很高,kfs则没那么严重,这也是kfs慢的原因吧,因此如果在一个繁忙的集群上测试,哪个效果好,还是难以下定论,c++比java省内存和cpu,好多人都这么说,具体原因,我还不清楚,需要进一步学习。下面引用了另一位高人的随笔: Hypertable C++ vs Hbase Java Hypertable和Hbase二者同源,设计也有诸多相似之处,最主要的区别当然还是编程语言的 阅读全文
posted @ 2011-04-26 14:49 Angels-Wing 阅读(1308) 评论(1) 推荐(0) 编辑
摘要: 背景hadoop的HDFS系统结构里,namenode一直是一个单点,不管是单点出错还是单点性能方便,都是单点。这一直是HDFS想要达到7 * 24小时服务的最大的阻碍。在hadoop apache社区和仅有的那几家有能力把hadoop用到这种程度的人群里,对这一点的讨论也已经有很多了,有提出分布式namespace的,有提出 namenode单点热备的,有提出分布式mds(参考ceph和lustre)的,大家都为解决namenode的单点想了很多的办法。最近跟 facebook的Dhruba Borthakur(这位仁兄的名字实在是不会念,只好大家都叫他DB同学)讨论中发现,他们的hdfs也 阅读全文
posted @ 2011-04-26 10:21 Angels-Wing 阅读(713) 评论(0) 推荐(0) 编辑
摘要: 面了一个实习,说道 我研究方向是大规模数据处理,分布式计算,hadoop 中间件,对方似乎对我说出中间件这个词很感兴趣直接问我我对中间件的理解,我还很少仔细思考这个问题,只好凭自己的理解说:中间件就是硬件操作系统和应用之间一个平台,可以屏蔽操作系统的异构性。 一个完整的系统平台通常是由一组中间件集成在一起,包括开发平台和运行平台。这组中间件中一般都会至少一个通信中间件。中间件更多的是用在分布式系统中的一个概念。中间件屏蔽了底层操作系统的复杂性,使得应用程序开发变得简单而统一。减少程序设计的复杂性(hadoop就是一个范例),将注意力集中在自己的业务上,不必再为程序在不同系统软件上移植而重复工作 阅读全文
posted @ 2011-04-25 16:29 Angels-Wing 阅读(1473) 评论(0) 推荐(0) 编辑