您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何解決遷移Hadoop0.20.2問題,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
1.問題:
離Hadoop0.20.2的發布也有三個月了,平時一直在用http://www.cloudera.com/提供的一個Hadoop版本,它也是基于Hadoop0.18.3開發的,因為它的一個比較穩定的版本。但是最近在用hypertable0.9.2.7的時候發現我本地jni調用老是會出現HyperspaceCOMMalreadycommected,查了一下原因,是hyperspace的COMM被占用,連接出錯,網上找了一下,作者也說有這個問題,還說什么修改一下也不是很難。看了一下它的源代碼,是socket連接拋出來的,要改的話要修改hyperspace模塊的代碼,由于hyperspace底層是用oracle的berkeleydb的,對它也不是很熟悉,所以沒去改了,想直接升級到0.9.3.1,看它有沒有解決這個問題,但是讓我失望的是它還是沒有解決這個問題,到是在它的thrift端做了很多改動,而且把對hypertable表的TableSplit也加入了它的thrift服務端中,也正是我想要的,呵呵,這樣也可以繞過前面的hyperspace的問題,因為它在thrift的服務端只生成了一個HypertableClient,這樣就不會出現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的一些變化
新的版本不管從目錄結構和API上都有了比較大的變化,不管從0.18到0.19,還是從0.19到0.20目錄結構都發生了很大的變化,***感覺就是模塊化的意識越來越強了,而且看起來也更清晰了。
2.1目錄結構的變化
主要有三個目錄,core,hdfs,mapred。
◆主要是把原來共用的功能都提取到了core中,其中有conf,fs,io,ipc,net,record等。還加入了類似于unix目錄的權限功能。
◆把hdfs單獨放入了一個目錄中,而且把hdfs的配置文件也提取了出來,叫hdfs-default.xml,其中hdfs目錄又分了protocol,提供了一些Client端的通訊協議,還有server和tools目錄,其中server目錄又分成了balancer,common,datanode,namenode,protocol,這里的protocol目錄中提供了DataNode和NameNode的通訊協議,還有DataNode之間的通訊協議等。
◆把mapred也獨立出來,而且也把mapred的配置文件也提取出來,放入了mapred-default.xml中,它也有兩個子目錄,一個是mapred,其中放了一些mapreduce的核心類,還有一些Deprecated的類,用于向后兼容,不過一般都不提倡用這些接口和類了。另一個目錄是mapreduce目錄,這里有一些對外的抽象類和接口,用于進行根據自己的需要進行擴展,在這個目錄中有一個叫lib的目錄,它提供了一些框架提供的常用的input,output,map,reduce方法。
2.2API的變化
在Hadoop0.20.2中,API的變化也是很大的,主要把一些接口變成了抽象類,以此在提高可擴展性,進行了一些重構,變化還是滿大的。下面舉一個例子來說明這里的變化。
2.2.1Hadoop的一個example
這是Hadoop中的一個WordCount的例子,從中你可以發現Map和Reduce的接口變化,還有JobClient的變化。
3.Hypertable0.9.3.1的一些變化
主要感覺它的thrift的java客戶端變化很大。為了支持mapreduce,很多東西都集成到了thrift服務端。加入了MapReduceconnector,Hyperspace的replication,還有DUMPTABLE等。在它的thrift的客戶端中加入了InputFormat和OutputFormat,還有TableSplit,可以用來對Hypertable中的表進行Key和Value對的讀取,還是很方便的。但是它沒有對TableSplit后的range_location進行處理,只是用了“localhost“來進行Host的連接,不知道是為什么?
看來要在Hypertable中使用kfs還是要進行源代碼的編譯還有kfs的動態庫。
關于“如何解決遷移Hadoop0.20.2問題”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。