freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

電力大數(shù)據(jù)處理、存儲與分析的調(diào)研報告-資料下載頁

2025-08-03 05:45本頁面
  

【正文】 on就會等分會兩個新的Hregion。當(dāng)table中的行不斷增多,就會有越來越多的Hregion。(4)HRegion是HBase中分布式存儲和負(fù)載均衡的最小單元。最小單元就表示不同的Hregion可以分布在不同的HRegion server上。但一個Hregion是不會拆分到多個server上的。(5)HRegion雖然是分布式存儲的最小單元,但并不是存儲的最小單元。事實(shí)上,HRegion由一個或者多個Store組成,每個store保存一個columns family。每個Strore又由一個memStore和0至多個StoreFile組成。如圖:StoreFile以HFile格式保存在HDFS上。HFile的格式為: StoreFile以HFile格式保存在HDFS上。HFile分為六個部分:(1)Data Block段–保存表中的數(shù)據(jù),這部分可以被壓縮(2)Meta Block段(可選的)–保存用戶自定義的kv對,可以被壓縮。(3)File Info段–Hfile的元信息,不被壓縮,用戶也可以在這一部分添加自己的元信息。(4)Data Block Index段–Data Block的索引。每條索引的key是被索引的block的第一條記錄的key。(5)Meta Block Index段(可選的)–Meta Block的索引。(6)Trailer–這一段是定長的。保存了每一段的偏移量,讀取一個HFile時,會首先讀取Trailer,Trailer保存了每個段的起始位置(段的Magic Number用來做安全check),然后,DataBlock Index會被讀取到內(nèi)存中,這樣,當(dāng)檢索某個key時,不需要掃描整個HFile,而只需從內(nèi)存中找到key所在的block,通過一次磁盤io將整個block讀取到內(nèi)存中,再找到需要的key。DataBlock Index采用LRU機(jī)制淘汰。HFile的Data Block,Meta Block通常采用壓縮方式存儲,壓縮之后可以大大減少網(wǎng)絡(luò)IO和磁盤IO,隨之而來的開銷當(dāng)然是需要花費(fèi)cpu進(jìn)行壓縮和解壓縮。目標(biāo)Hfile的壓縮支持兩種方式:Gzip,Lzo。HLog(WAL log)WAL意為Write ahead log,類似mysql中的binlog,用來做災(zāi)難恢復(fù)只用,Hlog記錄數(shù)據(jù)的所有變更,一旦數(shù)據(jù)修改,就可以從log中進(jìn)行恢復(fù)。每個Region Server維護(hù)一個Hlog,而不是每個Region一個。這樣不同region(來自不同table)的日志會混在一起,這樣做的目的是不斷追加單個文件相對于同時寫多個文件而言,可以減少磁盤尋址次數(shù),因此可以提高對table的寫性能。帶來的麻煩是,如果一臺region server下線,為了恢復(fù)其上的region,需要將region server上的log進(jìn)行拆分,然后分發(fā)到其它region server上進(jìn)行恢復(fù)。HLog文件就是一個普通的Hadoop Sequence File,Sequence File的Key是HLogKey對象,HLogKey中記錄了寫入數(shù)據(jù)的歸屬信息,除了table和region名字外,同時還包括sequence number和timestamp,timestamp是寫入時間,sequence number的起始值為0,或者是最近一次存入文件系統(tǒng)中sequence number。HLog Sequece File的Value是HBase的KeyValue對象,即對應(yīng)HFile中的KeyValue,可參見上文描述。、系統(tǒng)架構(gòu)ClientHBase Client使用HBase的RPC機(jī)制與HMaster和HRegionServer進(jìn)行通信,對于管理類操作,Client與HMaster進(jìn)行RPC;對于數(shù)據(jù)讀寫類操作,Client與HRegionServer進(jìn)行RPC(1) 包含訪問HBase的接口,client維護(hù)著一些cache來加快對HBase的訪問,比如regione的位置信息。Zookeeper(1)保證任何時候,集群中只有一個master(2)存貯所有Region的尋址入口。(3)實(shí)時監(jiān)控Region Server的狀態(tài),將Region server的上線和下線信息實(shí)時通知給Master(4)存儲HBase的schema,包括有哪些table,每個table有哪些column familyMaster(1)為Region server分配region(2)負(fù)責(zé)region server的負(fù)載均衡(3)發(fā)現(xiàn)失效的region server并重新分配其上的region(4)GFS上的垃圾文件回收(5)處理schema更新請求Region Server(1)Region server維護(hù)Master分配給它的region,處理對這些region的IO請求(2)Region server負(fù)責(zé)切分在運(yùn)行過程中變得過大的region可以看到,client訪問HBase上數(shù)據(jù)的過程并不需要master參與(尋址訪問zookeeper和region server,數(shù)據(jù)讀寫訪問regione server),master僅僅維護(hù)者table和region的元數(shù)據(jù)信息,負(fù)載很低。、關(guān)鍵算法\流程region定位系統(tǒng)如何找到某個row key (或者某個row key range)所在的regionbigtable使用三層類似B+樹的結(jié)構(gòu)來保存region位置。第一層是保存zookeeper里面的文件,它持有root region的位置。第二層root 。通過root region。第三層 META,它是一個特殊的表,保存了HBase中所有數(shù)據(jù)表的region位置信息。(1) root region永遠(yuǎn)不會被split,保證了最需要三次跳轉(zhuǎn),就能定位到任意region(2),row key采用表名+表的最后一樣編碼而成。(3)為了加快訪問,.。假設(shè),.。并且每個region限制為128MB。那么上面的三層結(jié)構(gòu)可以保存的region數(shù)目為:(128MB/1KB) * (128MB/1KB) = = 2(34)個region(4)client會將查詢過的位置信息保存緩存起來,緩存不會主動失效,因此如果client上的緩存全部失效,則需要進(jìn)行6次網(wǎng)絡(luò)來回,才能定位到正確的region(其中三次用來發(fā)現(xiàn)緩存失效,另外三次用來獲取位置信息)。讀寫過程上文提到,HBase使用MemStore和StoreFile存儲對表的更新。數(shù)據(jù)在更新時首先寫入Log(WAL log)和內(nèi)存(MemStore)中,MemStore中的數(shù)據(jù)是排序的,當(dāng)MemStore累計到一定閾值時,就會創(chuàng)建一個新的MemStore,并且將老的MemStore添加到flush隊列,由單獨(dú)的線程flush到磁盤上,成為一個StoreFile。于此同時,系統(tǒng)會在zookeeper中記錄一個redo point,表示這個時刻之前的變更已經(jīng)持久化了。當(dāng)系統(tǒng)出現(xiàn)意外時,可能導(dǎo)致內(nèi)存(MemStore)中的數(shù)據(jù)丟失,此時使用Log(WAL log)來恢復(fù)checkpoint之后的數(shù)據(jù)。前面提到過StoreFile是只讀的,一旦創(chuàng)建后就不可以再修改。因此HBase的更新其實(shí)是不斷追加的操作。當(dāng)一個Store中的StoreFile達(dá)到一定的閾值后,就會進(jìn)行一次合并(major pact),將對同一個key的修改合并到一起,形成一個大的StoreFile,當(dāng)StoreFile的大小達(dá)到一定閾值后,又會對StoreFile進(jìn)行split,等分為兩個StoreFile。由于對表的更新是不斷追加的,處理讀請求時,需要訪問Store中全部的StoreFile和MemStore,將他們的按照row key進(jìn)行合并,由于StoreFile和MemStore都是經(jīng)過排序的,并且StoreFile帶有內(nèi)存中索引,合并的過程還是比較快。寫請求處理過程(1)client向region server提交寫請求(2)region server找到目標(biāo)region(3)region檢查數(shù)據(jù)是否與schema一致(4)如果客戶端沒有指定版本,則獲取當(dāng)前系統(tǒng)時間作為數(shù)據(jù)版本(5)將更新寫入WAL log(6)將更新寫入MemStore(7)判斷MemStore的是否需要flush為Store文件。region分配任何時刻,一個region只能分配給一個region server。master記錄了當(dāng)前有哪些可用的region server。以及當(dāng)前哪些region分配給了哪些region server,哪些region還沒有分配。當(dāng)存在未分配的region,并且有一個region server上有可用空間時,master就給這個region server發(fā)送一個裝載請求,把region分配給這個region server。region server得到請求后,就開始對此region提供服務(wù)。region server上線master使用zookeeper來跟蹤region server狀態(tài)。當(dāng)某個region server啟動時,會首先在zookeeper上的server目錄下建立代表自己的文件,并獲得該文件的獨(dú)占鎖。由于master訂閱了server目錄上的變更消息,當(dāng)server目錄下的文件出現(xiàn)新增或刪除操作時,master可以得到來自zookeeper的實(shí)時通知。因此一旦region server上線,master能馬上得到消息。region server下線當(dāng)region server下線時,它和zookeeper的會話斷開,zookeeper而自動釋放代表這臺server的文件上的獨(dú)占鎖。而master不斷輪詢server目錄下文件的鎖狀態(tài)。如果master發(fā)現(xiàn)某個region server丟失了它自己的獨(dú)占鎖,(或者master連續(xù)幾次和region server通信都無法成功),master就是嘗試去獲取代表這個region server的讀寫鎖,一旦獲取成功,就可以確定:(1)region server和zookeeper之間的網(wǎng)絡(luò)斷開了。(2)region server掛了。的其中一種情況發(fā)生了,無論哪種情況,region server都無法繼續(xù)為它的region提供服務(wù)了,此時master會刪除server目錄下代表這臺region server的文件,并將這臺region server的region分配給其它還活著的同志。如果網(wǎng)絡(luò)短暫出現(xiàn)問題導(dǎo)致region server丟失了它的鎖,那么region server重新連接到zookeeper之后,只要代表它的文件還在,它就會不斷嘗試獲取這個文件上的鎖,一旦獲取到了,就可以繼續(xù)提供服務(wù)。master上線master啟動進(jìn)行以下步驟:(1)從zookeeper上獲取唯一一個代碼master的鎖,用來阻止其它master成為master。(2)掃描zookeeper上的server目錄,獲得當(dāng)前可用的region server列表。(3)和2中的每個region server通信,獲得當(dāng)前已分配的region和region server的對應(yīng)關(guān)系。(4),計算得到當(dāng)前還未分配的region,將他們放入待分配region列表。master下線由于master只維護(hù)表和region的元數(shù)據(jù),而不參與表數(shù)據(jù)IO的過程,master下線僅導(dǎo)致所有元數(shù)據(jù)的修改被凍結(jié)(無法創(chuàng)建刪除表,無法修改表的schema,無法進(jìn)行region的負(fù)載均衡,無法處理region上下線,無法進(jìn)行region的合并,唯一例外的是region的split可以正常進(jìn)行,因為只有region server參與),表的數(shù)據(jù)讀寫還可以正常進(jìn)行。因此master下線短時間內(nèi)對整個HBase集群沒有影響。從上線過程可以看到,master保存的信息全是可以冗余信息(都可以從系統(tǒng)其它地方收集到或者計算出來),因此,一般HBase集群中總是有一個master在提供服務(wù),還有一個以上的39。master39。在等待時機(jī)搶占它的位置。、訪問接口(1)Native Java API,最常規(guī)和高效的訪問方式,適合Hadoop MapReduce Job并行批處理HBase表數(shù)據(jù)(2)HBase Shell,HBase的命令行工具,最簡單的接口,適合HBase管理使用(3)Thrift Gateway,利用Thrift序列化技術(shù),支持C++,PHP,Python等多種語言,適合其他異構(gòu)系統(tǒng)在線訪問HBase表數(shù)據(jù)(4)REST Gateway,支持REST 風(fēng)格的Http API訪問HBase, 解除了語言限制(5)Pig,可以使用Pig Latin流式編程語言來操作HBase中的數(shù)據(jù),和Hive類似,本質(zhì)最終也是編譯成MapReduce Job來處理HBase表數(shù)據(jù),適合做數(shù)據(jù)統(tǒng)計(6)Hive,當(dāng)前Hive的Release版本尚沒有加入對HBase的支持,但在下一個版本Hive ,可以使用類似SQL語言來訪問HBaseHadoop查詢與分析工具、HiveHive是基于Hadoop的一個數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供簡單的sql查詢功能,可以將sql語句轉(zhuǎn)換為MapReduce任務(wù)進(jìn)行運(yùn)行。 其優(yōu)點(diǎn)是學(xué)習(xí)成本低,可以通過類SQL語句快速實(shí)現(xiàn)簡單的MapReduce統(tǒng)計,不必開發(fā)專門的MapReduce應(yīng)用,十分適合數(shù)據(jù)倉庫的統(tǒng)計分析。(1)Hive定義Hive是建立在 Hadoop 上的數(shù)據(jù)倉庫基礎(chǔ)構(gòu)架。它提供了一系列的工具,可以用來進(jìn)行數(shù)據(jù)提取轉(zhuǎn)化加載(ETL),這是一種可以存儲、查詢和分析存儲在 Hadoop 中的大規(guī)模數(shù)據(jù)的機(jī)制。Hive 定義了簡單的類 SQL 查詢語言,稱為 HQL,它允許熟悉 SQL 的用戶查詢數(shù)據(jù)。同時,這個語言也允許
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1