2012年12月11日

摘要: hadoop的文件系统在程序代码里面用起来就如我们本地的文件系统一样,可以从里面读取文件,存入文件,等等。下面我们来演示一个从hdfs中的一个目录里,读取这个目录下所有文件的文件名的程序。 1 import org.apache.hadoop.conf.Configuration; 2 import org.apache.hadoop.fs.*; 3 import org.apache.hadoop.mapreduce.lib.input.FileSplit; 4 import org.junit.Test; 5 6 import java.io.IOException; 7 import . 阅读全文
posted @ 2012-12-11 10:27 brainworm 阅读(564) 评论(0) 推荐(0) 编辑

2012年12月6日

摘要: 1 package seven.ili.patent; 2 3 import java.io.IOException; 4 5 import org.apache.hadoop.conf.Configuration; 6 import org.apache.hadoop.conf.Configured; 7 import org.apache.hadoop.fs.Path; 8 import org.apache.hadoop.io.IntWritable; 9 import org.apache.hadoop.io.LongWritable;10 import org.apache.h... 阅读全文
posted @ 2012-12-06 18:10 brainworm 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 数据块:HDFS的块大小为64MB,HDFS上的文件被划分为多个分块,作为独立的存储单元。但与其他文件系统不同的是,HDFS中小于一个块大小的文件不会占据整个块的空间。一个文件的大小可以大于集群中任何一个磁盘的容量,其他所有块不需要存储在同一个磁盘上。用 hadoop fsck / -files -blocks 可以查看整个文件系统中各文件的块组成情况。Namenode 与 Datanode:HDFS的模式是“管理者-工作者”模式,namenode就是管理者,datanode就是工作者。namenode手里有文件系统的整个命名空间,也就相当于有一个“管理账簿”。而datanode就是真正的工作 阅读全文
posted @ 2012-12-06 16:11 brainworm 阅读(232) 评论(0) 推荐(0) 编辑

2012年12月4日

摘要: 网上搜索到的那个top K问题的解法,我觉得有些地方都没有讲明白。因为我们要找出top K, 那么就应该显式的指明the num of reduce tasks is one.不然我还真不好理解为什么可以得到top K的结果。这里顺便提及一下,一个map task就是一个进程。有几个map task就有几个中间文件,有几个reduce task就有几个最终输出文件。好了,这就好理解了,我们要找的top K 是指的全局的前K条数据,那么不管中间有几个map, reduce最终只能有一个reduce来汇总数据,输出top K。下面写出思路和代码:1. Mappers使用默认的mapper数据,一个 阅读全文
posted @ 2012-12-04 18:17 brainworm 阅读(9184) 评论(1) 推荐(0) 编辑
摘要: If you need to split your Map Reduce jar file in two jobs in order to get two different output file, one from each reducers of the two jobs.I mean that the first job has to produce an output file that will be the input for the second job in chain.I will provide some ways following to solve this prob 阅读全文
posted @ 2012-12-04 16:25 brainworm 阅读(770) 评论(0) 推荐(0) 编辑

2012年11月30日

摘要: 原文地址在这儿:http://blog.chinaunix.net/uid-26790551-id-3190813.html我们传统的程序基本都只在Windows或只在Linux下运行,Windows程序使用简体中文GB18030编码,Linux程序则只使用英文,多年以来这些程序运行起来都没有问题。近年来,随着程序的组件化,部分代码特别是公用组件都需要同时支持Windows及Linux平台,这样就出现了不同程度的编码问题,例如在编译时编译器报错,或者在运行时出现乱码。这些问题都和程序选用的字符编码不正确有关。本文简要地分析了C++的一些字符编码问题,并提供了建议的方案。受经验和时间的限制,有些 阅读全文
posted @ 2012-11-30 11:33 brainworm 阅读(518) 评论(0) 推荐(0) 编辑

2012年11月29日

摘要: 为什么有时候我们写的好好的map(k1, v1, k2, v2) ——> reduce(k2,list(v2), k3, v3)为什么就是出现Type mismatch in value from map这样的错误呢?为什么呢?对于大多数的mapreduce程序而言,都是基于模板来写的,很少有人从一个空白来写出mapreduce程序,没有这个必要。问题就出在你的这个模板上,你的模板上可能有这么一句:1 job.setCombinerClass(Reduce.class); 这样一来数据流就变了,变成了map(k1, v1, k2, v2) ——> combiner(k2,list( 阅读全文
posted @ 2012-11-29 16:45 brainworm 阅读(275) 评论(0) 推荐(0) 编辑

2012年11月28日

摘要: 可以参照这个网站:http://infolab.stanford.edu/~ullman/dscb.htmlhttp://www.cl500.net/implementing.html 阅读全文
posted @ 2012-11-28 12:09 brainworm 阅读(145) 评论(0) 推荐(0) 编辑

2012年11月22日

摘要: hadoop概述,讲清楚一些基础问题:http://www.blogjava.net/killme2008/archive/2008/06/05/206043.html http://os.51cto.com/art/201211/364374.htm推荐这个博客:http://www.cnblogs.com/forfuture1978/category/300670.html还有这个:http://www.coder4.com/archives/category/cloud_computingITEYE上的一个杭州牛人的博客:http://langyu.iteye.com/blog/154. 阅读全文
posted @ 2012-11-22 10:14 brainworm 阅读(195) 评论(0) 推荐(0) 编辑

2012年10月21日

摘要: 首先,我们从头开始说起。相信大家都学习过概率与数理统计这门课程,其中有一个贝叶斯公式,如下:也就是条件概率公式。可以由下面的式子推得:即,A与B同时发生的概率等于,B发生的概率乘以,在B发生的条件下A发生的概率。好了,前面引出这个公式,就是为了解决我们的拼写检查器的问题。既然是检查器,就得把我们写错的词给改正确。怎么改呢?我们仔细来分析一下这个过程:1. 首先,我们有一个词典,里面全包含的是正确的词。2. 输入一个词,若这个词在词典里面有,其本身为正确,不需要改;若这个词是错误的,问题一:我们应该把它改成哪个词呢?看下面的公式,在我们输入的word是Wrong的情况下,我们要把他改成正确的词, 阅读全文
posted @ 2012-10-21 20:22 brainworm 阅读(929) 评论(6) 推荐(0) 编辑

导航