- 浏览: 580797 次
- 性别:
- 来自: 广州杭州
-
最新评论
-
bohc:
谢谢,搞了两天了,现在才算是找到问题所在,解决了。
文件在使用FileChannel.map后不能被删除(Windows上) -
zhang0000jun:
在jdk1.8中执行正好和楼主的结果相反,请指教
从Java视角理解CPU缓存(CPU Cache) -
在世界的中心呼喚愛:
forenroll 写道请问楼主的那个分析工具cachemis ...
从Java视角理解CPU缓存(CPU Cache) -
xgj1988:
我这里打出的结果是: 0 L1-dcache-load-mis ...
从Java视角理解CPU缓存(CPU Cache) -
thebye85:
请教下大神,为什么频繁的park会导致大量context sw ...
从Java视角理解CPU上下文切换(Context Switch)
文章列表
这主要取决于NameNode的内存。因为DFS集群运行时,文件结构会保存在NameNode的内存当中。DFS每个文件信息和 块信息大约都要占150字节。所以如果复制因子为1,每个文件占一个block, 那么16G内存可以存 16 * (2^30) / 300 = 57 m , 即5.7 千万 个文件。
- 2009-02-11 18:25
- 浏览 4372
- 评论(5)
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之后要么直 ...
- 2009-02-04 10:57
- 浏览 4461
- 评论(4)
任务的申请、派发与执行
TaskTracker.run()
连接JobTracker
TaskTracker
的启动过程会初始化一系列参数和服务(另有单独的一节介绍),然后尝试连接JobTracker
服务(即必须实现InterTrackerProtocol
接口),如果连接断开,则会循环尝试连接JobTracker
,并重新初始化所有成员和参数,此过程参见run()
方法。
TaskTracker.offerService()
主循环
如果连接JobTracker
服务成功,TaskTracker
就会调用offerService()
函数进入主执行循环中。这个循环会每隔10
...
blog挺难贴图的, 我已经建了一个开源的项目, 用来存放文档.
请见: http://code.google.com/p/hana
最近有些私人工作上的问题要占用时间,而且学校网络上不了国外网站了. 所以暂时不能更新.
以后会持续更新, 会放在svn里.
- 2008-12-26 15:37
- 浏览 4978
- 评论(2)
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> ...
- 2008-12-11 15:17
- 浏览 14973
- 评论(5)
本体论的概念, wiki
http://en.wikipedia.org/wiki/Ontology_(information_science)
有点像专家系统, 应该是prolog的专长.
语义搜索
http://www.powerset.com
http://www.hakia.com/
http://www.evri.com
- 2008-11-13 01:47
- 浏览 1862
- 评论(0)
接到mail, 公布出来省得再有提问 :)
首先, 我要实现的canopy和kmeans算法都是固定的,本来我不必要重新实现这些算法。我是暂时加入mahout-*.jar,因为里面的SparseVector,省得我再去实现一遍。
但我没用其中的算法, 因为我去年就发现mathout的实现有以下以个问题:
1.
它的CanopyMapper默认读取的是SparseVector.asFormatString之后的字符串形成的Text。我估计他们没有做过大数
集的测试,因为这个String占的空间非常大。SparseVector的每个元素由index和value组成, index是int ...
- 2008-11-07 19:03
- 浏览 3268
- 评论(2)
BTW:再次感叹下没有机器, 3.4G的语料,单机处理了10来个小时, 真是郁闷~~ 要是有N台机器多好啊.
在很多时候,特别是处理大数据的时候,我们希望一道MapReduce过程就可以解决几个问题。这样可以避免再次读取数据。比如:在做文本聚类/分类的时候,mapper读取语料,进行分词后,要同时算出每个词条(term)的term frequency以及它的document frequency. 前者对于每个词条来说其实是个向量, 它代表此词条在N篇文档各中的词频;而后者就是一个非负整数。 这时候就可以借助一种特殊的Writable类:GenericWritable.
用法是:继承这个类 ...
- 2008-10-30 04:46
- 浏览 11350
- 评论(6)
题外话: 请关注http://code.google.com/p/redpoll
如果有人可以提供10台左右普通机器测就好了,学校实验室不给这么多,俺已经写了一篇paper, 程序啥都好了,就差数据, 真郁闷。
进展比较慢, 走了些弯路, 不过最终还 ...
- 2008-10-27 03:04
- 浏览 6972
- 评论(5)
1. 大规模文本自动聚类。
目前实验条件有限,只能做到G级别,语料采用搜狐的新闻。
用mapreduce并行化分词,建立VSM。采用经典的tf/idf。
然后并行化的canopy算法进行粗分
再用并行化的k-means,余弦距离度量进行最后的聚类
思路已经想得非常清楚了,接下来就是写代码,得出数据。
2. 大规模文本自动分类。
采用svm或naive bayes算法,前面几步已经想清,最后的并行化没想清楚。
3.这个项目无限期长, 因为首先要把奇异值分解(SVD)的并行搞定。
建立VSM之后,矩阵的维度会变得非常高,采用这种方法可以将算法复杂度降低几个数量级。
做完之后,会继续采用Apache ...
- 2008-10-11 17:01
- 浏览 3060
- 评论(6)
前些天国庆在家,没网上. 地址在
http://code.google.com/p/wordseeker/
采用Apache协议,对商业友好.
- 2008-10-07 12:26
- 浏览 5011
- 评论(3)
1. 机器较多时, 编辑各个节点的/etc/hosts文件会很麻烦, 一般会架一个dns服务器进行解析.
2. 实现WritableComparable接口定义自己的写入方式时, 要注意hashCode()方法. 默认是使用Object.hashCode()这样的话, 会用对象的引用做为hashcode. Mapper会将相同key中hashCode()相同的聚在一起发送给Reducer.
比如Text的hashCode实现:
public class Text implements WritableComparable {
...
/** hash function */
public ...
- 2008-09-29 10:46
- 浏览 2735
- 评论(2)
1. 把libmmseg分词加了与lucene吻合的java接口,分词速度与c++版本接近, 已经和作者联系了.会在近期开源出去.
2. 用hadoop的mapreduce模型做了一个自动识别行业词的程序, 从算法上降低了计算量,而且分布式的话会更加快.
我用一份从51job, 智联招聘, 中华英才网等400多家招聘网站抓取的311万条职位语料做测试,5, 4元词词频在1000以上的正确率达95%以上,3元的差了点在60左右(没仔细统计,估计去掉功能字会好些), 2元的99%以上.
这个东东对做行业词库比较有用, 可以增加中文分词器的精度. 这段代码也会近期开源, 希望有大量语料的 ...
- 2008-09-29 10:11
- 浏览 2732
- 评论(4)
查找目录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指定 ...
- 2008-09-16 12:57
- 浏览 2399
- 评论(3)