欢迎关注Hadoop、Spark、Flink、Hive、Hbase、Flume等大数据资料分享微信公共账号:iteblog_hadoop
  1. 文章总数:975
  2. 浏览总数:11,897,617
  3. 评论:3925
  4. 分类目录:105 个
  5. 注册用户数:6079
  6. 最后更新:2018年12月9日
过往记忆博客公众号iteblog_hadoop
欢迎关注微信公众号:
iteblog_hadoop
大数据技术博客公众号bigdata_ai
大数据猿:
bigdata_ai

 分类:算法

水塘抽样(Reservoir Sampling)问题

水塘抽样(Reservoir Sampling)问题
  在高德纳的计算机程序设计艺术中,有如下问题:可否在一未知大小的集合中,随机取出一元素?。或者是Google面试题: I have a linked list of numbers of length N. N is very large and I don’t know in advance the exact value of N. How can I most efficiently write a function that will return k completely random numbers from the list(中文简化的意思就是:在不知道文件总行

w397090770   3年前 (2015-11-09) 7339℃ 0评论13喜欢

Mahout项目已经实现的算法

Mahout项目已经实现的算法
  Mahout项目发展到了今天已经实现了许多的算法。下面列出Mahout项目主要的算法名称,供大家参考。一、协同过滤 Collaborative Filtering  1、基于用户的协同过滤 User-Based Collaborative Filtering  2、基于项目的协同过滤统 Item-Based Collaborative Filtering  3、交替最小二乘张量分解 Matrix Factorization with Alternating Least Squares  4、基

w397090770   4年前 (2014-09-23) 8144℃ 0评论16喜欢

Hadoop服务层授权控制

Hadoop服务层授权控制
  Hadoop在服务层进行了授权(Service Level Authorization)控制,这是一种机制可以保证客户和Hadoop特定的服务进行链接,比如说我们可以控制哪个用户/哪些组可以提交Mapreduce任务。所有的这些配置可以在$HADOOP_CONF_DIR/hadoop-policy.xml中进行配置。它是最基础的访问控制,优先于文件权限和mapred队列权限验证。可以看看下图[caption id="attach

w397090770   5年前 (2014-03-20) 7360℃ 0评论7喜欢

双重检查锁定及单例模式

双重检查锁定及单例模式
本文转载至 http://www.ibm.com/developerworks/cn/java/j-dcl.html  单例创建模式是一个通用的编程习语。和多线程一起使用时,必需使用某种类型的同步。在努力创建更有效的代码时,Java 程序员们创建了双重检查锁定习语,将其和单例创建模式一起使用,从而限制同步代码量。然而,由于一些不太常见的 Java 内存模型细节的原因,并不能

w397090770   5年前 (2013-10-18) 4251℃ 4评论6喜欢

几种常见的垃圾回收算法之引用计数算法

几种常见的垃圾回收算法之引用计数算法
  在C++中,对象所占的内存在程序结束运行之前一直被占用,需要我们明确释放;而在Java中,当没有对象引用指向原先分配给某个对象的内存时,该内存便成为垃圾。JVM的一个系统级线程会自动释放该内存块。  垃圾收集意味着程序不再需要的对象是"无用信息",这些信息将被丢弃。当一个对象不再被引用的时候,内存回收它

w397090770   5年前 (2013-10-14) 6241℃ 2评论7喜欢

如何快速判断给定整数是4的N次幂

如何快速判断给定整数是4的N次幂
  在《如何快速判断正整数是2的N次幂》文章中我们谈到如何快速的判断给定的正整数是否为2的N次幂,今天来谈谈如何快速地判断一个给定的正整数是否为4的N次幂。将4的幂次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1(1在奇数位置),并且1后面跟了偶数个0; 因此问题可以转化为判断1后面是否跟了

w397090770   5年前 (2013-09-30) 3630℃ 0评论5喜欢

比较安全的两整数平均值算法实现

比较安全的两整数平均值算法实现
  求两个整数的平均值这个问题相信大家都想过,大家肯定会很快的写出以下的算法:[code lang="JAVA"]public static int mean(int a, int b){ return (a + b) / 2;}或者public static int mean(int a, int b){ return (a + b) >> 1;}或者public static int mean(int a, int b){ return (a + b) >>> 1;}[/code]  不错,上面的函数是能够求出a和b的平

w397090770   5年前 (2013-09-18) 4501℃ 5评论3喜欢

如何快速判断正整数是2的N次幂

如何快速判断正整数是2的N次幂
  这个问题可能很多面试的人都遇到过,很多人可能想利用循环来判断,代码可能如下所示:[code lang="JAVA"] public static boolean isPowOfTwo(int n) { int temp = 0; for (int i = 1; ; i++) { temp = (int) Math.pow(2, i); if (temp >= n) break; } if (temp == n) return true; else return false; }[/code]

w397090770   5年前 (2013-09-17) 9076℃ 6评论12喜欢

Ubuntu使用技巧之Vim编辑器

Ubuntu使用技巧之Vim编辑器
  Vim是一个高级文本编辑器,它提供了Unix下编辑器 'Vi' 的功能并对其进行了完善。Vim经常被认为是 "程序员的编辑器",它在程序编写时非常有用,很多人认为它是一个完整的集成开发环境(IDE)。仅管如此,Vim并不只是程序员使用的。Vim可以用于多种文档编辑,从email排版到配置文件编写。  在Ubuntu下安装一个Vim编辑器可以用下面

w397090770   5年前 (2013-07-19) 4218℃ 2评论1喜欢

Guava学习之RangeMap

Guava学习之RangeMap
  在《Guava学习之RangeSet》中谈到了RangeSet的特点及其用法。今天要谈的的RangeMap和RangeSet有许多不一样的。   在Google Guava官方API上面可以得知:RangeMap是一种集合类型( collection type),它将不相交、且不为空的Range(key)映射给一个值(Value)。和RangeSet不一样,RangeMap不可以将相邻的区间合并,即使这个区间映射的值是一样的。

w397090770   5年前 (2013-07-18) 5444℃ 0评论4喜欢