內(nèi)容摘要:Lucene并不是一個(gè)應(yīng)用程序,而是提供了一個(gè)純Java的高性能全文索引引擎工具包,它可以方便的嵌入到各種實(shí)際應(yīng)用中實(shí)現(xiàn)全文搜索/索引功能。Nutch是一個(gè)應(yīng)用程序,是一個(gè)以Lucene為基礎(chǔ)實(shí)現(xiàn)的搜索引擎應(yīng)用,Lucene為Nutch提供了文本搜索和索引的API,Nutch不光有搜索的功能,還有數(shù)據(jù)抓取的功能。這里先大致介紹一下Hadoop. 其實(shí),Hadoop并不僅僅是一個(gè)用于存儲(chǔ)的分布式文件系統(tǒng),而是設(shè)計(jì)用來在由通用計(jì)算設(shè)備組成的大型集群上執(zhí)行分布式應(yīng)用的框架。 Hadoop包含兩個(gè)部分: 1、HDFS 即Hadoop Distributed File System (Hadoop分布式文件系統(tǒng)) HDFS具有高容錯(cuò)性,并且可以被部署在低價(jià)的硬件設(shè)備之上。HDFS很適合那些有大數(shù)據(jù)集的應(yīng)用,并且提供了對(duì)數(shù)據(jù)讀寫的高吞吐率。HDFS是一個(gè)master/slave的結(jié)構(gòu),就通常的部署來說,在master上只運(yùn)行一個(gè)Namenode,而在每一個(gè)slave上運(yùn)行一個(gè)Datanode。 下面是HDFS的結(jié)構(gòu): 從上面的圖中可以看出,Namenode,Datanode,Client之間的通信都是建立在TCP/IP的基礎(chǔ)之上的。當(dāng)Client要執(zhí)行一個(gè)寫入的操作的時(shí)候,命令不是馬上就發(fā)送到Namenode,Client首先在本機(jī)上臨時(shí)文件夾中緩存這些數(shù)據(jù),當(dāng)臨時(shí)文件夾中的數(shù)據(jù)塊達(dá)到了設(shè)定的Block的值(默認(rèn)是64M)時(shí),Client便會(huì)通知Namenode,Namenode便響應(yīng)Client的RPC請(qǐng)求,將文件名插入文件系統(tǒng)層次中并且在Datanode中找到一塊存放該數(shù)據(jù)的block,同時(shí)將該Datanode及對(duì)應(yīng)的數(shù)據(jù)塊信息告訴Client,Client便這些本地臨時(shí)文件夾中的數(shù)據(jù)塊寫入指定的數(shù)據(jù)節(jié)點(diǎn)。 HDFS采取了副本策略,其目的是為了提高系統(tǒng)的可靠性,可用性。HDFS的副本放置策略是三個(gè)副本,一個(gè)放在本節(jié)點(diǎn)上,一個(gè)放在同一機(jī)架中的另一個(gè)節(jié)點(diǎn)上,還有一個(gè)副本放在另一個(gè)不同的機(jī)架中的一個(gè)節(jié)點(diǎn)上。當(dāng)前版本的hadoop0.12.0中還沒有實(shí)現(xiàn),但是正在進(jìn)行中,相信不久就可以出來了。 2、MapReduce的實(shí)現(xiàn) 關(guān)于MapReduce的內(nèi)容,建議看看孟巖的這篇MapReduce:The Free Lunch Is Not Over! 好了,作為這個(gè)系列的第一篇就寫這么多了,我也是剛開始接觸Hadoop,下一篇就是講Hadoop的部署,談?wù)勎以诓渴餒adoop時(shí)遇到的問題,也給大家一個(gè)參考,少走點(diǎn)彎路。 文章來源:http://www.cnblogs.com/wayne1017/archive/2007/03/18/668768.html 作者:Alive 責(zé)編:豆豆技術(shù)應(yīng)用 |
|