`
coderplay
  • 浏览: 571397 次
  • 性别: Icon_minigender_1
  • 来自: 广州杭州
社区版块
存档分类
最新评论
文章列表
这主要取决于NameNode的内存。因为DFS集群运行时,文件结构会保存在NameNode的内存当中。DFS每个文件信息和 块信息大约都要占150字节。所以如果复制因子为1,每个文件占一个block,  那么16G内存可以存 16 * (2^30) / 300 = 57 m , 即5.7 千万 个文件。
1. 我做数据挖掘的时候, 经常需要只对key分组,不必排序。目前把sort类给设为null能处理,但还是不尽人意。hadoop的机制是通过一个circle buffer 收集mapper输出的东西, 到了io.sort.mb * percent量的时候,就spill到disk, 而spill前使用排序,默认快排。 之后reduce下载spill的东西, 进行merge, merge的时候使用了堆排。我的想法是通过一个hash,每个hash的元素是一个链表,存放相同key的所有值。不过这样就没circle buffer了,用不到其对stream缓存的优点,这个要仔细想想。 2. map之后要么直 ...
  任务的申请、派发与执行 TaskTracker.run() 连接JobTracker TaskTracker 的启动过程会初始化一系列参数和服务(另有单独的一节介绍),然后尝试连接JobTracker 服务(即必须实现InterTrackerProtocol 接口),如果连接断开,则会循环尝试连接JobTracker ,并重新初始化所有成员和参数,此过程参见run() 方法。 TaskTracker.offerService() 主循环 如果连接JobTracker 服务成功,TaskTracker 就会调用offerService() 函数进入主执行循环中。这个循环会每隔10 ...
blog挺难贴图的,  我已经建了一个开源的项目, 用来存放文档. 请见:  http://code.google.com/p/hana 最近有些私人工作上的问题要占用时间,而且学校网络上不了国外网站了. 所以暂时不能更新. 以后会持续更新, 会放在svn里.
      hadoop的源码已经粗看过一遍,但每次想要了解细节的时候,还得去翻代码. 看了又是忘记. 所以我决定这些天把其中的重要的细节记下来。 声明: 1. 本文假设读者已经掌握一些MapReduce的基本概念,曾经编写过MapReduce程序。 2. ...
停止 比如我原来有10个节点的集群. 现在我想停掉2个,但数据不能丢失,只能让它们的数据转移到其它8台上.这道过程就是decommission. 我们不能直接把那2台停掉, 要在停掉之前把数据转移出去. 首先建立一个excludes文件.它是一个文本, 里面每行就是想要停掉的主机名.这里excludes 放在 $HADOOP_HOME下 例如 CS02 CS03 CS04 CS05 CS06 CS07 CS08 CS09 CS10 这样就表明要把9台机器给停了. 然后在conf/hadoop-site.xml添加这样的属性:   <property>             ...
本体论的概念, wiki http://en.wikipedia.org/wiki/Ontology_(information_science) 有点像专家系统, 应该是prolog的专长.     语义搜索 http://www.powerset.com http://www.hakia.com/ http://www.evri.com
接到mail, 公布出来省得再有提问 :)     首先, 我要实现的canopy和kmeans算法都是固定的,本来我不必要重新实现这些算法。我是暂时加入mahout-*.jar,因为里面的SparseVector,省得我再去实现一遍。 但我没用其中的算法, 因为我去年就发现mathout的实现有以下以个问题:   1. 它的CanopyMapper默认读取的是SparseVector.asFormatString之后的字符串形成的Text。我估计他们没有做过大数 集的测试,因为这个String占的空间非常大。SparseVector的每个元素由index和value组成, index是int ...
BTW:再次感叹下没有机器, 3.4G的语料,单机处理了10来个小时, 真是郁闷~~ 要是有N台机器多好啊.   在很多时候,特别是处理大数据的时候,我们希望一道MapReduce过程就可以解决几个问题。这样可以避免再次读取数据。比如:在做文本聚类/分类的时候,mapper读取语料,进行分词后,要同时算出每个词条(term)的term frequency以及它的document frequency. 前者对于每个词条来说其实是个向量, 它代表此词条在N篇文档各中的词频;而后者就是一个非负整数。 这时候就可以借助一种特殊的Writable类:GenericWritable.   用法是:继承这个类 ...
    题外话: 请关注http://code.google.com/p/redpoll     如果有人可以提供10台左右普通机器测就好了,学校实验室不给这么多,俺已经写了一篇paper, 程序啥都好了,就差数据, 真郁闷。         进展比较慢, 走了些弯路, 不过最终还 ...
1. 大规模文本自动聚类。 目前实验条件有限,只能做到G级别,语料采用搜狐的新闻。 用mapreduce并行化分词,建立VSM。采用经典的tf/idf。 然后并行化的canopy算法进行粗分 再用并行化的k-means,余弦距离度量进行最后的聚类 思路已经想得非常清楚了,接下来就是写代码,得出数据。 2. 大规模文本自动分类。 采用svm或naive bayes算法,前面几步已经想清,最后的并行化没想清楚。 3.这个项目无限期长, 因为首先要把奇异值分解(SVD)的并行搞定。 建立VSM之后,矩阵的维度会变得非常高,采用这种方法可以将算法复杂度降低几个数量级。 做完之后,会继续采用Apache ...
前些天国庆在家,没网上. 地址在 http://code.google.com/p/wordseeker/ 采用Apache协议,对商业友好.
1. 机器较多时, 编辑各个节点的/etc/hosts文件会很麻烦, 一般会架一个dns服务器进行解析. 2. 实现WritableComparable接口定义自己的写入方式时, 要注意hashCode()方法. 默认是使用Object.hashCode()这样的话, 会用对象的引用做为hashcode. Mapper会将相同key中hashCode()相同的聚在一起发送给Reducer. 比如Text的hashCode实现: public class Text implements WritableComparable { ... /** hash function */ public ...
1. 把libmmseg分词加了与lucene吻合的java接口,分词速度与c++版本接近, 已经和作者联系了.会在近期开源出去.     2. 用hadoop的mapreduce模型做了一个自动识别行业词的程序, 从算法上降低了计算量,而且分布式的话会更加快. 我用一份从51job, 智联招聘, 中华英才网等400多家招聘网站抓取的311万条职位语料做测试,5, 4元词词频在1000以上的正确率达95%以上,3元的差了点在60左右(没仔细统计,估计去掉功能字会好些), 2元的99%以上.  这个东东对做行业词库比较有用, 可以增加中文分词器的精度.  这段代码也会近期开源, 希望有大量语料的 ...
查找目录dir中后缀为*.c和*.h的文件   用正则 find dir -type f -name '*.[ch]'   不用正则 find dir -type f -name '*.c' -o '*.h'   在目录a下建立目录b,而目录a可能不存在 mkdir -p a/b   查看dir目录下面所有txt文件中含有"string"串的总行数  find dir -type f -name *.txt -exec grep "string" {} \; | wc -l     让所有执器同时执行同一道命令 建立好ssh, 设置环境变量SLAVES指定 ...
Global site tag (gtag.js) - Google Analytics