1. 問:在eclipse中的寫的代碼如何提交作業(yè)到JobTracker中的哪?
答:
1.1 在eclipse中調(diào)用的job.waitForCompletion(true)實(shí)際上執(zhí)行如下方法
connect();
info = jobClient.submitJobInternal(conf);
1.2 在connect()方法中,實(shí)際上創(chuàng)建了一個(gè)JobClient對(duì)象。
從上文可以看出,我把qom的對(duì)象構(gòu)造分成三部分,第一部分是type的構(gòu)造,這是通過typeinfo構(gòu)造一個(gè)typeimpl的哈希表,這是在main之前完成的,第二部分是class的構(gòu)造linux常用命令,這是在main中進(jìn)行的,這兩部分都是全局的,也就是只要編譯進(jìn)去了的qom對(duì)象都會(huì)調(diào)用,第三部分是object的構(gòu)造,這是構(gòu)造具體的對(duì)象實(shí)例,在命令行指定了對(duì)應(yīng)的設(shè)備時(shí),才會(huì)創(chuàng)建object。我們注意到每當(dāng)創(chuàng)建一個(gè)field對(duì)象時(shí),都會(huì)分配給該對(duì)象一個(gè)獨(dú)立的validate()方法,如果我們創(chuàng)建30個(gè)field對(duì)象,那么就要給這30對(duì)象分配30次validate()方法,其實(shí),validate()方法應(yīng)該是共享的,也就是說每個(gè)field對(duì)象都應(yīng)該調(diào)用用一個(gè)validate()方法。2)樁對(duì)象與遠(yuǎn)程對(duì)象具有相同的接口和方法列表,當(dāng)客戶端調(diào)用遠(yuǎn)程對(duì)象時(shí),實(shí)際上是由相應(yīng)的樁對(duì)象代理完成的。
JobSubmissionProtocol的實(shí)現(xiàn)類是JobTracker。
1.3 在jobClient.submitJobInternal(conf)方法中,調(diào)用了
JobSubmissionProtocol.submitJob(...),
即執(zhí)行的是JobTracker.submitJob(...)。
2. Hadoop的數(shù)據(jù)類型要求必須實(shí)現(xiàn)Writable接口。
3. java基本類型與Hadoop常見基本類型的對(duì)照
LongLongWritable
IntegerIntWritable
BooleanBooleanWritable
StringText
4. 問:java類型如何轉(zhuǎn)化為hadoop基本類型?
答:調(diào)用hadoop類型的構(gòu)造方法linux常用命令,或者調(diào)用set()方法。
new LongWritable(123L);
5. 問:hadoop基本類型如何轉(zhuǎn)化為java類型?
答:對(duì)于Text,需要調(diào)用toString()方法,其他類型調(diào)用get()方法。
-------------------------------------
作業(yè):
1.如果使用IdentityMapper、IdentityReducer作為自定義的MR類,
如果輸入文件是hello文件。問:輸出內(nèi)容是什么?
2.用真實(shí)數(shù)據(jù)計(jì)算手機(jī)流量。
四、HBase模型介紹
1. HBase(NoSQL)的數(shù)據(jù)模型
1.1 表(table),是存儲(chǔ)管理數(shù)據(jù)的。
1.2 行鍵(row key),類似于MySQL中的主鍵。
行鍵是HBase表天然自帶的。
1.3 列族(column family),列的集合。
HBase中列族是需要在定義表時(shí)指定的,列是在插入記錄時(shí)動(dòng)態(tài)增加的。
HBase表中的數(shù)據(jù),每個(gè)列族單獨(dú)一個(gè)文件。
1.4 時(shí)間戳(timestamp),列(也稱作標(biāo)簽、修飾符)的一個(gè)屬性。
行鍵和列確定的單元格,可以存儲(chǔ)多個(gè)數(shù)據(jù),每個(gè)數(shù)據(jù)含有時(shí)間戳屬性,數(shù)據(jù)具有版本特性。
如果不指定時(shí)間戳或者版本,默認(rèn)取最新的數(shù)據(jù)。
1.5 存儲(chǔ)的數(shù)據(jù)都是字節(jié)數(shù)組。
1.6 表中的數(shù)據(jù)是按照行鍵的順序物理存儲(chǔ)的。
2.HBase的物理模型
2.1 HBase是適合海量數(shù)據(jù)(如20PB)的秒級(jí)簡單查詢的數(shù)據(jù)庫。
2.2 HBase表中的記錄,按照行鍵進(jìn)行拆分, 拆分成一個(gè)個(gè)的region。
許多個(gè)region存儲(chǔ)在region server(單獨(dú)的物理機(jī)器)中的。
這樣,對(duì)表的操作轉(zhuǎn)化為對(duì)多臺(tái)region server的并行查詢。
3.HBase的體系結(jié)構(gòu)
3.1 HBase是主從式結(jié)構(gòu),HMaster、HRegionServer