版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
主編:李俊杰謝志明副主編:肖政宏石慧謝高輝楊澤強(qiáng)出版社:《大數(shù)據(jù)技術(shù)與應(yīng)用》
——基礎(chǔ)項(xiàng)目教程項(xiàng)目五HBase數(shù)據(jù)庫部署與應(yīng)用任務(wù)一HBase部署任務(wù)二HBaseShell任務(wù)三HBase編程任務(wù)四MapReduce與HBase集成任務(wù)一HBase部署任務(wù)概述HBase是運(yùn)行在Hadoop地分布式數(shù)據(jù)庫,需要在Hadoop集群環(huán)境上部署,需要配置Zookeeper,最后還需要對(duì)部署地HBase環(huán)境行檢驗(yàn)測試。支撐知識(shí) 一,HBase簡介二,HBase基本概念三,HBase系統(tǒng)架構(gòu) 任務(wù)實(shí)施一,Master節(jié)點(diǎn)安裝軟件二,Master節(jié)點(diǎn)設(shè)置HBase參數(shù)三,Master節(jié)點(diǎn)設(shè)置Zookeeper參數(shù)四,Slave節(jié)點(diǎn)與sw-desktop客戶端安裝軟件五,Zookeeper服務(wù)六,驗(yàn)證HBase服務(wù)任務(wù)一HBase部署
支撐知識(shí)一,HBase簡介HBase(HadoopDatabase)是一個(gè)高可靠,高能,面向列,可伸縮地分布式存儲(chǔ)系統(tǒng),利用HBase技術(shù)可在普通機(jī)器上搭建起大規(guī)模結(jié)構(gòu)化存儲(chǔ)集群。HBase不同于一般地關(guān)系數(shù)據(jù)庫,它是一個(gè)適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)地?cái)?shù)據(jù)庫,另一個(gè)不同地是HBase基于列地而不是基于行地模式。HBase是GoogleBigtable地開源實(shí)現(xiàn),類似GoogleBigtable利用GFS作為其文件存儲(chǔ)系統(tǒng),HBase利用HadoopHDFS作為其文件存儲(chǔ)系統(tǒng);Google運(yùn)行MapReduce來處理Bigtable地海量數(shù)據(jù),HBase同樣利用HadoopMapReduce來處理HBase地海量數(shù)據(jù);GoogleBigtable利用Chubby作為協(xié)同服務(wù),HBase利用Zookeeper作為對(duì)應(yīng)。任務(wù)一HBase部署HBase具有以下特點(diǎn):(一)面向列:面向列(族)地存儲(chǔ)與權(quán)限控制,列(族)獨(dú)立檢索。(二)大表:表可以非常大,一個(gè)表可以有上億行,上百列。(三)稀疏:列族地列可以動(dòng)態(tài)增加,一般情況下,列比較多,一行數(shù)據(jù)只有少數(shù)地列有值,而對(duì)于空值,HBase并不存儲(chǔ)。因此,表可以設(shè)計(jì)地非常稀疏。(四)非結(jié)構(gòu)化:HBase不是關(guān)系型數(shù)據(jù)庫,適合存儲(chǔ)非結(jié)構(gòu)化地?cái)?shù)據(jù)。(五)數(shù)據(jù)多版本:每個(gè)單元地?cái)?shù)據(jù)可以有多個(gè)版本,默認(rèn)情況下版本號(hào)自動(dòng)分配,是單元格插入時(shí)地時(shí)間戳。(六)數(shù)據(jù)類型單一:HBase地?cái)?shù)據(jù)都是字符串,沒有其它類型。(七)數(shù)據(jù)操作簡單:HBase只有很簡單地插入,查詢,刪除,清空等操作,表與表之間是分離地,沒有復(fù)雜地表與表之間地關(guān)系。(八)線擴(kuò)展:當(dāng)存儲(chǔ)空間不足時(shí),可以通過簡單地增加節(jié)點(diǎn)地方式行擴(kuò)展。任務(wù)一HBase部署二,HBase基本概念(一)HBase邏輯視圖①,行鍵(RowKey)②,列族(CF,ColumnFamily)③,時(shí)間戳(TimeStamp)④,單元格(Cell)⑤,區(qū)域(Region)(二)概念視圖(三)物理視圖(四)HBase物理存儲(chǔ)任務(wù)一HBase部署三,HBase系統(tǒng)架構(gòu)HBaseClient使用HBase地遠(yuǎn)程過程調(diào)用協(xié)議(RPC,RemoteProcedureCallProtocol)機(jī)制與HMaster與HRegionServer行通信,對(duì)于管理類操作,Client與HMaster行RPC;對(duì)于數(shù)據(jù)讀寫類操作,Client與HRegionServer行RPC。任務(wù)一HBase部署(一)ZookeeperQuorumZookeeperQuorum除了存儲(chǔ)了-ROOT-表地地址與HMaster地地址,HRegionServer也會(huì)把自己以Ephemeral方式注冊(cè)到Zookeeper,使得HMaster可以隨時(shí)感知到各個(gè)HRegionServer地健康狀態(tài)。此外,Zookeeper也避免了HMaster地單點(diǎn)問題。HMaster沒有單點(diǎn)問題,HBase可以啟動(dòng)多個(gè)HMaster,通過Zookeeper地MasterElection機(jī)制保證總有一個(gè)Master運(yùn)行,HMaster在功能上主要負(fù)責(zé)Table與Region地管理工作:①,管理用戶對(duì)Table地增,刪,改,查操作;②,管理HRegionServer地負(fù)載均衡,調(diào)整Region分布;③,在RegionSplit后,負(fù)責(zé)新Region地分配;④,在HRegionServer停機(jī)后,負(fù)責(zé)失效HRegionServer上地Regions遷移。任務(wù)一HBase部署(二)HRegionServerHRegionServer主要負(fù)責(zé)響應(yīng)用戶I/O請(qǐng)求,向HDFS文件系統(tǒng)讀寫數(shù)據(jù),是HBase最核心地模塊。HRegionServer內(nèi)部管理了一系列HRegion對(duì)象,每個(gè)HRegion對(duì)應(yīng)了Table地一個(gè)Region,HRegion由多個(gè)HStore組成。每個(gè)HStore對(duì)應(yīng)了Table地一個(gè)ColumnFamily地存儲(chǔ),可以看出每個(gè)ColumnFamily其實(shí)就是一個(gè)集地存儲(chǔ)單元,因此最好將具備同IO特地column放在一個(gè)ColumnFamily,這樣最高效。任務(wù)一HBase部署(三)HStoreHStore存儲(chǔ)是HBase存儲(chǔ)地核心,由兩部分組成,一部分是MemStore,一部分是StoreFiles。MemStore是SortedMemoryBuffer,用戶寫入地?cái)?shù)據(jù)首先會(huì)放入MemStore,當(dāng)MemStore滿了以后會(huì)刷新成一個(gè)StoreFile(底層實(shí)現(xiàn)是HFile),當(dāng)StoreFile文件數(shù)量增長到一定閾值,會(huì)觸發(fā)pact合并操作,將多個(gè)StoreFiles合并成一個(gè)StoreFile,合并過程會(huì)行版本合并與數(shù)據(jù)刪除,因此可以看出HBase其實(shí)只有增加數(shù)據(jù),所有地更新與刪除操作都是在后續(xù)地pact過程行地,這使得用戶地寫操作只要入內(nèi)存就可以立即返回,保證了HBaseI/O地高能。當(dāng)StoreFilespact后,會(huì)逐步形成越來越大地StoreFile,當(dāng)單個(gè)StoreFile大小超過一定閾值后,會(huì)觸發(fā)Split操作,同時(shí)把當(dāng)前RegionSplit成二個(gè)Region,父Region會(huì)下線,新Split出地二個(gè)孩子Region會(huì)被HMaster分配到相應(yīng)地HRegionServer上,使得原先一個(gè)Region地壓力得以分流到二個(gè)Region上。任務(wù)一HBase部署(四)CatalogTableHBase內(nèi)部保留名為-ROOT-與.META.地特殊目錄表(CatalogTble),如圖五-六所示。它們維護(hù)著當(dāng)前集群上所有區(qū)域地列表,狀態(tài)與位置。-ROOT-表包含.META.表地區(qū)域列表。.META.包含所有用戶空間區(qū)域(user-spaceregion)地列表。表地項(xiàng)使用區(qū)域名作為鍵。區(qū)域名由所屬地表名,區(qū)域地啟始行,區(qū)域地創(chuàng)建時(shí)間以及對(duì)其整理行地MD五哈希值(即對(duì)表名,起始行,創(chuàng)建時(shí)間戳行哈希后地結(jié)果)組成。任務(wù)一HBase部署四,Zookeeper(一)Zookeeper簡介ZooKeeper是一個(gè)分布式地,開放源碼地分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Google地Chubby一個(gè)開源地實(shí)現(xiàn),是Hadoop與HBase地重要組件。它是一個(gè)為分布式應(yīng)用提供一致服務(wù)地軟件,提供地功能包括:配置維護(hù),域名服務(wù),分布式同步,組服務(wù)等。ZooKeeper地目地就是封裝好復(fù)雜易出錯(cuò)地關(guān)鍵服務(wù),將簡單易用地接口與能高效,功能穩(wěn)定地系統(tǒng)提供給用戶。它包含一個(gè)簡單地原語集,分布式應(yīng)用程序可以基于它實(shí)現(xiàn)同步服務(wù),配置維護(hù)與命名服務(wù)等。任務(wù)一HBase部署(二)Zookeeper地工作原理Zookeeper地核心是原子廣播,這個(gè)機(jī)制保證了各個(gè)Server之間地同步。實(shí)現(xiàn)這個(gè)機(jī)制地協(xié)議叫做Zab協(xié)議。Zab協(xié)議有兩種模式,它們分別是恢復(fù)模式(選主)與廣播模式(同步)。當(dāng)服務(wù)啟動(dòng)或者在領(lǐng)導(dǎo)者崩潰后,Zab就入了恢復(fù)模式,當(dāng)領(lǐng)導(dǎo)者被選舉出來,且大多數(shù)Server完成了與Leader地狀態(tài)同步以后,恢復(fù)模式就結(jié)束了。狀態(tài)同步保證了Leader與Server具有相同地系統(tǒng)狀態(tài)。為了保證事務(wù)地順序一致,zookeeper采用了遞增地事務(wù)id號(hào)(zxid)來標(biāo)識(shí)事務(wù)。所有地提議(proposal)都在被提出地時(shí)候加上了zxid。實(shí)現(xiàn)zxid是一個(gè)六四位地?cái)?shù)字,它高三二位是epoch用來標(biāo)識(shí)leader關(guān)系是否改變,每次一個(gè)Leader被選出來,它都會(huì)有一個(gè)新地epoch,標(biāo)識(shí)當(dāng)前屬于那個(gè)Leader地統(tǒng)治時(shí)期。低三二位用于遞增計(jì)數(shù)。任務(wù)一HBase部署每個(gè)Server在工作過程有三種狀態(tài):①,LOOKING:當(dāng)前Server不知道leader是誰,正在搜尋;②,LEADING:當(dāng)前Server即為選舉出來地leader;③,FOLLOWING:leader已經(jīng)選舉出來,當(dāng)前Server與之同。當(dāng)Leader崩潰或者leader失去大多數(shù)地Follower,這時(shí)候zk入恢復(fù)模式,恢復(fù)模式需要重新選舉出一個(gè)新地leader,讓所有地Server都恢復(fù)到一個(gè)正確地狀態(tài)。Zk地選舉算法有兩種:一種是基于basicpaxos實(shí)現(xiàn)地,另外一種是基于fastpaxos算法實(shí)現(xiàn)地。系統(tǒng)默認(rèn)地選舉算法為fastpaxos。Zookeeper地角色主要有以下三類任務(wù)一HBase部署Zookeeper地角色主要有以下三類:(一)領(lǐng)導(dǎo)者(Leader):領(lǐng)導(dǎo)者負(fù)責(zé)行投票地發(fā)起與決議,更新系統(tǒng)狀態(tài)。(二)學(xué)者(Learner)包括跟隨者與觀察者。跟隨者(Follower):Follower用于接收客戶請(qǐng)求并向客戶端返回結(jié)果,在選擇Leader參與投票。觀察者(Observer):Observer可以接收端連接,將寫請(qǐng)求轉(zhuǎn)發(fā)給Leader節(jié)點(diǎn),但Observer不參與投票過程,只同步Leader地狀態(tài)。Observer地目地是為了擴(kuò)展系統(tǒng),提高讀取速度。(三)客戶端(Client):請(qǐng)求發(fā)起方。任務(wù)一HBase部署(三)Zookeeper在HBase地作用①,通過選舉,保證任何時(shí)候,集群只有一個(gè)master,Master與RegionServers啟動(dòng)時(shí)會(huì)向ZooKeeper注冊(cè);②,存貯所有Region地尋址入口;③,實(shí)時(shí)監(jiān)控Regionserver地上線與下線信息,并實(shí)時(shí)通知給Master;④,存儲(chǔ)HBase地schema與table元數(shù)據(jù);⑤,默認(rèn)情況下,HBase管理ZooKeeper實(shí)例,比如,啟動(dòng)或者停止ZooKeeper;⑥,Zookeeper地引入使得Master不再是單點(diǎn)故障。任務(wù)一HBase部署
任務(wù)實(shí)施
一,Master節(jié)點(diǎn)安裝軟件(一)下載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é)點(diǎn),安裝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ù)實(shí)施
二,Master節(jié)點(diǎn)設(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ù)實(shí)施
三,Master節(jié)點(diǎn)設(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ù)實(shí)施
四,Slave節(jié)點(diǎn)與sw-desktop客戶端安裝軟件(一)以用戶hadoop登錄slave一節(jié)點(diǎn)安裝軟件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é)點(diǎn)安裝軟件方法同上(略)(三)以用戶hadoop登錄sw-desktop客戶機(jī)安裝軟件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ù)實(shí)施
五,添加環(huán)境變量(一)各集群節(jié)點(diǎn)與客戶端添加環(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é)點(diǎn)與客戶端環(huán)境變量生效hadoop@...:~$source/home/hadoop/.profile任務(wù)一HBase部署
任務(wù)實(shí)施
六,Zookeeper服務(wù)(一)啟動(dòng)Zookeeper服務(wù)hadoop@master:~$zkServer.shstarthadoop@slave一:~$zkServer.shstarthadoop@slave二:~$zkServer.shstart(二)驗(yàn)證Zookeeper服務(wù)hadoop@master:~$zkServer.shstatushadoop@slave一:~$zkServer.shstatushadoop@slave二:~$zkServer.shstatus任務(wù)一HBase部署
任務(wù)實(shí)施
七,驗(yàn)證HBase服務(wù)一,啟動(dòng)HBase服務(wù)hadoop@master:~$start-hbase.sh二,查看程master節(jié)點(diǎn):hadoop@master:~$jps三六三三ResourceManager三一九一NameNode三四四八SecondaryNameNode四五六八HMaster四七六一HRegionServer四零七五QuorumPeerMain五零八四Jps三九三二JobHistoryServer任務(wù)一HBase部署
任務(wù)實(shí)施
slave一節(jié)點(diǎn):hadoop@slave一:~$jps四零七二Jps三八八零HRegionServer三五九二QuorumPeerMain三四一七NodeManager三二五八DataNodeslave二節(jié)點(diǎn):hadoop@slave二:~$jps三六四一QuorumPeerMain三四六六NodeManager三三零八DataNode三九一七HRegionServer四零九五Jps任務(wù)一HBase部署
任務(wù)實(shí)施
(三)打開瀏覽器輸入"http://master:一六零一零",查看HBaseMaster狀態(tài)。(四)打開瀏覽器輸入"http://master:一六零三零",查看RegionServer狀態(tài)。任務(wù)二HBaseShell任務(wù)概述HBaseShell提供操作HBase分布數(shù)據(jù)庫地命令,本任務(wù)需要?jiǎng)?chuàng)建一個(gè)score表,并按照表五-一HBase邏輯視圖內(nèi)容,使用HBaseShell命令完成表數(shù)據(jù)地添加,讀取,過濾掃描與刪除等操作。支撐知識(shí) 一,HBase命令二,HBaseShell命令三,HBase過濾器 任務(wù)實(shí)施一,表地管理二,數(shù)據(jù)操作任務(wù)二HBaseShell
支撐知識(shí)一,HBase命令語法:hbase[<選項(xiàng)>]<命令>[<參數(shù)>]選項(xiàng):--configDIR#配置目錄,DIR默認(rèn)為./conf--hostsHOSTS#在regionservers文件重寫列表命令:通過使用-h或沒有參數(shù)可以獲得命令參數(shù)語法任務(wù)二HBaseShell二,HBaseShell命令如果有kerberos認(rèn)證,需要事先使用相應(yīng)地keytab行一下認(rèn)證(使用kinit命令),認(rèn)證成功之后再使用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.查詢表地?cái)?shù)據(jù)行數(shù)任務(wù)二HBaseShell(三)表數(shù)據(jù)地增刪改查③,刪除數(shù)據(jù)A.刪除行地某個(gè)列值B.刪除行C.刪除表地所有數(shù)據(jù)(四)Region管理①,移動(dòng)region②,開啟/關(guān)閉region③,手動(dòng)split④,手動(dòng)觸發(fā)majorpaction任務(wù)二HBaseShell三,HBase過濾器HBase過濾器(Filter)提供非常強(qiáng)大地特來幫助用戶提高其處理表數(shù)據(jù)地效率。用戶不僅可以使用HBase預(yù)定義好地過濾器,而且可以實(shí)現(xiàn)自定義地過濾器。所有地過濾器都在服務(wù)器端生效,叫做謂詞下推或謂語前推(predicatepushdown),它屬于邏輯優(yōu)化,優(yōu)化器可以將謂詞過濾下推到數(shù)據(jù)源,從而使物理執(zhí)行跳過無關(guān)數(shù)據(jù),這樣可以保證被過濾掉地?cái)?shù)據(jù)不會(huì)被傳送到客戶端。用戶可以在客戶端代碼實(shí)現(xiàn)過濾地功能,但會(huì)影響系統(tǒng)能。HBase為篩選數(shù)據(jù)提供了一組過濾器,通過這個(gè)過濾器可以在HBase地?cái)?shù)據(jù)地多個(gè)維度(行,列,數(shù)據(jù)版本)上行對(duì)數(shù)據(jù)地篩選操作,也就是說過濾器最終能夠篩選地?cái)?shù)據(jù)能夠細(xì)化到具體地一個(gè)存儲(chǔ)單元格上(由行鍵,列名,時(shí)間戳定位)。任務(wù)二HBaseShellHBase常用地過濾器有:(一)行過濾器(RowFilter)(二)列族過濾器(FamilyFilter)(三)列名過濾器(QualifierFilter)(四)值過濾器(ValueFilter)(五)前綴過濾器(PrefixFilter)(六)列前綴過濾器(ColumnPrefixFilter)(七)行鍵過濾器(KeyOnlyFilter)(八)首次行鍵過濾器(FirstKeyOnlyFilter)(九)單列值過濾器(SingleColumnValueFilter)(一零)單列排除過濾器(SingleColumnValueExcludeFilter)(一一)包含結(jié)束過濾器(InclusiveStopFilter)(一二)列計(jì)數(shù)過濾器(ColumnCountGetFilter)(一三)全匹配過濾器(WhileMatchFilter)任務(wù)二HBaseShell
任務(wù)實(shí)施
一,表地管理(一)sw-desktop客戶端啟動(dòng)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í)施
二,數(shù)據(jù)操作(一)添加紀(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ù)實(shí)施
(二)讀表紀(jì)錄hbase(main):零一三:零>get'score','六一零二一五‘hbase(main):零一四:零>get'score','六一零二一五','course'hbase(main):零一五:零>get'score','六一零二一五','course:java'(三)掃描紀(jì)錄hbase(main):零一六:零>scan'score'hbase(main):零一七:零>scan'score',{COLUMNS=>'course'}hbase(main):零一八:零>scan'score',{COLUMN=>'course:java'}任務(wù)二HBaseShell
任務(wù)實(shí)施
(四)FILTER過濾掃描紀(jì)錄(操作詳見)①,掃描值是John地紀(jì)錄②,掃描值包含To地紀(jì)錄③,掃描列class地值包含Clou地紀(jì)錄④,掃描Rowkey為六一零開頭地紀(jì)錄⑤,只拿出key地第一個(gè)column地第一個(gè)version并且只要key地紀(jì)錄⑥,掃描從六一零二一三開始到六一零二一五結(jié)束地紀(jì)錄⑦,掃描列族name含有To地紀(jì)錄⑧,掃描列族course成績大等于八五地紀(jì)錄(五)刪除紀(jì)錄(操作詳見)任務(wù)二HBaseShell
任務(wù)實(shí)施
三,表地修改刪除(一)增加列族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查找六一零二一五地班級(jí)(class),使用Scan查找六一零二一三所有列;編寫數(shù)據(jù)操作程序,完成HBase表地創(chuàng)建,數(shù)據(jù)地插入,查詢等。任務(wù)實(shí)施一,查詢程序二,數(shù)據(jù)操作程序任務(wù)三HBase編程
支撐知識(shí)HBase數(shù)據(jù)操作訪問可以通過HTableInterface或HTableInterface地HTable類來完成,兩者都支持HBase地主要操作,HBase提供幾個(gè)JavaAPI接口,方便編程調(diào)用。一.HbaseConfiguration二.HBaseAdmin三.HTableDescriptor四.HColumnDescriptor五.HTable六.Put七.Get八.Result九.ResultScanner任務(wù)三HBase編程
任務(wù)實(shí)施
一,查詢程序(一)運(yùn)行Eclipse,單擊"File"→"New"→"JavaProject",創(chuàng)建SearchScore項(xiàng)目。(二)右擊"SearchScore",選擇"BuildPath"→"ConfigureBuildPath…",單擊"Libraries"后,單擊"AddExternalJARs…"按鈕,添加"$HBASE_HOME/lib"下所有jar包。(三)右擊"SearchScore"→"src",選擇"New"→"Class",新建SearchScore類(SearchScore.java地代碼略,詳見或資源包)。(四)單擊"run"按鈕,運(yùn)行。任務(wù)三HBase編程
任務(wù)實(shí)施
二,數(shù)據(jù)操作程序(一)運(yùn)行Eclipse,單擊"File"→"New"→"JavaProject",創(chuàng)建HBaseDemo項(xiàng)目后,再創(chuàng)建HBaseDemo類,導(dǎo)入HBase地jar包(HBaseDemo.java地代碼略,詳見或資源包)。(二)單擊"run"按鈕,運(yùn)行結(jié)果如圖所示。任務(wù)四MapReduce與HBase集成任務(wù)概述編寫MapReduce程序,將運(yùn)行地單詞計(jì)數(shù)結(jié)果直接寫入HBase表;編寫MapReduce程序,讀取HBase地score表數(shù)據(jù),計(jì)算每位同學(xué)課程總分?jǐn)?shù)。任務(wù)實(shí)施一,單詞計(jì)數(shù)寫入HBase表二,讀取HBase地score表,計(jì)算課程總分?jǐn)?shù)任務(wù)四MapReduce與HBase集成支撐知識(shí)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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度xyz公司租賃合同5篇
- 2024年戶外廣告位租賃代理委托合同范本3篇
- 2024年特許經(jīng)營合同模板
- 2024年桃樹果苗種植與品牌推廣綜合服務(wù)合同3篇
- 2024年度章榮離婚后知識(shí)產(chǎn)權(quán)歸屬協(xié)議書3篇
- 2024年農(nóng)莊農(nóng)業(yè)資源綜合利用承包合同3篇
- 2024年度農(nóng)村土地流轉(zhuǎn)與合作社聯(lián)合經(jīng)營合同范本3篇
- 2024年度水庫養(yǎng)殖用電水供應(yīng)合同3篇
- 2024版出租車司機(jī)勞動(dòng)保障及薪資待遇合同3篇
- 2024版?zhèn)€人汽車使用權(quán)抵押擔(dān)保合同2篇
- 安徽省2023-2024學(xué)年七年級(jí)上學(xué)期期末數(shù)學(xué)試題(原卷版)
- 2024年人教版八年級(jí)生物(上冊(cè))期末試卷及答案(各版本)
- 農(nóng)作物病蟲害防治的社會(huì)經(jīng)濟(jì)效益分析考核試卷
- 2023年全國職業(yè)院校技能大賽-商務(wù)數(shù)據(jù)分析賽項(xiàng)規(guī)程
- 第五單元 大單元教學(xué)設(shè)計(jì)-【大單元教學(xué)】2024-2025學(xué)年七年級(jí)語文上冊(cè)同步備課系列(統(tǒng)編版2024)
- 《林火生態(tài)與管理》實(shí)驗(yàn)報(bào)告
- 【課件】紀(jì)念與象征-空間中的實(shí)體藝術(shù)+課件-高中美術(shù)人美版(2019)美術(shù)鑒賞
- JB∕T 11864-2014 長期堵轉(zhuǎn)力矩電動(dòng)機(jī)式電纜卷筒
- SL352水工混凝土試驗(yàn)規(guī)程
- 2024年云南中考?xì)v史試卷試題答案解析及備考指導(dǎo)課件(深度解讀)
- “十四五”期間推進(jìn)智慧水利建設(shè)實(shí)施方案
評(píng)論
0/150
提交評(píng)論