大數(shù)據(jù)Hbase經(jīng)典面試題有哪些-創(chuàng)新互聯(lián)

小編給大家分享一下大數(shù)據(jù)Hbase經(jīng)典面試題有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

10年的昌江網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。網(wǎng)絡(luò)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整昌江建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“昌江網(wǎng)站設(shè)計(jì)”,“昌江網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

1. Hbase是什么?hbase的特點(diǎn)是什么?

Hbase一個(gè)分布式的基于列式存儲(chǔ)的數(shù)據(jù)庫(kù),基于Hadoop的 hdfs 存儲(chǔ),zookeeper 進(jìn)行管理。

Hbase適合存儲(chǔ)半結(jié)構(gòu)化或非結(jié)構(gòu)化數(shù)據(jù),對(duì)于數(shù)據(jù)結(jié)構(gòu)字段不夠確定或者雜亂無(wú)章很難按一個(gè)概念去抽取的數(shù)據(jù)。

Hbase 為 null 的記錄不會(huì)被存儲(chǔ)。

基于的表包含 rowkey,時(shí)間戳,和列族。新寫入數(shù)據(jù)時(shí),時(shí)間戳更新, 同時(shí)可以查詢到以前的版本。

Hbase是主從架構(gòu)。hmaster 作為主節(jié)點(diǎn),hregionserver 作為從節(jié)點(diǎn)。

2.Hbase如何導(dǎo)入數(shù)據(jù)?

通過(guò)HBase API進(jìn)行批量寫入數(shù)據(jù);

使用Sqoop工具批量導(dǎo)數(shù)到HBase集群;

使用MapReduce批量導(dǎo)入;

HBase BulkLoad的方式。

3.Hbase的存儲(chǔ)結(jié)構(gòu)?

Hbase 中的每張表都通過(guò)行鍵 (rowkey) 按照一定的范圍被分割成多個(gè)子表(HRegion),默認(rèn)一個(gè) HRegion 超過(guò) 256M 就要被分割成兩個(gè),由

HRegionServer 管理,管理哪些 HRegion 由 Hmaster 分配。 HRegion 存取一個(gè)子表時(shí),會(huì)創(chuàng)建一個(gè) HRegion 對(duì)象,然后對(duì)表的每個(gè)列族 (Column Family) 創(chuàng)建一個(gè) store 實(shí)例, 每個(gè) store 都會(huì)有 0個(gè)或多個(gè) StoreFile 與之對(duì)應(yīng),每個(gè) StoreFile 都會(huì)對(duì)應(yīng)一個(gè) HFile , HFile 就是實(shí)際的存儲(chǔ)文件,因此,一個(gè) HRegion 還擁有一個(gè) MemStore 實(shí)例。

4. Hbase 和 hive 有什么區(qū)別?hive 與 hbase 的底層存儲(chǔ)是什么?hive 是產(chǎn)生的原因是什么?habase 是為了彌補(bǔ) hadoop 的什么缺陷?

共同點(diǎn):

hbase與hive都是架構(gòu)在hadoop之上的。都是用hadoop作為底層存儲(chǔ)。

區(qū)別:

Hive是建立在Hadoop之上為了減少M(fèi)apReducejobs編寫工作的批處理系統(tǒng),HBase是為了支持彌補(bǔ)Hadoop對(duì)實(shí)時(shí)操作的缺陷的項(xiàng)目 。

想象你在操作RMDB數(shù)據(jù)庫(kù),如果是全表掃描,就用Hive+Hadoop,如果是索引訪問(wèn),就用HBase+Hadoop;

Hive query就是MapReduce jobs可以從5分鐘到數(shù)小時(shí)不止,HBase是非常高效的,肯定比Hive高效的多;

Hive本身不存儲(chǔ)和計(jì)算數(shù)據(jù),它完全依賴于HDFS和 MapReduce,Hive中的表純邏輯;

hive借用hadoop的MapReduce來(lái)完成一些hive中的命令的執(zhí)行;

hbase是物理表,不是邏輯表,提供一個(gè)超大的內(nèi)存hash表,搜索引擎通過(guò)它來(lái)存儲(chǔ)索引,方便查詢操作;

hbase是列存儲(chǔ);

hdfs 作為底層存儲(chǔ),hdfs 是存放文件的系統(tǒng),而 Hbase 負(fù)責(zé)組織文件;

hive 需要用到 hdfs 存儲(chǔ)文件,需要用到 MapReduce 計(jì)算框架。

5. 解釋下Hbase實(shí)時(shí)查詢的原理

實(shí)時(shí)查詢,可以認(rèn)為是從內(nèi)存中查詢,一般響應(yīng)時(shí)間在 1 秒內(nèi)。HBase 的機(jī)制是數(shù)據(jù)先寫入到內(nèi)存中,當(dāng)數(shù)據(jù)量達(dá)到一定的量(如 128M),再寫入磁盤中, 在內(nèi)存中,是不進(jìn)行數(shù)據(jù)的更新或合并操作的,只增加數(shù)據(jù),這使得用戶的寫操作只要進(jìn)入內(nèi)存中就可以立即返回,保證了 HBase I/O 的高性能。

6. 描述 Hbase 的 rowKey 的設(shè)計(jì)原則

聯(lián)系 region 和 rowkey 關(guān)系說(shuō)明,設(shè)計(jì)可參考以下三個(gè)原則.

rowkey 長(zhǎng)度原則

rowkey 是一個(gè)二進(jìn)制碼流,可以是任意字符串,大長(zhǎng)度 64kb,實(shí)際應(yīng)用中一般為 10-100bytes,以 byte[] 形式保存,一般設(shè)計(jì)成定長(zhǎng)。建議越短越好,不要超過(guò) 16 個(gè)字節(jié), 原因如下:

數(shù)據(jù)的持久化文件 HFile 中是按照 KeyValue 存儲(chǔ)的,如果 rowkey 過(guò)長(zhǎng)會(huì)極大影響 HFile 的存儲(chǔ)效率 MemStore 將緩存部分?jǐn)?shù)據(jù)到內(nèi)存,如果 rowkey 字段過(guò)長(zhǎng),內(nèi)存的有效利用率就會(huì)降低,系統(tǒng)不能緩存更多的數(shù)據(jù),這樣會(huì)降低檢索效率

rowkey 散列原則

如果 rowkey 按照時(shí)間戳的方式遞增,不要將時(shí)間放在二進(jìn)制碼的前面,建議將 rowkey 的高位作為散列字段,由程序隨機(jī)生成,低位放時(shí)間字段,這樣將提高數(shù)據(jù)均衡分布在每個(gè) RegionServer,以實(shí)現(xiàn)負(fù)載均衡的幾率。如果沒(méi)有散列字段,首字段直接是時(shí)間信息,所有的數(shù)據(jù)都會(huì)集中在一個(gè) RegionServer 上,這樣在數(shù)據(jù)檢索的時(shí)候負(fù)載會(huì)集中在個(gè)別的 RegionServer 上,造成熱點(diǎn)問(wèn)題,會(huì)降低查詢效率。

rowkey 唯一原則

必須在設(shè)計(jì)上保證其唯一性,rowkey 是按照字典順序排序存儲(chǔ)的,因此, 設(shè)計(jì) rowkey 的時(shí)候,要充分利用這個(gè)排序的特點(diǎn),將經(jīng)常讀取的數(shù)據(jù)存儲(chǔ)到一塊,將最近可能會(huì)被訪問(wèn)的數(shù)據(jù)放到一塊。

7. 描述 Hbase 中 scan 和 get 的功能以及實(shí)現(xiàn)的異同

按指 定 RowKey 獲 取 唯 一 一 條 記 錄 , get 方法( org.apache.hadoop.hbase.client.Get ) Get的方法處理分兩種 : 設(shè)置了ClosestRowBefore和沒(méi)有設(shè)置的 rowlock 主要是用來(lái)保證行的事務(wù)性,即每個(gè)get 是以一個(gè) row 來(lái)標(biāo)記的.一個(gè) row 中可以有很多 family 和 column。

按指定的條件獲取一批記錄,scan 方法(org.apache.Hadoop.hbase.client.Scan)實(shí)現(xiàn)條件查詢功能使用的就是 scan 方式

scan 可以通過(guò) setCaching 與 setBatch 方法提高速度(以空間換時(shí)間);

scan 可以通過(guò) setStartRow 與 setEndRow 來(lái)限定范圍([start,end]start? 是閉區(qū)間,end 是開區(qū)間)。范圍越小,性能越高;

scan 可以通過(guò) setFilter 方法添加過(guò)濾器,這也是分頁(yè)、多條件查詢的基礎(chǔ)。 3.全表掃描,即直接掃描整張表中所有行記錄。

8. 請(qǐng)?jiān)敿?xì)描述 Hbase 中一個(gè) Cell 的結(jié)構(gòu)

HBase 中通過(guò) row 和 columns 確定的為一個(gè)存貯單元稱為 cell。Cell:由{row key, column(= + ), version}是唯一確定的單元cell 中的數(shù)據(jù)是沒(méi)有類型的,全部是字節(jié)碼形式存貯。

9. 簡(jiǎn)述 HBASE 中 compact 用途是什么,什么時(shí)候觸發(fā),分為哪兩種,有什么區(qū)別,有哪些相關(guān)配置參數(shù)?

在 hbase 中每當(dāng)有 memstore 數(shù)據(jù) flush 到磁盤之后,就形成一個(gè) storefile, 當(dāng) storeFile 的數(shù)量達(dá)到一定程度后,就需要將 storefile 文件來(lái)進(jìn)行 compaction 操作。Compact 的作用:

合并文件

清除過(guò)期,多余版本的數(shù)據(jù)

提高讀寫數(shù)據(jù)的效率

10. HBase 中實(shí)現(xiàn)了兩種 compaction 的方式 : minor and major這兩種compaction 方式的區(qū)別是:

Minor 操作只用來(lái)做部分文件的合并操作以及包括 minVersion=0 并且設(shè)置 TTL 的過(guò)期版本清理,不做任何刪除數(shù)據(jù)、多版本數(shù)據(jù)的清理工作;

Major 操作是對(duì) Region 下的 HStore 下的所有 StoreFile 執(zhí)行合并操作, 最終的結(jié)果是整理合并出一個(gè)文件。

11. 簡(jiǎn)述 Hbase filter 的實(shí)現(xiàn)原理是什么?結(jié)合實(shí)際項(xiàng)目經(jīng)驗(yàn),寫出幾個(gè)使用filter 的場(chǎng)景。

HBase 為篩選數(shù)據(jù)提供了一組過(guò)濾器,通過(guò)這個(gè)過(guò)濾器可以在 HBase 中的數(shù)據(jù)的多個(gè)維度(行,列,數(shù)據(jù)版本)上進(jìn)行對(duì)數(shù)據(jù)的篩選操作,也就是說(shuō)過(guò)濾器最終能夠篩選的數(shù)據(jù)能夠細(xì)化到具體的一個(gè)存儲(chǔ)單元格上(由行鍵, 列名,時(shí)間戳定位)。

RowFilter、PrefixFilter。hbase 的 filter 是通過(guò) scan 設(shè)置的,所以是基于 scan 的查詢結(jié)果進(jìn)行過(guò)濾. 過(guò)濾器的類型很多,但是可以分為兩大類——比較過(guò)濾器,專用過(guò)濾器。過(guò)濾器的作用是在服務(wù)端判斷數(shù)據(jù)是否滿足條件,然后只將滿足條件的數(shù)據(jù)返回給客戶端;如在進(jìn)行訂單開發(fā)的時(shí)候,我們使用 rowkeyfilter 過(guò)濾出某個(gè)用戶的所有訂單。

12. Hbase 內(nèi)部是什么機(jī)制?

在 HBase 中無(wú)論是增加新行還是修改已有的行,其內(nèi)部流程都是相同的。HBase 接到命令后存下變化信息,或者寫入失敗拋出異常。默認(rèn)情況下,執(zhí)行寫入時(shí)會(huì)寫到兩個(gè)地方:預(yù)寫式日志(write-ahead log,也稱 HLog)和 MemStore。HBase 的默認(rèn)方式是把寫入動(dòng)作記錄在這兩個(gè)地方,以保證數(shù)據(jù)持久化。只有當(dāng)這兩個(gè)地方的變化信息都寫入并確認(rèn)后,才認(rèn)為寫動(dòng)作完成。

MemStore 是內(nèi)存里的寫入緩沖區(qū),HBase 中數(shù)據(jù)在永久寫入硬盤之前在這里累積。當(dāng)MemStore 填滿后,其中的數(shù)據(jù)會(huì)刷寫到硬盤,生成一個(gè)HFile。HFile 是HBase 使用的底層存儲(chǔ)格式。HFile 對(duì)應(yīng)于列族,一個(gè)列族可以有多個(gè) HFile,但一個(gè) HFile 不能存儲(chǔ)多個(gè)列族的數(shù)據(jù)。在集群的每個(gè)節(jié)點(diǎn)上,每個(gè)列族有一個(gè)MemStore。大型分布式系統(tǒng)中硬件故障很常見,HBase 也不例外。

想一下,如果MemStore 還沒(méi)有刷寫,服務(wù)器就崩潰了,內(nèi)存中沒(méi)有寫入硬盤的數(shù)據(jù)就會(huì)丟失。HBase 的應(yīng)對(duì)辦法是在寫動(dòng)作完成之前先寫入 WAL。HBase 集群中每臺(tái)服務(wù)器維護(hù)一個(gè) WAL 來(lái)記錄發(fā)生的變化。WAL 是底層文件系統(tǒng)上的一個(gè)文件。直到WAL 新記錄成功寫入后,寫動(dòng)作才被認(rèn)為成功完成。這可以保證 HBase 和支撐它的文件系統(tǒng)滿足持久性。

大多數(shù)情況下,HBase 使用Hadoop分布式文件系統(tǒng)(HDFS)來(lái)作為底層文件系統(tǒng)。如果 HBase 服務(wù)器宕機(jī),沒(méi)有從 MemStore 里刷寫到 HFile 的數(shù)據(jù)將可以通過(guò)回放 WAL 來(lái)恢復(fù)。你不需要手工執(zhí)行。Hbase 的內(nèi)部機(jī)制中有恢復(fù)流程部分來(lái)處理。每臺(tái) HBase 服務(wù)器有一個(gè) WAL,這臺(tái)服務(wù)器上的所有表(和它們的列族)共享這個(gè) WAL。你可能想到,寫入時(shí)跳過(guò) WAL 應(yīng)該會(huì)提升寫性能。但我們不建議禁用 WAL, 除非你愿意在出問(wèn)題時(shí)丟失數(shù)據(jù)。如果你想測(cè)試一下,如下代碼可以禁用 WAL: 注意:不寫入 WAL 會(huì)在 RegionServer 故障時(shí)增加丟失數(shù)據(jù)的風(fēng)險(xiǎn)。關(guān)閉 WAL, 出現(xiàn)故障時(shí) HBase 可能無(wú)法恢復(fù)數(shù)據(jù),沒(méi)有刷寫到硬盤的所有寫入數(shù)據(jù)都會(huì)丟失。

13. HBase 宕機(jī)如何處理?

宕機(jī)分為 HMaster 宕機(jī)和 HRegisoner 宕機(jī).

如果是 HRegisoner 宕機(jī),HMaster 會(huì)將其所管理的 region 重新分布到其他活動(dòng)的 RegionServer 上,由于數(shù)據(jù)和日志都持久在 HDFS 中,該操作不會(huì)導(dǎo)致數(shù)據(jù)丟失,所以數(shù)據(jù)的一致性和安全性是有保障的。

如果是 HMaster 宕機(jī), HMaster 沒(méi)有單點(diǎn)問(wèn)題, HBase 中可以啟動(dòng)多個(gè)HMaster,通過(guò) Zookeeper 的 Master Election 機(jī)制保證總有一個(gè) Master 運(yùn)行。即ZooKeeper 會(huì)保證總會(huì)有一個(gè) HMaster 在對(duì)外提供服務(wù)。

14. HRegionServer宕機(jī)如何處理?

ZooKeeper 會(huì)監(jiān)控 HRegionServer 的上下線情況,當(dāng) ZK 發(fā)現(xiàn)某個(gè) HRegionServer 宕機(jī)之后會(huì)通知 HMaster 進(jìn)行失效備援;

HRegionServer 會(huì)停止對(duì)外提供服務(wù),就是它所負(fù)責(zé)的 region 暫時(shí)停止對(duì)外提供服務(wù)

HMaster 會(huì)將該 HRegionServer 所負(fù)責(zé)的 region 轉(zhuǎn)移到其他 HRegionServer 上,并且會(huì)對(duì) HRegionServer 上存在 memstore 中還未持久化到磁盤中的數(shù)據(jù)進(jìn)行恢復(fù);

這個(gè)恢復(fù)的工作是由 WAL重播 來(lái)完成,這個(gè)過(guò)程如下:

wal實(shí)際上就是一個(gè)文件,存在/hbase/WAL/對(duì)應(yīng)RegionServer路徑下宕機(jī)發(fā)生時(shí),讀取該RegionServer所對(duì)應(yīng)的路徑下的wal文件,然后根據(jù)不同的region切分成不同的臨時(shí)文件recover.edits

當(dāng)region被分配到新的RegionServer中,RegionServer讀取region時(shí)會(huì)進(jìn)行是否存在recover.edits,如果有則進(jìn)行恢復(fù)

15、Hbase寫數(shù)據(jù) 和 讀數(shù)據(jù)過(guò)程

獲取region存儲(chǔ)位置信息

寫數(shù)據(jù)和讀數(shù)據(jù)一般都會(huì)獲取hbase的region的位置信息。大概步驟為:

從zookeeper中獲取.ROOT.表的位置信息,在zookeeper的存儲(chǔ)位置為/hbase/root-region-server;

根據(jù).ROOT.表中信息,獲取.META.表的位置信息;

META.表中存儲(chǔ)的數(shù)據(jù)為每一個(gè)region存儲(chǔ)位置;

向hbase表中插入數(shù)據(jù)

hbase中緩存分為兩層:Memstore 和 BlockCache

首先寫入到 WAL文件 中,目的是為了數(shù)據(jù)不丟失;

再把數(shù)據(jù)插入到 Memstore緩存中,當(dāng) Memstore達(dá)到設(shè)置大小閾值時(shí),會(huì)進(jìn)行flush進(jìn)程;

flush過(guò)程中,需要獲取每一個(gè)region存儲(chǔ)的位置。

從hbase中讀取數(shù)據(jù)

BlockCache 主要提供給讀使用。讀請(qǐng)求先到 Memtore中查數(shù)據(jù),查不到就到 BlockCache 中查,再查不到就會(huì)到磁盤上讀,并把讀的結(jié)果放入 BlockCache 。

BlockCache 采用的算法為 LRU(最近最少使用算法),因此當(dāng) BlockCache 達(dá)到上限后,會(huì)啟動(dòng)淘汰機(jī)制,淘汰掉最老的一批數(shù)據(jù)。

一個(gè) RegionServer 上有一個(gè) BlockCache 和N個(gè) Memstore,它們的大小之和不能大于等于 heapsize * 0.8,否則 hbase 不能啟動(dòng)。默認(rèn) BlockCache 為 0.2,而 Memstore 為 0.4。對(duì)于注重讀響應(yīng)時(shí)間的系統(tǒng),應(yīng)該將 BlockCache 設(shè)大些,比如設(shè)置BlockCache =0.4,Memstore=0.39。這會(huì)加大緩存命中率。

16.HBase優(yōu)化方法

優(yōu)化手段主要有以下四個(gè)方面

(1)減少調(diào)整

減少調(diào)整這個(gè)如何理解呢?HBase中有幾個(gè)內(nèi)容會(huì)動(dòng)態(tài)調(diào)整,如region(分區(qū))、HFile,所以通過(guò)一些方法來(lái)減少這些會(huì)帶來(lái)I/O開銷的調(diào)整Region。如果沒(méi)有預(yù)建分區(qū)的話,那么隨著region中條數(shù)的增加,region會(huì)進(jìn)行分裂,這將增加I/O開銷,所以解決方法就是根據(jù)你的RowKey設(shè)計(jì)來(lái)進(jìn)行預(yù)建分區(qū),減少region的動(dòng)態(tài)分裂。

HFile

HFile是數(shù)據(jù)底層存儲(chǔ)文件,在每個(gè)memstore進(jìn)行刷新時(shí)會(huì)生成一個(gè)HFile,當(dāng)HFile增加到一定程度時(shí),會(huì)將屬于一個(gè)region的HFile進(jìn)行合并,這個(gè)步驟會(huì)帶來(lái)開銷但不可避免,但是合并后HFile大小如果大于設(shè)定的值,那么HFile會(huì)重新分裂。為了減少這樣的無(wú)謂的I/O開銷,建議估計(jì)項(xiàng)目數(shù)據(jù)量大小,給HFile設(shè)定一個(gè)合適的值。

(2)減少啟停

數(shù)據(jù)庫(kù)事務(wù)機(jī)制就是為了更好地實(shí)現(xiàn)批量寫入,較少數(shù)據(jù)庫(kù)的開啟關(guān)閉帶來(lái)的開銷,那么HBase中也存在頻繁開啟關(guān)閉帶來(lái)的問(wèn)題。

關(guān)閉Compaction,在閑時(shí)進(jìn)行手動(dòng)Compaction

因?yàn)镠Base中存在Minor Compaction和Major Compaction,也就是對(duì)HFile進(jìn)行合并,所謂合并就是I/O讀寫,大量的HFile進(jìn)行肯定會(huì)帶來(lái)I/O開銷,甚至是I/O風(fēng)暴,所以為了避免這種不受控制的意外發(fā)生,建議關(guān)閉自動(dòng)Compaction,在閑時(shí)進(jìn)行compaction

批量數(shù)據(jù)寫入時(shí)采用BulkLoad

如果通過(guò)HBase-Shell或者JavaAPI的put來(lái)實(shí)現(xiàn)大量數(shù)據(jù)的寫入,那么性能差是肯定并且還可能帶來(lái)一些意想不到的問(wèn)題,所以當(dāng)需要寫入大量離線數(shù)據(jù)時(shí)建議使用BulkLoad。

(3)減少數(shù)據(jù)量

雖然我們是在進(jìn)行大數(shù)據(jù)開發(fā),但是如果可以通過(guò)某些方式在保證數(shù)據(jù)準(zhǔn)確性同時(shí)減少數(shù)據(jù)量,何樂(lè)而不為呢?

開啟過(guò)濾,提高查詢速度

開啟BloomFilter,BloomFilter是列族級(jí)別的過(guò)濾,在生成一個(gè)StoreFile同時(shí)會(huì)生成一個(gè)MetaBlock,用于查詢時(shí)過(guò)濾數(shù)據(jù)

使用壓縮:一般推薦使用Snappy和LZO壓縮

(4)合理設(shè)計(jì)

在一張HBase表格中RowKey和ColumnFamily的設(shè)計(jì)是非常重要,好的設(shè)計(jì)能夠提高性能和保證數(shù)據(jù)的準(zhǔn)確性

RowKey設(shè)計(jì):應(yīng)該具備以下幾個(gè)屬性

散列性:散列性能夠保證相同相似的rowkey聚合,相異的rowkey分散,有利于查詢

簡(jiǎn)短性:rowkey作為key的一部分存儲(chǔ)在HFile中,如果為了可讀性將rowKey設(shè)計(jì)得過(guò)長(zhǎng),那么將會(huì)增加存儲(chǔ)壓力

唯一性:rowKey必須具備明顯的區(qū)別性

業(yè)務(wù)性:舉些例子

假如我的查詢條件比較多,而且不是針對(duì)列的條件,那么rowKey的設(shè)計(jì)就應(yīng)該支持多條件查詢

如果我的查詢要求是最近插入的數(shù)據(jù)優(yōu)先,那么rowKey則可以采用叫上Long.Max-時(shí)間戳的方式,這樣rowKey就是遞減排列

優(yōu)勢(shì):

HBase中數(shù)據(jù)時(shí)按列進(jìn)行存儲(chǔ)的,那么查詢某一列族的某一列時(shí)就不需要全盤掃描,只需要掃描某一列族,減少了讀I/O;其實(shí)多列族設(shè)計(jì)對(duì)減少的作用不是很明顯,適用于讀多寫少的場(chǎng)景。

劣勢(shì):

降低了寫的I/O性能。原因如下:數(shù)據(jù)寫到store以后是先緩存在memstore中,同一個(gè)region中存在多個(gè)列族則存在多個(gè)store,每個(gè)store都一個(gè)memstore,當(dāng)其實(shí)memstore進(jìn)行flush時(shí),屬于同一個(gè)region的store中的memstore都會(huì)進(jìn)行flush,增加I/O開銷。

以上是“大數(shù)據(jù)Hbase經(jīng)典面試題有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

文章名稱:大數(shù)據(jù)Hbase經(jīng)典面試題有哪些-創(chuàng)新互聯(lián)
URL鏈接:http://muchs.cn/article10/dsjogo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站排名、網(wǎng)站建設(shè)商城網(wǎng)站、域名注冊(cè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)