置顶随笔

摘要: 准备知识Merkle tree[1] 上图(来自Wikipedia[1])给出了一个二进制的哈希树(二叉哈希树, 较常用的tiger hash tree也是这个形式). 据称哈希树经常应用在一些分布式系统或者分布式存储中的反熵机制(Anti-entropy),也有称做去熵的.这些应用包括 Amazon的Dynamo 还有Apache的Cassandra数据库, 通过去熵可以去做到各个不同节点的同步, 即保持各个节点的信息都是同步最新. 哈希树的特点很鲜明: 叶子节点存储的是数据文件,而非叶子节点存储的是其子节点的哈希值(称为MessageDigest) 这些非叶子节点的Hash被称作路径哈希值阅读全文
posted @ 2012-09-10 15:53 aho 阅读(120) 评论(0) 编辑
摘要: 概述: 在很多的MySQL检索应用中,为了提高热点查询的效率,往往会选择在MySQL数据库前边加上一层Memcached做查询缓存。这样在中间查询层,用户程序需要自己先去Memcached里面查询一遍自己需要的key是否已被缓存,若没有,则再去MySQL数据库中进行相应的查询。在MySQL5.6版本后,InnoDB存储引擎开始集成Memcached: 上图中的SQL到Memcached的add、incr等操作完全在MySQL server端进行。不需要人为的进行操作解析,所带来的好处包括:自动持久话。存储引擎自动做Memcached到数据文件间的持久化,所以一些add、incr操作也可以直接对阅读全文
posted @ 2012-09-06 18:03 aho 阅读(152) 评论(0) 编辑

2013年8月21日

摘要: 在安装Hbase之前,需要有hadoop的运行环境,关于hadoop的安装过程,请查看我之前的blog:hadoop安装笔记;或者另一个博主的超详细文章http://weixiaolu.iteye.com/blog/1401931HBase在HDFS上运行,还需要Zookeeper的依赖,所以首先要进行Zookeeper的安装Zookeeper安装 首先在http://www.apache.org/dyn/closer.cgi/zookeeper/选择自己需要的Zookeeper版本进行下载,然后解压到目标目录中。比如我将Zookeeper放到/usr/local/zookeeper下。 ..阅读全文
posted @ 2013-08-21 09:19 aho 阅读(179) 评论(0) 编辑

2013年8月20日

摘要: 方法参考于http://blog.sina.com.cn/s/blog_81631744010137iy.html, 多谢博主分享,此处仅作为个人学习笔记。首先将*.tar.gz解压tar -xzvf *.tar.gz假设得到的文件夹为java将其移动到/usr/中sudo mv java /usr/local然后设置环境变量:sudo vim /etc/profile打开文件在结尾处输入:export JAVA_HOME=/usr/local/javaexport JRE_HOME=/usr/local/java/jre export CLASSPATH=.:$JAVA_HOME/lib:$阅读全文
posted @ 2013-08-20 11:12 aho 阅读(521) 评论(0) 编辑

2013年8月13日

摘要: 原理介绍:consistent hashing原理介绍来自博客:http://blog.csdn.net/sparkliang/article/details/5279393, 多谢博主的分享consistent hashing算法早在1997年就在论文Consistent hashing and random trees中被提出,目前在cache系统中应用越来越广泛;1基本场景比如你有N个cache服务器(后面简称cache),那么如何将一个对象object映射到N个cache上呢,你很可能会采用类似下面的通用方法计算object的hash值,然后均匀的映射到到N个cache;hash(ob阅读全文
posted @ 2013-08-13 11:35 aho 阅读(128) 评论(0) 编辑

2012年12月7日

摘要: 运行环境 centos 5.6 hadoop hivesqoop是让hadoop技术支持的clouder公司开发的一个在关系数据库和hdfs,hive之间数据导入导出的一个工具,手册地址:http://sqoop.apache.org/docs/1.4.1-incubating/SqoopUserGuide.html在使用过程中可能遇到的问题:sqoop依赖zookeeper,所以必须配置ZOOKEEPER_HOME到环境变量中。sqoop-1.2.0-CDH3B4依赖hadoop-core-0.20.2-CDH3B4.jar,所以你需要下载hadoop-0.20.2-CDH3B4.tar.g阅读全文
posted @ 2012-12-07 15:26 aho 阅读(1319) 评论(0) 编辑

2012年11月19日

摘要: 本文为转载, 来自:http://www.cnblogs.com/showna/articles/1013399.html多谢楼主秀纳的分享。Gcc的编译流程分为了四个步骤,分别为:预处理(Pre-Processing)编译(Compiling)汇编(Assembling)链接(Linking)下面就具体来查看一下Gcc是如何完成四个步骤的。首先,有以下hello.c源代码#include<stdio.h>int main(){ printf("Hello! This is our embedded world!\n"); return 0;}(1)预处理阶段在阅读全文
posted @ 2012-11-19 09:11 aho 阅读(21) 评论(0) 编辑

2012年9月21日

摘要: 问题描述:我们把只包含因子2、3和5的数成为丑数(Ugly Number)。例如6、8都是丑数,但是14不是。我们习惯将1作为第一个丑数。求从小到大顺序的100个丑数。问题解答:穷举,暴力的方法总是可以解决问题的,只是需要你的耐心等待;维持3个下标,表示前面的数据已分别做过*2、*3、*5操作(下标初始化为1),维持一个向后移动的结果下标。这样我们每次找出三个下标的数分别*2、*3、*5,取出最小的数,和当前结果的最大数比较,如果大于,放入结果;否则只是*x的下标移动。下面举例说明: index2 index3 index5 res res[index_x] * ...阅读全文
posted @ 2012-09-21 12:27 aho 阅读(55) 评论(0) 编辑
摘要: 转自:wuzhekai的专栏 http://blog.csdn.net/wuzhekai1985/article/details/6704794 mark 以供自己复习问题描述:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。思路:如果只有一个数字只出现一次,而其他都出现两次,则直接将所有数字做一次异或运算即可,因为相等的数字异或一下结果为0。如果有两个数字只出现一 次,而其他数字出现了两次。该怎么办呢?《编程之美》一书提供了一种方法,即先将所有数字做一次异或运算,得到一个数字,然后以该数字的某非0位作阅读全文
posted @ 2012-09-21 10:35 aho 阅读(32) 评论(0) 编辑

2012年9月20日

摘要: 问题描述:给你一个链表的表头指针head,如何判断链表中是否有环?扩展问题:如果有环,请找出环的入口点。问题解答:对于第一个问题,有一个很普遍的作法,就是使用快慢指针,一个指针一次走一步,另一个指针一次走两步,看是否相遇,便可以很容易得到结果。细节不再赘述。需要仔细分析的是第二个问题,如下图所示假设我们的链表形状是途中所示,那么可以看出块慢指针在节点3处相遇,我们假设1到2之间的距离是x, 2到3之间的距离是y, 3到2之间的距离是z,那么我们根据快指针每次走两步的特性可以得出下列公式:2*(x + y) = x + y + k*(y + z) 其中k为1 , 2……由上面公式我们又可以推到出阅读全文
posted @ 2012-09-20 16:36 aho 阅读(38) 评论(2) 编辑

2012年9月15日

摘要: 转自zf_zhouf的博客关于InnoDB架构的文章,写的很详细,给自己mark下,以后需要还能再翻出来看看。一共5篇,下面的链接只是第一篇http://blog.163.com/zf_zhouf/blog/static/20009802620113795850255/阅读全文
posted @ 2012-09-15 17:24 aho 阅读(46) 评论(0) 编辑

2012年9月10日

摘要: 准备知识Merkle tree[1] 上图(来自Wikipedia[1])给出了一个二进制的哈希树(二叉哈希树, 较常用的tiger hash tree也是这个形式). 据称哈希树经常应用在一些分布式系统或者分布式存储中的反熵机制(Anti-entropy),也有称做去熵的.这些应用包括 Amazon的Dynamo 还有Apache的Cassandra数据库, 通过去熵可以去做到各个不同节点的同步, 即保持各个节点的信息都是同步最新. 哈希树的特点很鲜明: 叶子节点存储的是数据文件,而非叶子节点存储的是其子节点的哈希值(称为MessageDigest) 这些非叶子节点的Hash被称作路径哈希值阅读全文
posted @ 2012-09-10 15:53 aho 阅读(120) 评论(0) 编辑

2012年9月6日

摘要: 概述: 在很多的MySQL检索应用中,为了提高热点查询的效率,往往会选择在MySQL数据库前边加上一层Memcached做查询缓存。这样在中间查询层,用户程序需要自己先去Memcached里面查询一遍自己需要的key是否已被缓存,若没有,则再去MySQL数据库中进行相应的查询。在MySQL5.6版本后,InnoDB存储引擎开始集成Memcached: 上图中的SQL到Memcached的add、incr等操作完全在MySQL server端进行。不需要人为的进行操作解析,所带来的好处包括:自动持久话。存储引擎自动做Memcached到数据文件间的持久化,所以一些add、incr操作也可以直接对阅读全文
posted @ 2012-09-06 18:03 aho 阅读(152) 评论(0) 编辑

2012年8月27日

摘要: 问题描述:以下程序本来想输出20个“-”,但是出错了,请帮其改正: #include <iostream> using namespace std; int main() { int n = 20; for (int i = 0; i < n; i--) { cout << ("-"); } cout << endl; return 0; }解答:1. i < n --> -i < n;2. i-- --> n--;3. i < n --> i + n;阅读全文
posted @ 2012-08-27 15:16 aho 阅读(18) 评论(1) 编辑

2012年8月18日

摘要: 函数指针的声明方法为: 函数类型 (标志符指针变量名) (形参列表); 例: int func(int x); /* 声明一个函数 */ int (*f) (int x); /* 声明一个函数指针 */ f=func; /* 将func函数的首地址赋给指针f */ 赋值时函数func不带括号,也不带参数,由于func代表函数的首地址,因此经过赋值以后,指针f就指向函数func(x)的代码的首地址。 注2:函数括号中的形参可有可无,视情况而定。完整的例子1: #include <iostream> using namespace std; int max(int a, i...阅读全文
posted @ 2012-08-18 15:46 aho 阅读(21) 评论(0) 编辑

2012年7月19日

摘要: (以下内容为我个人的安装过程,大家可根据自身需要修改安装路径等内容,如有疑问欢迎交流)一、JDK安装:1、获得程序包 jdk-6u16-dlj-linux-i586.binhttp://java.sun.com/javase/downloads/index.jsp2、解压安装$./jdk-6u16-dlj-linux-i586.bin读完协议最后输入yes,程序包开始解压。3、移到目标目录$mvjdk-6u16/usr/local/src/jdk4、设置环境变量vi/etc/profile//在profile文件最后添加#setJavaenvironmentexportJAVA_HOME=/u阅读全文
posted @ 2012-07-19 10:20 aho 阅读(85) 评论(0) 编辑

2012年7月9日

摘要: 问题描述: 求解一些有位置标记的线段中最高重合度,比如input:2 -> 5, 3 -> 9, 5 -> 11, 10 -> 15 output:3算法思想描述:可以使用count变量来记录当前进入的线段数,而是用max来记录最大进入的线段数;每当进入一个线段时,count+1,此时比较max值,看是否需要修改;出线段范围时,count-1.以上面的输入为例(同一个数字重合先算进入,再算离开):运算过程如下表:countmaxinit002113225335(出)23913102311131503所以最后的结果是:3阅读全文
posted @ 2012-07-09 16:55 aho 阅读(49) 评论(0) 编辑
仅列出标题  下一页

导航

公告

统计