摘要: 1. 获取源代码 $ svn co http://svn.apache.org/repos/asf/hive/trunk hive $ cd hive2. 修改源代码可通过log类打印调试信息,也可以直接使用System.err.println。3. 编译 $ ant package完成编译后,会生成build目录,里面包含所有编译完的class,同时包含了一个dist目录,里面拷贝了bin,conf等目录。 阅读全文
posted @ 2013-05-30 10:17 simon1024 阅读(704) 评论(0) 推荐(1) 编辑
摘要: 以下内容来自于mysql经验分享。一、分页sql的写法假设,一个公司产品有2000条记录,要分页取其中10个产品,假设访问公司索引需要50个IO,2条记录需要1个表数据IO在mysql中采用limit分页原理:一次性根据过滤条件取出所有字段进行排序返回 select * from t where thread_id = 771025 and deleted = 0 order by gmt_create asc limit 0, 10;数据访问开销=索引IO+索引全部记录结果对应的表数据IO该种写法越翻到后面执行效率越差,时间越长,尤其表数据量很大的时候或者可以更优化的,利用表的P... 阅读全文
posted @ 2013-05-26 17:12 simon1024 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 1. redis不是一个通用的数据解决方案,它只是擅长于处理某些特定的问题集合,而这些问题是我们经常关心的一类问题。2. redis是一个全内存的kv存储工具,它会定期将数据持久化到硬盘。然而它不仅仅是一个kv存储,它拥有五种数据结构,只是其中的一种是kv结构。3. 类似的,我们可以认为关系数据库是只拥有一种数据结构的存储工具,这种数据结构就是表,关系数据库用表这一种结构满足了各种的数据需求,即one-size-fits-all,而redis是用五种典型的数据结构处理特定类型的问题,这种设计使得redis简单而快速。4. redis用key标识一条数据,而用value存储key对应的数据,通常 阅读全文
posted @ 2013-05-25 17:12 simon1024 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 常用插件:minibufexpl.vimtaglist.vimwinfileexplorer.vimwinmanager.vimwintagexplorer.vim12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810 阅读全文
posted @ 2013-05-23 18:50 simon1024 阅读(233) 评论(0) 推荐(0) 编辑
摘要: GivenaBST(BinarysearchTree)howwillyoufindmedianinthat?Constraints:*Noextramemory.*Functionshouldbereentrant(Nostatic,globalvariablesallowed.)*Medianforevennoofnodeswillbetheaverageof2middleelementsandforoddnooftermswillbemiddleelementonly.*Algorithmshouldbeefficientintermsofcomplexity.中文不需要赘述了,就是二叉搜 阅读全文
posted @ 2013-05-23 18:00 simon1024 阅读(1322) 评论(0) 推荐(0) 编辑
摘要: PythonaddsanextensionsyntaxtoPerl’sextensionsyntax.IfthefirstcharacterafterthequestionmarkisaP,youknowthatit’sanextensionthat’sspecifictoPython.Currentlytherearetwosuchextensions:(?P<name>...)definesanamedgroup,and(?P=name)isabackreferencetoanamedgroup.>>>p=re.compile(r'(?P<wor 阅读全文
posted @ 2013-05-23 17:58 simon1024 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 将一个整数拆分成不重复的整数之和。example:6=1+5=1+2+3=2+4采用递归方法实现。12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182#include<iostream>#include<vector>usingnamespacestd;/**6=1+5=1+2+3=2+4**/voidsplit(i 阅读全文
posted @ 2013-05-23 17:56 simon1024 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 在看hive源码的时候,因为对log4j不了解而苦于不知道该如何打印log来进行调试。虽然最后我选择了直接使用System.err.println来打印log,但是log4j是一个很好的log框架,在很多多线程系统中都有用到,所以值得花点时间好好学习下。简介:log4j是apache的一个开源项目,是一个流行的javalog框架,如今已经有了c,c++,python,shell等各语言的相关版本,如使用于shell的log4shell.打印log是最简单和最直接的程序调试方法。即便如此,打印log有时却是唯一可以用的程序调试方法,尤其是对于大型的多线程或分布式系统。它们很难通过gdb等工具就进 阅读全文
posted @ 2013-05-23 17:46 simon1024 阅读(431) 评论(0) 推荐(0) 编辑
摘要: 方法一、不用栈void reverseChar(char* str, int len){ char* q = str+len-1; char* p = str; if (!len) return; while( pst;stackword;char*p=str;st.push('\0');while(*p!='\0'){while(*p=='')st.push(*p++);if(*p=='\0')break;while(*p!='\0'&&*p!='')word.push(*p++) 阅读全文
posted @ 2013-05-23 17:42 simon1024 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 算法内容来源于网络,本人增加对算法的证明。百度面试题:现在有一个数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数。 答案1: 创建一个hash_map,key为数组中的数,value为此数出现的次数。遍历一遍数组,用hash_map统计每个数出现的次数,并用两个值存储目前出现次数最多的数和对应出现的次数。 这样可以做到O(n)的时间复杂度和O(n)的空间复杂度,满足题目的要求。 但是没有利用“一个数出现的次数超过了一半”这个特点。也许算法还有提高的空间。 答案2: 使用两个变量A和B,其中A存储某个数组中的数,B用来计数。开始时将B初始化为0。 ... 阅读全文
posted @ 2013-05-19 18:41 simon1024 阅读(384) 评论(0) 推荐(0) 编辑