Blog信息 |
blog名称: 日志总数:1304 评论数量:2242 留言数量:5 访问次数:7590839 建立时间:2006年5月29日 |

| |
[Apache(jakarta)]Nutch version 0.8 安装向导 软件技术
lhwork 发表于 2006/12/13 16:04:24 |
1、必要的条件
1.1 Java
1.4或1.4以上版本。操作系统推荐用Linux(Sun或IBM的都可以)。记得在环境变量中设置变量NUTCH_JAVA_HOME=你的虚拟机地
址,例如,本人将jdk1.5安装在c:\jdk1.5文件夹下,所以本人的设置为NUTCH_JAVA_HOME=c:\jdk1.5(此为win32
环境下的设置方法)。
1.2 服务器端推荐使用Apache’s Tomcat 4.x或该版本以上的Tomcat。
1.3 当要在win32安装Nutch时,请安装cygwin软件,以提供Linux的shell支持。
1.4 安装Nutch需要消耗G字节的磁盘空间,高速的连接并要花费一个小时左右的时间等等。
2、从这开始
2.1 首先,你必须获得Nutch源码的一个拷贝。你可以从网址:http://lucene. |
|
[Apache(jakarta)]Nutch 初体验之二(转) 软件技术
lhwork 发表于 2006/12/13 15:57:27 |
Nutch 初体验之二----转自DBA notes
地址:http://rayspace.bokee.com/5425910.html
前几天介绍了 Nutch 的基本信息 以及 如何使用 Nutch 进行 Intranet crawling。下面进行一下全网的爬行(Whole-web Crawling) 的操作测试。
Nutch 的数据包括两种类型:
* Web 数据库。包含所有Nutch可以辨别的页面,以及这些页面间的链接信息。
* 段(segment)集合. 每个 segment 是作为一个单元(unit)被获取并索引的页面集合。Segment 数据包括如下类型:
o fetchlist:指定待 |
|
[Apache(jakarta)]Nutch 初体验(转) 软件技术
lhwork 发表于 2006/12/13 15:56:30 |
Nutch 初体验 ----转自DBA notes 地址:http://rayspace.bokee.com/5425900.html
前几天看到卢亮的 Larbin 一种高效的搜索引擎爬虫工具 一文提到
Nutch,很是感兴趣,但一直没有时间进行测试研究。趁着假期,先测试一下看看。用搜索引擎查找了一下,发现中文技术社区对 Larbin
的关注要远远大于 Nutch 。只有一年多前何东在他的竹笋炒肉中对 Nutch 进行了一下介绍。
Nutch vs Lucene
Lucene 不是完整的应用程序,而是一个用于实现全文检索的软件库。
Nutch 是一个应用程序,可以以 Lucene 为基础实现搜索引擎应用。
Nutch vs GRUB
GRUB 是一个分布式搜索引擎(参考)。用户只能得到客户端工具(只有客户端是开 |
|
[Apache(jakarta)]Crawl the Nutch -- Map Reduce 软件技术
lhwork 发表于 2006/12/13 15:34:47 |
Crawl the Nutch -- Map Reduce 初见于Google Lab的Paper, http://labs.google.com/papers/mapreduce.html,
论文中表明在有大量集群支撑的情况下,可以快速的在海量文档中进行数据处理。现在你有一堆数据,你需要按记录修改、查询、插入和删除,一种办法是你为这些
记录建立索引,比如放入数据库,还有一种办法就是--MapReduce。这种处理方式实际上是在数据存放的时候不建立索引,等实际处理数据的时候再将这
些数据读入内存进行排序,并可以用Partitioner将数据分在不同的机器上同时进行处理,因此可以方便的实现集群计算,我猜想在一台机器上存放的数
据容量以能够全部装进内存为限。
MapReduce把对数据记录的所有操作都归结两个步骤--M |
|
[Apache(jakarta)]Hadoop系列-fs包之代码实现 软件技术
lhwork 发表于 2006/12/13 15:33:06 |
在此包中,最重要的是FileSystem抽象类。它定义了文件系统中涉及的一些基本操作,如:create,rename,delete...另外包括
一些分布式文件系统具有的操作:copyFromLocalFile, copyToLocalFile,...类似于Ftp中put和get操作。
LocalFileSystem和DistributedFileSystem,继承于此类,分别实现了本地文件系统和分布式文件系统。
了解了最重要的类之后,看一看它的一系列stream类:
* FSOutputStream
在原有OutputStream基础之上添加了获得文件指针偏移量的getPos方法。可以通过FileSystem的
createRaw获得它的实例。这里存在一个疑问,这个扩展的getPos方法在fs包中没有被使用。如果在其余包中同样没有被使用,那么扩展就显得多
余。
* FSInputStream在原有InputStream基础之上同样添加了getPos方法,同时可 |
|
[Apache(jakarta)]Hadoop系列-IPC之代码实现 软件技术
lhwork 发表于 2006/12/13 15:32:41 |
* 整体结构:在IPC包中,最重要的3个类是Server,Client和RPC,它们具有层次化的结构。
1. RPC
类是对Server、Client的具体化。在RPC类中规定,客户程序发出请求调用时,参数类型必须是Invocation;从服务器返回的值类型必须
是ObjectWritable。为了加强理解,可以查看测试类TestIPC。在那里,规定的参数类型与返回值类型都是LongWritable。
2. RPC
类是对Server、Client的包装,简化用户的使用。如果一个类需充当服务器,只需通过RPC类的静态方法getServer获得Server实
例,然后start。同时此类提供协议接口的实现。如果一个类充当客户端,可以通过getProxy或者waitForProxy获得一个实现了协议接口
的proxy object,与服务器端交互。为了加强理解,可以查看测试类TestRPC,在那里,实现的协议接口为TestProtocol。
|
|
[Apache(jakarta)]Hadoop Inside (3) 软件技术
lhwork 发表于 2006/12/13 15:30:23 |
之前的MapReduce Demo只能在一台机器上运行,现在是时候让它分布式运行了。在对MapReduce的运行流程和FileSystem进行了简单研究之后,现在尝试从配置着手,看看怎样让Hadoop在两台机器上面同时运行MapReduce。
首先看回这里
String tracker = conf.get("mapred.job.tracker", "local");
if ("local".equals(tracker)) {
this.jobSubmitClient = new LocalJobRunner(conf);
} else {
this.jobSubmitClient = (JobSubmission |
|
[Apache(jakarta)]Hadoop Inside (2) 软件技术
lhwork 发表于 2006/12/13 15:29:50 |
Hadoop 的文件系统,最重要是 FileSystem 类,以及它的两个子类 LocalFileSystem 和 DistributedFileSystem。 这里先分析 FileSystem。
抽象类 FileSystem,提高了一系列对文件/目录操作的接口,还有一些辅助方法。分别说明一下:
1. open,create,delete,rename等,非abstract,部分返回 FSDataOutputStream,作为流进行处理。
2. openRaw,createRaw,renameRaw,deleteRaw等,abstract,部分返回 FSInputStream,可以随机访问。
3. lock,release,copyFromLocalFile,moveFromLocalFile,copyToLocalFile 等abstract method,提供便利作用,从方法命名可以看出作用。
特别说明,Hadoop的文件系统,每个文件都有一个checksum,一个crc文件。因此FileSystem里面的部分代码对此进行了 |
|
[Apache(jakarta)]Distributed Hadoop Execution 软件技术
lhwork 发表于 2006/12/13 15:29:08 |
Hadoop 带有一个ant的build脚本,修改target
compile-examples中的include路径,设为自己的demo路径。然后运行 ant
examples,会在build脚本目录下面生成一个build目录,里面已经包含了构建好的jar包等。
建一个JobServerMain,内容为
public static void main(String[] args) throws IOException, InterruptedException
{
JobTracker.main(new String[]{});
}
用于启动JobTracker。再建一个TaskServerMain,内容
public static void main(String[] args) throws IOException< |
|
|