新聞中心
本節(jié)向大家介紹一下有關(guān)Hadoop0.20.2方面的知識,遷移到Hadoop0.20.2后的一些感想,相信通過本節(jié)的介紹大家對Hadoop0.20.2有更深刻的認(rèn)識,讓我們一起來關(guān)注Hadoop0.20.2吧。
------------------------------------------------

1.問題:
離Hadoop0.20.2的發(fā)布也有三個月了,平時(shí)一直在用http://www.cloudera.com/提供的一個Hadoop版本,它也是基于Hadoop0.18.3開發(fā)的,因?yàn)樗囊粋€比較穩(wěn)定的版本。但是最近在用hypertable0.9.2.7的時(shí)候發(fā)現(xiàn)我本地jni調(diào)用老是會出現(xiàn)HyperspaceCOMMalreadycommected,查了一下原因,是hyperspace的COMM被占用,連接出錯,網(wǎng)上找了一下,作者也說有這個問題,還說什么修改一下也不是很難??戳艘幌滤脑创a,是socket連接拋出來的,要改的話要修改hyperspace模塊的代碼,由于hyperspace底層是用oracle的berkeleydb的,對它也不是很熟悉,所以沒去改了,想直接升級到0.9.3.1,看它有沒有解決這個問題,但是讓我失望的是它還是沒有解決這個問題,到是在它的thrift端做了很多改動,而且把對hypertable表的TableSplit也加入了它的thrift服務(wù)端中,也正是我想要的,呵呵,這樣也可以繞過前面的hyperspace的問題,因?yàn)樗趖hrift的服務(wù)端只生成了一個HypertableClient,這樣就不會出現(xiàn)COMMconnected的問題了,而且對它的Cell也做了比較大的改動,用了***的Hadoop0.20.2。沒辦法,要升就一起升吧,Hadoop0.18.3->Hadoop0.20.2;hypertable0.9.2.7->hypertable0.9.3.1,原來的TableInputFomat和TableOutputFormat看來都要做修改了,于是就有了下面的這些感想。
2.Hadoop0.20.2的一些變化
新的版本不管從目錄結(jié)構(gòu)和API上都有了比較大的變化,不管從0.18到0.19,還是從0.19到0.20目錄結(jié)構(gòu)都發(fā)生了很大的變化,***感覺就是模塊化的意識越來越強(qiáng)了,而且看起來也更清晰了。
2.1目錄結(jié)構(gòu)的變化
主要有三個目錄,core,hdfs,mapred。
◆主要是把原來共用的功能都提取到了core中,其中有conf,fs,io,ipc,net,record等。還加入了類似于unix目錄的權(quán)限功能。
◆把hdfs單獨(dú)放入了一個目錄中,而且把hdfs的配置文件也提取了出來,叫hdfs-default.xml,其中hdfs目錄又分了protocol,提供了一些Client端的通訊協(xié)議,還有server和tools目錄,其中server目錄又分成了balancer,common,datanode,namenode,protocol,這里的protocol目錄中提供了DataNode和NameNode的通訊協(xié)議,還有DataNode之間的通訊協(xié)議等。
◆把mapred也獨(dú)立出來,而且也把mapred的配置文件也提取出來,放入了mapred-default.xml中,它也有兩個子目錄,一個是mapred,其中放了一些mapreduce的核心類,還有一些Deprecated的類,用于向后兼容,不過一般都不提倡用這些接口和類了。另一個目錄是mapreduce目錄,這里有一些對外的抽象類和接口,用于進(jìn)行根據(jù)自己的需要進(jìn)行擴(kuò)展,在這個目錄中有一個叫l(wèi)ib的目錄,它提供了一些框架提供的常用的input,output,map,reduce方法。
2.2API的變化
在Hadoop0.20.2中,API的變化也是很大的,主要把一些接口變成了抽象類,以此在提高可擴(kuò)展性,進(jìn)行了一些重構(gòu),變化還是滿大的。下面舉一個例子來說明這里的變化。
2.2.1Hadoop的一個example
這是Hadoop中的一個WordCount的例子,從中你可以發(fā)現(xiàn)Map和Reduce的接口變化,還有JobClient的變化。
3.Hypertable0.9.3.1的一些變化
主要感覺它的thrift的java客戶端變化很大。為了支持mapreduce,很多東西都集成到了thrift服務(wù)端。加入了MapReduceconnector,Hyperspace的replication,還有DUMPTABLE等。在它的thrift的客戶端中加入了InputFormat和OutputFormat,還有TableSplit,可以用來對Hypertable中的表進(jìn)行Key和Value對的讀取,還是很方便的。但是它沒有對TableSplit后的range_location進(jìn)行處理,只是用了“l(fā)ocalhost“來進(jìn)行Host的連接,不知道是為什么?
看來要在Hypertable中使用kfs還是要進(jìn)行源代碼的編譯還有kfs的動態(tài)庫。本節(jié)關(guān)于Hadoop0.20.2的相關(guān)內(nèi)容介紹到這里。
分享標(biāo)題:經(jīng)驗(yàn)總結(jié)遷移Hadoop0.20.2問題詳解
當(dāng)前地址:http://fisionsoft.com.cn/article/dhcjigg.html


咨詢
建站咨詢
