`
文章列表
Hadoop0.20.2中无法使用MultipleOutputFormat,多文件输出这个方法。尽管0.19.2中的方法老的方法org.apache.hadoop.mapred.lib.MultipleOutputFormat还是可以继续在0.20.2中使用,但是org.apache.hadoop.mapred下的方法都是标记为“已过时”,在hadoop下个版本中可能就不能使用了。hadoop 0.20.2中是推荐使用Configuration替换JobConf,而这个老的方法org.apache.hadoop.mapred.lib.MultipleOutputFormat中还是使用的JobCo ...
在看老版的API时,发现旧的KeyValueTextInputFormat的作者基本上都是拿算法自己写,hadoop源码的很多地方都是不会拿现成的api来用,都是自己定义,这样做对性能的可控性是很强,这也折射出国外程序员跟国内程序员的差异,国内提倡拿来主义,国外可能更强调创新精神吧。   而我属于前者:拿来主义者   自定义的KeyValueInputFormat:   package cn.edu.xmu.dm.mpdemo.ioformat; import java.io.IOException; import org.apache.commons.loggin ...
  package cn.edu.xmu.dm.mpdemo.ioformat; import java.io.IOException; import java.net.URI; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IOUtils; import org.apache.hadoop.io.IntWritable; i ...
        单台服务器作为Namenode,当文件数量规模不断增大时,元数据的规模增长将是一个需要面对的问题,由于Namenode需要将所有元数据Load到内存中,单台Namenode可能会无法管理海量的元数据。另一个是HDFS中SequenceFile存储方式的讨论,利用Block压缩方式可以很好的解决空间压力。           HDFS中文件是按Block来存储的,默认一个Block的长度是128MB,当HDFS中存在大量小文件(长度小于128MB)时, 不仅占用大量存储空间,而且也占用大量的Namespace,给Namenode带来了内存压力.         Ya ...
http://www.linuxidc.com/Linux/2012-04/58294p2.htm
原文: http://www.cloudera.com/blog/2009/02/the-small-files-problem/   译文: HDFS处理大量小文件时的问题小文件指的是那些size比HDFS 的block size(默认64M)小的多的文件。如果在HDFS中存储小文件,那么在HDFS中肯定会含有许许多多这样的小文件( ...
     Java 把内存划分成两种:一种是栈内存,另一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,当在一段代码块定义一个变量时,Java 就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java 会自动释放掉为该变量分配的内存空间,该内存空间可以立即被另作它用。  堆内存用来存放由 new 创建的对象和数组,在堆中分配的内存,由 Java 虚拟机的自动垃圾回收器来管理。在堆中产生了一个数组或者对象之后,还可以在栈中定义一个特殊的变量,让栈中的这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量,以后就可以在程序 ...
Couple of things to be fixed in the code The old (o.a.h.mapred) and the new API (o.a.h.mapreduce) are not compatible, so they should not be mixed. import org.apache.hadoop.mapred.OutputCollector;import org.apache.hadoop.mapred.Reporter;import org.apache.hadoop.mapreduce.Job;import org.apache.h ...
最近在学习Marcello de Sales的TF-IDF示例的时候,需要用到MRUnit来对Map、Reduce、MapReduce做测试, 网上找了一个极其简单的教程:   介绍:        MRUnit是一款由Couldera公司开发的专门针对Hadoop中编写MapReduce单元测试的框架。 它可以用于0.18.x版本中的经典org.apache.hadoop.mapred.*的模型,也能在0.20.x版本org.apache.hadoop.mapreduce.*的新模型中使用。 安装:        在目前Hadoop的发行版中,并没有默认包含MR ...
  CCA <-c(3988, 4129, 2409, 7779) names(CCA) <- c("ionosphere", "pima", "bupa", "German") CCB <-c(3273, 3269, 2318, 5166) names(CCB) <- c("ionosphere", "pima", "bupa", "German") CC <- cbind(CCA, CCB) ...
Bloom filter的优点:   大小固定,增加更多元素到一个Bloom filter不会增加它的大小,仅增加误报的概率 冲突概率低,为了降低冲突概率,Bloom filter引入多个Hash函数,其误报率可近似为:1-exp(-kn/m) Java实现: import java.util.BitSet; public class BloomFilter { /* BitSet初始分配2^24个bit */ private static final int DEFAULT_SIZE = 1 << 25; /* 不同哈希函数的种子,一般应取质数 ...

BFS解小孩分油问题

    博客分类:
  • J2SE
广度优先搜索(Breadth-first Search)算法描述:   用N表示初始结点列表(N待扩展) 如果N为空集,则退出并给出失败信号 n取为N的第一个结点,并在N中删除结点n,放入已访问结点列表 如果n为目标结点,则退出并给出成功信号 否则,将n的子结点加到N的末尾,并返回2步 分油问题描述: 两个小孩去打油,一人带了一个一斤的空瓶,另一个带了一个七两、一个三两的空瓶。原计划各打一斤油,可是由于所带的钱不够,只好两人合打了一斤油,在回家的路上,二人想平分这一斤油,可是又没有其它工具。试仅用三个瓶子(一斤、七两、三两)精确地分出两个半斤油来。 分油问题 ...
算法:基于密度的局部离群点检测(lof算法) 输入:样本集合D,正整数K(用于计算第K距离) 输出:各样本点的局部离群点因子 过程: 计算每个对象与其他对象的欧几里得距离 对欧几里得距离进行排序,计算第k距离以及第K领域 计算每个对象的可达密度 计算每个对象的局部离群点因子 对每个点的局部离群点因子进行排序,输出。 Node.java: import java.util.ArrayList; import java.util.List; public class Node { private String nodeName; ...
DOM(JAXP Crimson解析器)          DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的。DOM以及广义的基于树的处理具有几个优点。首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改。它还可以在任何时候在树中上下导航,而不是像SAX那样是一次性的处理。DOM使用起来也要简单得多。  SAX 
传统的机器学习分类研究大多基于如下假设:(1)分类以最大正确率为目标;(2)所有的分类错误会带来相同的错误代价;(3)数据集中的各类样本数目基本均衡,即各类所含的样本数大致相当。   显然,这三个假设在现 ...
Global site tag (gtag.js) - Google Analytics