大數(shù)據(jù)技術(shù)與應(yīng)用基礎(chǔ)項目教程課件HBase數(shù)據(jù)庫部署與應(yīng)用_第1頁
大數(shù)據(jù)技術(shù)與應(yīng)用基礎(chǔ)項目教程課件HBase數(shù)據(jù)庫部署與應(yīng)用_第2頁
大數(shù)據(jù)技術(shù)與應(yīng)用基礎(chǔ)項目教程課件HBase數(shù)據(jù)庫部署與應(yīng)用_第3頁
大數(shù)據(jù)技術(shù)與應(yīng)用基礎(chǔ)項目教程課件HBase數(shù)據(jù)庫部署與應(yīng)用_第4頁
大數(shù)據(jù)技術(shù)與應(yīng)用基礎(chǔ)項目教程課件HBase數(shù)據(jù)庫部署與應(yīng)用_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

主編:李俊杰謝志明副主編:肖政宏石慧謝高輝楊澤強出版社:《大數(shù)據(jù)技術(shù)與應(yīng)用》

——基礎(chǔ)項目教程項目五HBase數(shù)據(jù)庫部署與應(yīng)用任務(wù)一HBase部署任務(wù)二HBaseShell任務(wù)三HBase編程任務(wù)四MapReduce與HBase集成任務(wù)一HBase部署任務(wù)概述HBase是運行在Hadoop地分布式數(shù)據(jù)庫,需要在Hadoop集群環(huán)境上部署,需要配置Zookeeper,最后還需要對部署地HBase環(huán)境行檢驗測試。支撐知識 一,HBase簡介二,HBase基本概念三,HBase系統(tǒng)架構(gòu) 任務(wù)實施一,Master節(jié)點安裝軟件二,Master節(jié)點設(shè)置HBase參數(shù)三,Master節(jié)點設(shè)置Zookeeper參數(shù)四,Slave節(jié)點與sw-desktop客戶端安裝軟件五,Zookeeper服務(wù)六,驗證HBase服務(wù)任務(wù)一HBase部署

支撐知識一,HBase簡介HBase(HadoopDatabase)是一個高可靠,高能,面向列,可伸縮地分布式存儲系統(tǒng),利用HBase技術(shù)可在普通機器上搭建起大規(guī)模結(jié)構(gòu)化存儲集群。HBase不同于一般地關(guān)系數(shù)據(jù)庫,它是一個適合于非結(jié)構(gòu)化數(shù)據(jù)存儲地數(shù)據(jù)庫,另一個不同地是HBase基于列地而不是基于行地模式。HBase是GoogleBigtable地開源實現(xiàn),類似GoogleBigtable利用GFS作為其文件存儲系統(tǒng),HBase利用HadoopHDFS作為其文件存儲系統(tǒng);Google運行MapReduce來處理Bigtable地海量數(shù)據(jù),HBase同樣利用HadoopMapReduce來處理HBase地海量數(shù)據(jù);GoogleBigtable利用Chubby作為協(xié)同服務(wù),HBase利用Zookeeper作為對應(yīng)。任務(wù)一HBase部署HBase具有以下特點:(一)面向列:面向列(族)地存儲與權(quán)限控制,列(族)獨立檢索。(二)大表:表可以非常大,一個表可以有上億行,上百列。(三)稀疏:列族地列可以動態(tài)增加,一般情況下,列比較多,一行數(shù)據(jù)只有少數(shù)地列有值,而對于空值,HBase并不存儲。因此,表可以設(shè)計地非常稀疏。(四)非結(jié)構(gòu)化:HBase不是關(guān)系型數(shù)據(jù)庫,適合存儲非結(jié)構(gòu)化地數(shù)據(jù)。(五)數(shù)據(jù)多版本:每個單元地數(shù)據(jù)可以有多個版本,默認情況下版本號自動分配,是單元格插入時地時間戳。(六)數(shù)據(jù)類型單一:HBase地數(shù)據(jù)都是字符串,沒有其它類型。(七)數(shù)據(jù)操作簡單:HBase只有很簡單地插入,查詢,刪除,清空等操作,表與表之間是分離地,沒有復(fù)雜地表與表之間地關(guān)系。(八)線擴展:當存儲空間不足時,可以通過簡單地增加節(jié)點地方式行擴展。任務(wù)一HBase部署二,HBase基本概念(一)HBase邏輯視圖①,行鍵(RowKey)②,列族(CF,ColumnFamily)③,時間戳(TimeStamp)④,單元格(Cell)⑤,區(qū)域(Region)(二)概念視圖(三)物理視圖(四)HBase物理存儲任務(wù)一HBase部署三,HBase系統(tǒng)架構(gòu)HBaseClient使用HBase地遠程過程調(diào)用協(xié)議(RPC,RemoteProcedureCallProtocol)機制與HMaster與HRegionServer行通信,對于管理類操作,Client與HMaster行RPC;對于數(shù)據(jù)讀寫類操作,Client與HRegionServer行RPC。任務(wù)一HBase部署(一)ZookeeperQuorumZookeeperQuorum除了存儲了-ROOT-表地地址與HMaster地地址,HRegionServer也會把自己以Ephemeral方式注冊到Zookeeper,使得HMaster可以隨時感知到各個HRegionServer地健康狀態(tài)。此外,Zookeeper也避免了HMaster地單點問題。HMaster沒有單點問題,HBase可以啟動多個HMaster,通過Zookeeper地MasterElection機制保證總有一個Master運行,HMaster在功能上主要負責Table與Region地管理工作:①,管理用戶對Table地增,刪,改,查操作;②,管理HRegionServer地負載均衡,調(diào)整Region分布;③,在RegionSplit后,負責新Region地分配;④,在HRegionServer停機后,負責失效HRegionServer上地Regions遷移。任務(wù)一HBase部署(二)HRegionServerHRegionServer主要負責響應(yīng)用戶I/O請求,向HDFS文件系統(tǒng)讀寫數(shù)據(jù),是HBase最核心地模塊。HRegionServer內(nèi)部管理了一系列HRegion對象,每個HRegion對應(yīng)了Table地一個Region,HRegion由多個HStore組成。每個HStore對應(yīng)了Table地一個ColumnFamily地存儲,可以看出每個ColumnFamily其實就是一個集地存儲單元,因此最好將具備同IO特地column放在一個ColumnFamily,這樣最高效。任務(wù)一HBase部署(三)HStoreHStore存儲是HBase存儲地核心,由兩部分組成,一部分是MemStore,一部分是StoreFiles。MemStore是SortedMemoryBuffer,用戶寫入地數(shù)據(jù)首先會放入MemStore,當MemStore滿了以后會刷新成一個StoreFile(底層實現(xiàn)是HFile),當StoreFile文件數(shù)量增長到一定閾值,會觸發(fā)pact合并操作,將多個StoreFiles合并成一個StoreFile,合并過程會行版本合并與數(shù)據(jù)刪除,因此可以看出HBase其實只有增加數(shù)據(jù),所有地更新與刪除操作都是在后續(xù)地pact過程行地,這使得用戶地寫操作只要入內(nèi)存就可以立即返回,保證了HBaseI/O地高能。當StoreFilespact后,會逐步形成越來越大地StoreFile,當單個StoreFile大小超過一定閾值后,會觸發(fā)Split操作,同時把當前RegionSplit成二個Region,父Region會下線,新Split出地二個孩子Region會被HMaster分配到相應(yīng)地HRegionServer上,使得原先一個Region地壓力得以分流到二個Region上。任務(wù)一HBase部署(四)CatalogTableHBase內(nèi)部保留名為-ROOT-與.META.地特殊目錄表(CatalogTble),如圖五-六所示。它們維護著當前集群上所有區(qū)域地列表,狀態(tài)與位置。-ROOT-表包含.META.表地區(qū)域列表。.META.包含所有用戶空間區(qū)域(user-spaceregion)地列表。表地項使用區(qū)域名作為鍵。區(qū)域名由所屬地表名,區(qū)域地啟始行,區(qū)域地創(chuàng)建時間以及對其整理行地MD五哈希值(即對表名,起始行,創(chuàng)建時間戳行哈希后地結(jié)果)組成。任務(wù)一HBase部署四,Zookeeper(一)Zookeeper簡介ZooKeeper是一個分布式地,開放源碼地分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Google地Chubby一個開源地實現(xiàn),是Hadoop與HBase地重要組件。它是一個為分布式應(yīng)用提供一致服務(wù)地軟件,提供地功能包括:配置維護,域名服務(wù),分布式同步,組服務(wù)等。ZooKeeper地目地就是封裝好復(fù)雜易出錯地關(guān)鍵服務(wù),將簡單易用地接口與能高效,功能穩(wěn)定地系統(tǒng)提供給用戶。它包含一個簡單地原語集,分布式應(yīng)用程序可以基于它實現(xiàn)同步服務(wù),配置維護與命名服務(wù)等。任務(wù)一HBase部署(二)Zookeeper地工作原理Zookeeper地核心是原子廣播,這個機制保證了各個Server之間地同步。實現(xiàn)這個機制地協(xié)議叫做Zab協(xié)議。Zab協(xié)議有兩種模式,它們分別是恢復(fù)模式(選主)與廣播模式(同步)。當服務(wù)啟動或者在領(lǐng)導者崩潰后,Zab就入了恢復(fù)模式,當領(lǐng)導者被選舉出來,且大多數(shù)Server完成了與Leader地狀態(tài)同步以后,恢復(fù)模式就結(jié)束了。狀態(tài)同步保證了Leader與Server具有相同地系統(tǒng)狀態(tài)。為了保證事務(wù)地順序一致,zookeeper采用了遞增地事務(wù)id號(zxid)來標識事務(wù)。所有地提議(proposal)都在被提出地時候加上了zxid。實現(xiàn)zxid是一個六四位地數(shù)字,它高三二位是epoch用來標識leader關(guān)系是否改變,每次一個Leader被選出來,它都會有一個新地epoch,標識當前屬于那個Leader地統(tǒng)治時期。低三二位用于遞增計數(shù)。任務(wù)一HBase部署每個Server在工作過程有三種狀態(tài):①,LOOKING:當前Server不知道leader是誰,正在搜尋;②,LEADING:當前Server即為選舉出來地leader;③,FOLLOWING:leader已經(jīng)選舉出來,當前Server與之同。當Leader崩潰或者leader失去大多數(shù)地Follower,這時候zk入恢復(fù)模式,恢復(fù)模式需要重新選舉出一個新地leader,讓所有地Server都恢復(fù)到一個正確地狀態(tài)。Zk地選舉算法有兩種:一種是基于basicpaxos實現(xiàn)地,另外一種是基于fastpaxos算法實現(xiàn)地。系統(tǒng)默認地選舉算法為fastpaxos。Zookeeper地角色主要有以下三類任務(wù)一HBase部署Zookeeper地角色主要有以下三類:(一)領(lǐng)導者(Leader):領(lǐng)導者負責行投票地發(fā)起與決議,更新系統(tǒng)狀態(tài)。(二)學者(Learner)包括跟隨者與觀察者。跟隨者(Follower):Follower用于接收客戶請求并向客戶端返回結(jié)果,在選擇Leader參與投票。觀察者(Observer):Observer可以接收端連接,將寫請求轉(zhuǎn)發(fā)給Leader節(jié)點,但Observer不參與投票過程,只同步Leader地狀態(tài)。Observer地目地是為了擴展系統(tǒng),提高讀取速度。(三)客戶端(Client):請求發(fā)起方。任務(wù)一HBase部署(三)Zookeeper在HBase地作用①,通過選舉,保證任何時候,集群只有一個master,Master與RegionServers啟動時會向ZooKeeper注冊;②,存貯所有Region地尋址入口;③,實時監(jiān)控Regionserver地上線與下線信息,并實時通知給Master;④,存儲HBase地schema與table元數(shù)據(jù);⑤,默認情況下,HBase管理ZooKeeper實例,比如,啟動或者停止ZooKeeper;⑥,Zookeeper地引入使得Master不再是單點故障。任務(wù)一HBase部署

任務(wù)實施

一,Master節(jié)點安裝軟件(一)下載HBase與Zookeeper軟件包到/home/hadoop目錄下,下載網(wǎng)址如下:http://mirrors.aliyun./apache/hbase/一.二.四/hbase-一.二.四-bin.tar.gzhttp://mirrors.aliyun./apache/zookeeper/zookeeper-三.四.九/zookeeper-三.四.九.tar.gz(二)以用戶hadoop登錄Master節(jié)點,安裝HBase與Zookeeper軟件。hadoop@master:~$cd/opthadoop@master:/opt$sudotarxvzf/home/hadoop/hbase-一.二.四-bin.tar.gzhadoop@master:/opt$sudotarxvzf/home/hadoop/zookeeper-三.四.九.tar.gzhadoop@master:/opt$sudochown-Rhadoop:hadoophbase-一.二.四zookeeper-三.四.九任務(wù)一HBase部署

任務(wù)實施

二,Master節(jié)點設(shè)置HBase參數(shù)(一)修改hbase-env.sh文件hadoop@master:/opt$cd/opt/hbase-一.二.四/confhadoop@master:/opt/hbase-一.二.四/conf$vihbase-env.sh(二)修改hbase-site.xml文件hadoop@master:/opt/hbase-一.二.四/conf$vihbase-site.xml(三)修改regionservershadoop@master:/opt/hbase-一.二.四/conf$viregionservers任務(wù)一HBase部署

任務(wù)實施

三,Master節(jié)點設(shè)置Zookeeper參數(shù)(一)修改zoo.cfghadoop@master:/opt/zookeeper-三.四.九/conf$cd/opt/zookeeper-三.四.九/confhadoop@master:/opt/zookeeper-三.四.九/conf$vizoo.cfg(二)在dataDir指定地目錄下創(chuàng)建myid文件,并添加相應(yīng)內(nèi)容。hadoop@master:~$mkdir/opt/zookeeper-三.四.九/datahadoop@master:~$echo零>/opt/zookeeper-三.四.九/data/myid(三)拷貝zookeeper地配置文件zoo.cfg到Hbasehadoop@master:~$cp/opt/zookeeper-三.四.九/conf/zoo.cfg/opt/hbase-一.二.四/conf/任務(wù)一HBase部署

任務(wù)實施

四,Slave節(jié)點與sw-desktop客戶端安裝軟件(一)以用戶hadoop登錄slave一節(jié)點安裝軟件hadoop@slave一:~$sudoscp-rhadoop@master:/opt/hbase-一.二.四/opthadoop@slave一:~$sudoscp-rhadoop@master:/opt/zookeeper-三.四.九/opthadoop@slave一:~$sudochown-Rhadoop:hadoop/opt/hbase-一.二.四/opt/zookeeper-三.四.九hadoop@slave一:~$echo一>/opt/zookeeper-三.四.九/data/myid(二)以用戶hadoop登錄slave二節(jié)點安裝軟件方法同上(略)(三)以用戶hadoop登錄sw-desktop客戶機安裝軟件hadoop@sw-desktop:~$sudoscp-rhadoop@master:/opt/hbase-一.二.四/opthadoop@sw-desktop:~$sudoscp-rhadoop@master:/opt/zookeeper-三.四.九/opthadoop@sw-desktop:~$sudochown-Rhadoop:hadoop/opt/hbase-一.二.四/opt/zookeeper-三.四.九任務(wù)一HBase部署

任務(wù)實施

五,添加環(huán)境變量(一)各集群節(jié)點與客戶端添加環(huán)境變量hadoop@...:~$vi/home/hadoop/.profile添加內(nèi)容如下:exportHBASE_HOME=/opt/hbase-一.二.四exportZOOKEEPER_HOME=/opt/zookeeper-三.四.九exportPATH=$PATH:$HBASE_HOME/bin:$ZOOKEEPER_HOME/bin(二)各集群節(jié)點與客戶端環(huán)境變量生效hadoop@...:~$source/home/hadoop/.profile任務(wù)一HBase部署

任務(wù)實施

六,Zookeeper服務(wù)(一)啟動Zookeeper服務(wù)hadoop@master:~$zkServer.shstarthadoop@slave一:~$zkServer.shstarthadoop@slave二:~$zkServer.shstart(二)驗證Zookeeper服務(wù)hadoop@master:~$zkServer.shstatushadoop@slave一:~$zkServer.shstatushadoop@slave二:~$zkServer.shstatus任務(wù)一HBase部署

任務(wù)實施

七,驗證HBase服務(wù)一,啟動HBase服務(wù)hadoop@master:~$start-hbase.sh二,查看程master節(jié)點:hadoop@master:~$jps三六三三ResourceManager三一九一NameNode三四四八SecondaryNameNode四五六八HMaster四七六一HRegionServer四零七五QuorumPeerMain五零八四Jps三九三二JobHistoryServer任務(wù)一HBase部署

任務(wù)實施

slave一節(jié)點:hadoop@slave一:~$jps四零七二Jps三八八零HRegionServer三五九二QuorumPeerMain三四一七NodeManager三二五八DataNodeslave二節(jié)點:hadoop@slave二:~$jps三六四一QuorumPeerMain三四六六NodeManager三三零八DataNode三九一七HRegionServer四零九五Jps任務(wù)一HBase部署

任務(wù)實施

(三)打開瀏覽器輸入"http://master:一六零一零",查看HBaseMaster狀態(tài)。(四)打開瀏覽器輸入"http://master:一六零三零",查看RegionServer狀態(tài)。任務(wù)二HBaseShell任務(wù)概述HBaseShell提供操作HBase分布數(shù)據(jù)庫地命令,本任務(wù)需要創(chuàng)建一個score表,并按照表五-一HBase邏輯視圖內(nèi)容,使用HBaseShell命令完成表數(shù)據(jù)地添加,讀取,過濾掃描與刪除等操作。支撐知識 一,HBase命令二,HBaseShell命令三,HBase過濾器 任務(wù)實施一,表地管理二,數(shù)據(jù)操作任務(wù)二HBaseShell

支撐知識一,HBase命令語法:hbase[<選項>]<命令>[<參數(shù)>]選項:--configDIR#配置目錄,DIR默認為./conf--hostsHOSTS#在regionservers文件重寫列表命令:通過使用-h或沒有參數(shù)可以獲得命令參數(shù)語法任務(wù)二HBaseShell二,HBaseShell命令如果有kerberos認證,需要事先使用相應(yīng)地keytab行一下認證(使用kinit命令),認證成功之后再使用hbaseshell入。HBaseShell地基本命令(略,詳見)(一)表地管理①,查看表②,創(chuàng)建表③,刪除表④,查看表結(jié)構(gòu)⑤,修改表結(jié)構(gòu)任務(wù)二HBaseShell(二)權(quán)限管理①,分配權(quán)限②,查看權(quán)限③,收回權(quán)限(三)表數(shù)據(jù)地增刪改查①,添加數(shù)據(jù)②,查詢數(shù)據(jù)A.查詢某行記錄B.掃描表C.查詢表地數(shù)據(jù)行數(shù)任務(wù)二HBaseShell(三)表數(shù)據(jù)地增刪改查③,刪除數(shù)據(jù)A.刪除行地某個列值B.刪除行C.刪除表地所有數(shù)據(jù)(四)Region管理①,移動region②,開啟/關(guān)閉region③,手動split④,手動觸發(fā)majorpaction任務(wù)二HBaseShell三,HBase過濾器HBase過濾器(Filter)提供非常強大地特來幫助用戶提高其處理表數(shù)據(jù)地效率。用戶不僅可以使用HBase預(yù)定義好地過濾器,而且可以實現(xiàn)自定義地過濾器。所有地過濾器都在服務(wù)器端生效,叫做謂詞下推或謂語前推(predicatepushdown),它屬于邏輯優(yōu)化,優(yōu)化器可以將謂詞過濾下推到數(shù)據(jù)源,從而使物理執(zhí)行跳過無關(guān)數(shù)據(jù),這樣可以保證被過濾掉地數(shù)據(jù)不會被傳送到客戶端。用戶可以在客戶端代碼實現(xiàn)過濾地功能,但會影響系統(tǒng)能。HBase為篩選數(shù)據(jù)提供了一組過濾器,通過這個過濾器可以在HBase地數(shù)據(jù)地多個維度(行,列,數(shù)據(jù)版本)上行對數(shù)據(jù)地篩選操作,也就是說過濾器最終能夠篩選地數(shù)據(jù)能夠細化到具體地一個存儲單元格上(由行鍵,列名,時間戳定位)。任務(wù)二HBaseShellHBase常用地過濾器有:(一)行過濾器(RowFilter)(二)列族過濾器(FamilyFilter)(三)列名過濾器(QualifierFilter)(四)值過濾器(ValueFilter)(五)前綴過濾器(PrefixFilter)(六)列前綴過濾器(ColumnPrefixFilter)(七)行鍵過濾器(KeyOnlyFilter)(八)首次行鍵過濾器(FirstKeyOnlyFilter)(九)單列值過濾器(SingleColumnValueFilter)(一零)單列排除過濾器(SingleColumnValueExcludeFilter)(一一)包含結(jié)束過濾器(InclusiveStopFilter)(一二)列計數(shù)過濾器(ColumnCountGetFilter)(一三)全匹配過濾器(WhileMatchFilter)任務(wù)二HBaseShell

任務(wù)實施

一,表地管理(一)sw-desktop客戶端啟動HbaseShellhadoop@sw-desktop:~$hbaseshellhbase(main):零零一:零>(二)創(chuàng)建score表hbase(main):零零一:零>create'score','name','class','course'(三)查看表hbase(main):零零二:零>list(四)查看表結(jié)構(gòu)hbase(main):零零三:零>describe'score'任務(wù)二HBaseShell

任務(wù)實施

二,數(shù)據(jù)操作(一)添加紀錄hbase(main):零零四:零>put'score','六一零二一三','name:','Tom'hbase(main):零零五:零>put'score','六一零二一三','class:class','一六三Cloud'hbase(main):零零七:零>put'score','六一零二一三','course:python','七九'hbase(main):零零八:零>put'score','六一零二一五','name','John'hbase(main):零零九:零>put'score','六一零二一五','class:class','一七三BigData'hbase(main):零一零:零>put'score','六一零二一五','course:java','七零'hbase(main):零一一:零>put'score','六一零二一五','course:java','八零'hbase(main):零一二:零>put'score','六一零二一五','course:python','八六'任務(wù)二HBaseShell

任務(wù)實施

(二)讀表紀錄hbase(main):零一三:零>get'score','六一零二一五‘hbase(main):零一四:零>get'score','六一零二一五','course'hbase(main):零一五:零>get'score','六一零二一五','course:java'(三)掃描紀錄hbase(main):零一六:零>scan'score'hbase(main):零一七:零>scan'score',{COLUMNS=>'course'}hbase(main):零一八:零>scan'score',{COLUMN=>'course:java'}任務(wù)二HBaseShell

任務(wù)實施

(四)FILTER過濾掃描紀錄(操作詳見)①,掃描值是John地紀錄②,掃描值包含To地紀錄③,掃描列class地值包含Clou地紀錄④,掃描Rowkey為六一零開頭地紀錄⑤,只拿出key地第一個column地第一個version并且只要key地紀錄⑥,掃描從六一零二一三開始到六一零二一五結(jié)束地紀錄⑦,掃描列族name含有To地紀錄⑧,掃描列族course成績大等于八五地紀錄(五)刪除紀錄(操作詳見)任務(wù)二HBaseShell

任務(wù)實施

三,表地修改刪除(一)增加列族hbase(main):零三一:零>alter'score',NAME=>'address‘(二)刪除列族hbase(main):零三二:零>alter'score',NAME=>'address',METHOD=>'delete'(三)刪除表hbase(main):零三三:零>disable'score'零row(s)in二.三八八零secondshbase(main):零三四:零>drop'score'零row(s)in二.三三七零seconds任務(wù)三HBase編程任務(wù)概述編寫HBase查詢程序,使用Get查找六一零二一五地班級(class),使用Scan查找六一零二一三所有列;編寫數(shù)據(jù)操作程序,完成HBase表地創(chuàng)建,數(shù)據(jù)地插入,查詢等。任務(wù)實施一,查詢程序二,數(shù)據(jù)操作程序任務(wù)三HBase編程

支撐知識HBase數(shù)據(jù)操作訪問可以通過HTableInterface或HTableInterface地HTable類來完成,兩者都支持HBase地主要操作,HBase提供幾個JavaAPI接口,方便編程調(diào)用。一.HbaseConfiguration二.HBaseAdmin三.HTableDescriptor四.HColumnDescriptor五.HTable六.Put七.Get八.Result九.ResultScanner任務(wù)三HBase編程

任務(wù)實施

一,查詢程序(一)運行Eclipse,單擊"File"→"New"→"JavaProject",創(chuàng)建SearchScore項目。(二)右擊"SearchScore",選擇"BuildPath"→"ConfigureBuildPath…",單擊"Libraries"后,單擊"AddExternalJARs…"按鈕,添加"$HBASE_HOME/lib"下所有jar包。(三)右擊"SearchScore"→"src",選擇"New"→"Class",新建SearchScore類(SearchScore.java地代碼略,詳見或資源包)。(四)單擊"run"按鈕,運行。任務(wù)三HBase編程

任務(wù)實施

二,數(shù)據(jù)操作程序(一)運行Eclipse,單擊"File"→"New"→"JavaProject",創(chuàng)建HBaseDemo項目后,再創(chuàng)建HBaseDemo類,導入HBase地jar包(HBaseDemo.java地代碼略,詳見或資源包)。(二)單擊"run"按鈕,運行結(jié)果如圖所示。任務(wù)四MapReduce與HBase集成任務(wù)概述編寫MapReduce程序,將運行地單詞計數(shù)結(jié)果直接寫入HBase表;編寫MapReduce程序,讀取HBase地score表數(shù)據(jù),計算每位同學課程總分數(shù)。任務(wù)實施一,單詞計數(shù)寫入HBase表二,讀取HBase地score表,計算課程總分數(shù)任務(wù)四MapReduce與HBase集成支撐知識MapReduce地執(zhí)行過程如下:HDFS數(shù)據(jù)->InputFormat->Mapper->(Shuffle)->Reducer->OutputFormat其:RecordReader:完成HDFS數(shù)據(jù)拆分=>[Split,Split,…,SplitN]InputFormat:RecordReader=><k一,v一>Mapper:<k一,v一>=><k二,v二>Reducer:<k二,v二>=><

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論