BloomFilter–大规模数据处理利器(解决空查问题)

BloomFilter–大规模数据处理利器

Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法。通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合。

一. 实例

为了说明Bloom Filter存在的重要意义,举一个实例:

假设要你写一个网络爬虫程序(web crawler)。由于网络间的链接错综复杂,爬虫在网络间爬行很可能会形成“环”。为了避免形成“环”,就需要知道爬虫程序已经访问过那些URL。给一个URL,怎样知道爬虫程序是否已经访问过呢?稍微想想,就会有如下几种方案:

1. 将访问过的URL保存到[......]

Read more

Java提高性能的编程技巧

最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了。

下面是参考网络资源总结的一些在Java编程中尽可能要做到的一些地方。

1. 尽量在合适的场合使用单例
使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:
第一,控制资源的使用,通过线程同步来控制资源的并发访问;
第二,控制实例的产生,以达到节约资源的目的;
第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间[......]

Read more

Hbase安装指南(原创)

1.搭建基础环境

环境说明

  1.1JDK1.6.26

  1.2安装hadoop 2.4.0

  1.3修改系统hostname:

1)vi /etc/sysconfig/network

HOSTNAME=redhat6-xxx

2)  hostname redhat6-xxx

2.添加hbase用户

使用root用户完成以下操作:

  2.1 #groupadd hbase

  2.2 #useradd hbase -g hbase

  2.3 #passwd hbase

  2.4 生成登录密钥

切换hbase用户进行操作:

Shell代码[......]

Read more

ORACLE数值类型的性能优化技巧number,Int,float

那什么是数值类型?

比如常见的有 number,Int,float,最常用的是number类型

性能是如何考虑的呢?

使用时有哪些技巧呢?

这些是我们重点考虑的知识点.我们说精度越低,存储的空间越小,性能越高,其实空间节约对于性能的提高是非常有限的。 有时,我们还需要利用空间来换取时间呢,浮点类型还有更重要的因素来影响性能 ,那就是浮点运算机制跟number的运算机制是完全不同的 

记住:浮点的性能要高很多

 

那我们要从浮点的内部机制来说起 浮点数是一个有理数子集中一个数的数字表示,通常用于在计算机上近似一个任意的实数 ,浮点是依赖硬件设备[......]

Read more

oracle性能优化技巧:max(),min()的高效写法

1.索引的使用,会影响MAX和MIN的效率,

索引有个最重要的特性,就是索引键值是顺序的,

最大值,最小值,这些都涉及到排序的,

能利用索引的值是顺序的功能,来提高效率,

索引是用来迅速定位数据的一种技术,它也是一个Oracle的对象,

能利用索引值是顺序的特征,来提高效率,

同样,我们为了测试MIN,MAX的写法和性能,

我们还是要设置计时器,

set timing on

1.select min(created) from big_table;

2.select max(created) from big_table;

3.[......]

Read more

ORACLE性能技巧测试:NVL与DECODE

1.典型的SQL语句如下

select decode(a,1,’yyy’,2,’xxx’) from t;

转换过程化后的语句是

IF a=1 THEN

‘yyy’

ELSIF a=2 THEN

‘xxx’

end if;

DECODE可以用CASE语句来代替

第一种:

case i when 5 then five

when 6 then six

else  I just don’t know

end

第二种:

case  when i=5 then five

when i=6 then six[......]

Read more