




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、大數(shù)據(jù)技術(shù)基礎(chǔ)培訓(xùn)1HBase 技術(shù)介紹Hbase介紹Hbase是什么?Hadoop數(shù)據(jù)庫(kù)?Key-Value存儲(chǔ)?面向列族的數(shù)據(jù)庫(kù)?可以隨機(jī)訪問(wèn)的存儲(chǔ)和檢索數(shù)據(jù)的平臺(tái)起源Google發(fā)表Google文件系統(tǒng)(GFS)、MapReduce、BigTableLucene - Nutch - Hadoop - HbaseHbase版本發(fā)展2007.4 第一個(gè)版本(HBASE-287 Mike Cafarella)2010.10 0.89(Facebook的生產(chǎn)版本)2012.1 0.92(Adds 安全,協(xié)處理器,HFile V2,分布式log-Splitting)2012.5 0.94(Perf
2、ormance Release),目前是主流版本。2013.10 0.96(支持hadoop 2.0、JDK7,添加 protobuf,Table Snapshot,PrefixTreeCompression等等)Transwarp版本 基于0.94.11Hbase應(yīng)用場(chǎng)景互聯(lián)網(wǎng)搜索(爬蟲(chóng)收集網(wǎng)頁(yè)到BigTable)抓取增量數(shù)據(jù)OpenTSDB計(jì)數(shù)器內(nèi)容服務(wù)URL短鏈接信息交換FaceBook短信系統(tǒng)56Hbase數(shù)據(jù)模型7Hbase數(shù)據(jù)模型8Hbase數(shù)據(jù)模型9Hbase數(shù)據(jù)模型10Hbase數(shù)據(jù)模型11Hbase數(shù)據(jù)模型12Hbase數(shù)據(jù)模型Hbase數(shù)據(jù)模型數(shù)據(jù)可以通過(guò)column fa
3、mily進(jìn)行分割一個(gè)表由多個(gè)region組成每一個(gè)region都有指定的start key 和 end key每一個(gè)region底層是存儲(chǔ)在HDFS上的一個(gè)或多個(gè)文件組成(HFile)13Hbase數(shù)據(jù)模型14Hbase數(shù)據(jù)模型所有值都會(huì)存儲(chǔ)完整的坐標(biāo)值,包括Row Key、Column Family、 Column Qualifier and Timestamp每一個(gè)Cell(column)都是一行不同version是均是一行Null值不占用空間,因?yàn)椴粫?huì)被存儲(chǔ)15HBase架構(gòu)1617關(guān)系數(shù)據(jù)庫(kù)中的B+樹(shù)關(guān)系數(shù)據(jù)庫(kù)中常用B+樹(shù)組織數(shù)據(jù)如上圖所示,內(nèi)部節(jié)點(diǎn)已經(jīng)存滿,再插入一個(gè)新記錄時(shí),需要在
4、B+樹(shù)中插入一個(gè)新的內(nèi)部節(jié)點(diǎn),再鏈到B+樹(shù)中這里的問(wèn)題是新的內(nèi)部節(jié)點(diǎn)在磁盤(pán)上可能存放在很遠(yuǎn)的地方,在順序掃描數(shù)據(jù)時(shí),不得不seek磁盤(pán)Log-Structured Merge-Treesinsert/update寫(xiě)入log后,再寫(xiě)入內(nèi)存(memory store)memory store寫(xiě)滿后,flush到磁盤(pán)上后臺(tái)進(jìn)程/線程對(duì)磁盤(pán)上多個(gè)文件進(jìn)行合并,組成排序后的B+樹(shù),同時(shí)處理刪除、更新、TTL等查詢(xún)時(shí)先查內(nèi)存中的數(shù)據(jù),再查磁盤(pán)18Seek vs TransferComplexity:B+ tree operates at the disk seek rate, resulting in l
5、og(N) seeks per access.LSM-trees, sorts and merges files while operating at transfer rates, and takes log(updates) operationsGiven these numbers: 10 MB/second transfer bandwidth 10 milliseconds disk seek time 100 bytes per entry (10 billion entries) 10 KB per page (1 billion pages)When updating 1% o
6、f entries (100,000,000), it takes: 1,000 days with random B-tree updates 100 days with batched B-tree updates 1 day with sort and merge1920Seek Versus Sort and Merge in NumbersFor our large-scale scenarios, computation is dominated by disk transfers. Although CPU, RAM, and disk size double every 182
7、4 months, seek time remains nearly constant at around a 5% increase in speed per year.As discussed at the beginning of this chapter, there are two different database paradigms: one is seek and the other is transfer. Seek is typically found in RDBMSes and is caused by the B-tree or B+ tree structures
8、 used to store the data. It operates at the disk seek rate, resulting in log(N) seeks per access.Transfer, on the other hand, as used by LSM-trees, sorts and merges files while operating at transfer rates, and takes log(updates) operations. This results in the following comparison given these values
9、: 10 MB/second transfer bandwidth 10 milliseconds disk seek time 100 bytes per entry (10 billion entries) 10 KB per page (1 billion pages)When updating 1% of entries (100,000,000), it takes: 1,000 days with random B-tree updates 100 days with batched B-tree updates 1 day with sort and mergeWe can sa
10、fely conclude that, at scale seek, is inefficient compared to transfer.Hbase架構(gòu)21HMaster處理表的創(chuàng)建、刪除、修改等操作分配region到region server上負(fù)載均衡各個(gè)region server上的region維護(hù)集群狀態(tài)通過(guò)zookeeper監(jiān)控狀態(tài)、協(xié)調(diào)操作不提供數(shù)據(jù)服務(wù)Region Server處理region所有的讀寫(xiě)操作直接與client進(jìn)行數(shù)據(jù)通信控制region的分割對(duì)region進(jìn)行compact操作在運(yùn)行中可以動(dòng)態(tài)添加、刪除22HBase 組件交互HMasterRegionServe
11、rRegion1Region4RegionServerRegion3Region5RegionServerRegion2Region6ClientMetadata ops (create table, )Read/WriteRegion assignment and load balancingMasterSlavesHbase架構(gòu)region定位 .META.:記錄了用戶(hù)表的Region信息,.META.可以有多個(gè)regoin -ROOT-:記錄了.META.表的Region信息,-ROOT-只有一個(gè)regionZookeeper中記錄了-ROOT-表的location最新版本已經(jīng)沒(méi)有-RO
12、OT-23Hbase架構(gòu)數(shù)據(jù)流24Hbase架構(gòu)讀取定位對(duì)應(yīng)的region所在的region serverBlockCacheHFileMemStore25Hbase架構(gòu)插入定位對(duì)應(yīng)的region所在的region server將Put、Delete等操作寫(xiě)入預(yù)寫(xiě)日志W(wǎng)AL預(yù)寫(xiě)日志寫(xiě)完后將數(shù)據(jù)寫(xiě)入MemStore當(dāng)MemStore中的數(shù)據(jù)達(dá)到一定閾值時(shí),將數(shù)據(jù)以Hfile的形式保存到HDFS中不會(huì)阻塞其他讀寫(xiě)操作多個(gè)Column Family?26Hbase架構(gòu)插入定位對(duì)應(yīng)的region所在的region server將Put、Delete等操作寫(xiě)入預(yù)寫(xiě)日志W(wǎng)AL預(yù)寫(xiě)日志寫(xiě)完后將數(shù)據(jù)寫(xiě)入Mem
13、Store當(dāng)MemStore中的數(shù)據(jù)達(dá)到一定閾值時(shí),將數(shù)據(jù)以Hfile的形式保存到HDFS中不會(huì)阻塞其他讀寫(xiě)操作多個(gè)Column Family?27Hbase CompactionCompaction是將HFile合并的機(jī)制Minor Compaction將多個(gè)小文件合并成一個(gè)文件Major Compaction將所有文件合并成一個(gè)文件處理delete marker,真正刪除文件刪除多余的版本數(shù)據(jù)默認(rèn)每個(gè)region一天觸發(fā)一次28Hbase Splitting當(dāng)region的數(shù)據(jù)過(guò)大時(shí),就會(huì)觸發(fā)splitting操作使用middle key分割成兩個(gè)相鄰的region可以手動(dòng)觸發(fā)Splitt
14、ing的速度很快只是創(chuàng)建現(xiàn)有Hfile的引用文件,并未直接將文件分割開(kāi)只有當(dāng)觸發(fā)過(guò)compaction時(shí)才真正重寫(xiě)數(shù)據(jù)思考題:何時(shí)刪除父region的數(shù)據(jù)?29Auto shardingHBase MemStore性能相關(guān)參數(shù)hbase.hregion.memstore.flush.size 134217728(128M)base.regionserver.global.memstore.lowerLimit 0.35當(dāng)MemsStore所占內(nèi)存超過(guò)該比例強(qiáng)制flush hbase.regionserver.global.memstore.upperLimit 0.4阻塞插入操作hbase.h
15、region.memstore.block.multiplier 2當(dāng)一個(gè)region的MemStore的大小達(dá)到flush閾值的2倍時(shí),該region的寫(xiě)操作被阻塞31Hbase數(shù)據(jù)localityRegionServer與Datanode部署在同一臺(tái)服務(wù)器上新插入的數(shù)據(jù)優(yōu)先在本地磁盤(pán)(HDFS保證)動(dòng)態(tài)locality讀本地文件(HDFS short circuit)Hbase表結(jié)構(gòu)設(shè)計(jì)33Hbase表結(jié)構(gòu)設(shè)計(jì)使用row key 查詢(xún)的時(shí)候可以獲得最佳的查詢(xún)性能選定時(shí)間(timestamp)范圍,在有些時(shí)候能夠略過(guò)一些文件指定column family 能夠有效的減少被掃描的數(shù)據(jù)指定col
16、umn qualifier可以減少網(wǎng)絡(luò)傳輸,但不會(huì)減少硬盤(pán)IO大部分情況下,使用filter對(duì)值進(jìn)行過(guò)濾的查詢(xún)都是全表掃描雖然全表,但是網(wǎng)絡(luò)傳輸會(huì)降低34Hbase表結(jié)構(gòu)設(shè)計(jì)查詢(xún)性能好的關(guān)鍵?RDBMS為什么快?Column的索引合理的query planHbase沒(méi)有怎么辦?充分利用row key 和 column的排序反規(guī)范化、復(fù)制反規(guī)范化 替代Join操作復(fù)制 為讀優(yōu)化3536Hbase表結(jié)構(gòu)設(shè)計(jì)順序RowKey: CF: CQ: TS: Val 最新的Region會(huì)成為寫(xiě)入熱點(diǎn):寫(xiě)入性能非常糟糕!相反,我們可以這么做:加鹽值在前面加一些離散值相當(dāng)于分桶,不同的桶在不同的region上K
17、ey field換位把移到rowkey的中間或者后面隨機(jī)Key在rowkey中去除Salting 在rowkey加前綴來(lái)使數(shù)據(jù)分散 使用常見(jiàn)的值或者數(shù)字作為前綴 使用求模的方式來(lái)使數(shù)據(jù)分散 使常用的的數(shù)據(jù)緊跟在后面,已方便查找或者用mapreduce處理0_rowkey1, 1_rowkey2, 2_rowkey30_rowkey4, 1_rowkey5, 2_rowkey6數(shù)據(jù)會(huì)先按前綴排序0_rowkey10_rowkey41_rowkey21_rowkey5 Hashing vs. Sequential Keys使用哈希值可以獲得最好的分散性Uses hashes for best sp
18、read 使用MD5來(lái)對(duì)用戶(hù)ID進(jìn)行運(yùn)算Key = MD5(customerID) 對(duì)于customerID的區(qū)間進(jìn)行掃描會(huì)有反作用 使用sequential keys可以獲得一些本地性 可以充分利用block caches 可能會(huì)過(guò)度使用單臺(tái)服務(wù)器,通過(guò)salting或者split region來(lái)保證region在一個(gè)較小的狀態(tài)順序RowKey: CF: CQ: TS: Val 最新的Region會(huì)成為寫(xiě)入熱點(diǎn):寫(xiě)入性能非常糟糕!相反,我們可以這么做:加鹽值在前面加一些離散值相當(dāng)于分桶,不同的桶在不同的region上Key field換位把移到rowkey的中間或者后面隨機(jī)Key在rowke
19、y中去除Salting Prefix row keys to gain spread Use well known or numbered prefixes Use modulo to spread across servers Enforce common data stay close to each other for subsequent scanning or MapReduce processing0_rowkey1, 1_rowkey2, 2_rowkey30_rowkey4, 1_rowkey5, 2_rowkey6Sorted by prefix first0_rowkey1
20、0_rowkey41_rowkey21_rowkey5 Hashing vs. Sequential KeysUses hashes for best spread Use for example MD5 to be able to recreate key Key = MD5(customerID) Counter productive for range scans Use sequential keys for locality Makes use of block caches May tax one server overly, may be avoided by salting o
21、r splitting regions while keeping them smallHbase表列族高級(jí)配置數(shù)據(jù)塊大小非HDFS Block,默認(rèn)65536(64K)數(shù)據(jù)塊小,索引大隨機(jī)查找性能、順序掃面性能數(shù)據(jù)塊緩存是否把數(shù)據(jù)放進(jìn)內(nèi)存,對(duì)于只進(jìn)行順序掃描或很少使用的表可以關(guān)閉內(nèi)存表LRU緩存的優(yōu)先級(jí)高布隆過(guò)濾器(Bloom Filter)ROW,ROWCOL生存時(shí)間(TTL)壓縮Block Encoding (PREFIX、DIFF、FAST DIFF)單元時(shí)間版本Hbase表結(jié)構(gòu)設(shè)計(jì)實(shí)例熟悉的數(shù)據(jù)建模工具E-R圖Hbase表結(jié)構(gòu)設(shè)計(jì)實(shí)例演唱會(huì)Hbase表結(jié)構(gòu)設(shè)計(jì)實(shí)例傳統(tǒng)數(shù)據(jù)庫(kù)就從規(guī)范化
22、數(shù)據(jù)模型開(kāi)始實(shí)體 表格屬性 列關(guān)聯(lián) 外鍵多對(duì)多關(guān)聯(lián) 聯(lián)接表Hbase表結(jié)構(gòu)設(shè)計(jì)實(shí)例這些都有了是不是就夠了?如果數(shù)據(jù)是GB級(jí)別的?如果是TB級(jí)別的?Hbase表結(jié)構(gòu)設(shè)計(jì)實(shí)例在Hbase中 E-R圖怎么映射?實(shí)體 表?不一定 ! !屬性 ?HBase表結(jié)構(gòu)設(shè)計(jì)實(shí)例屬性的順序沒(méi)有關(guān)系有些屬性具有辨識(shí)性主鍵 ? 樂(lè)隊(duì)HBase表結(jié)構(gòu)設(shè)計(jì)實(shí)例不存在唯一鍵? 聯(lián)合主鍵問(wèn)題?順序?長(zhǎng)度?拼接方式?固定長(zhǎng)度分隔符其它序列化(Avro等)HBase表結(jié)構(gòu)設(shè)計(jì)實(shí)例增加屬性類(lèi)型不是必要Hbase沒(méi)有類(lèi)型(暫時(shí))可以幫助思考排序問(wèn)題HBase表結(jié)構(gòu)設(shè)計(jì)實(shí)例還沒(méi)討論關(guān)聯(lián)!HBase沒(méi)有外鍵不支持JOIN沒(méi)有索引不支持事
23、務(wù)(只支持行級(jí)事務(wù))Hbase表結(jié)構(gòu)設(shè)計(jì)實(shí)例如何處理Join?自己處理(應(yīng)用程序)反規(guī)范化( Denormalizing )將兩個(gè)邏輯實(shí)體用一個(gè)物理實(shí)體來(lái)展現(xiàn)Hbase表結(jié)構(gòu)設(shè)計(jì)實(shí)例試試常規(guī)的反規(guī)范化嘗試將信息整合到Band中有點(diǎn)難以接受,從Show入手也是一樣,換個(gè)方式Hbase表結(jié)構(gòu)設(shè)計(jì)實(shí)例試試整合進(jìn)聯(lián)接表似乎能夠用了Hbase表結(jié)構(gòu)設(shè)計(jì)實(shí)例在HBase中列和傳統(tǒng)數(shù)據(jù)庫(kù)不同列可以動(dòng)態(tài)增加的新插入的數(shù)據(jù)不需要是一個(gè)指定的類(lèi)型甚至它不需要是一個(gè)列!Hbase表結(jié)構(gòu)設(shè)計(jì)實(shí)例現(xiàn)在試試 把show放入bandHbase不限制你怎么做只需要你的應(yīng)用知道如何處理Hbase表結(jié)構(gòu)設(shè)計(jì)實(shí)例等等, show也
24、是一個(gè)實(shí)體,應(yīng)該有它的屬性將nested entity再細(xì)分一下有辨識(shí)性的的屬性可以作為Column Qualifier其他屬性則可以組合在value中Hbase表結(jié)構(gòu)設(shè)計(jì)實(shí)例剛才將show放入了band可以放入其它信息么?比如樂(lè)隊(duì)成員?qualifier starts with:s + show_ida + album_idm + nameHbase表結(jié)構(gòu)設(shè)計(jì)一些建議宗旨為讀做優(yōu)化根據(jù)數(shù)據(jù)訪問(wèn)方式來(lái)決定key的類(lèi)型利用column family分割數(shù)據(jù)將數(shù)據(jù)組合在一起(替代join)盡量只是用一個(gè)讀操作完成一個(gè)請(qǐng)求(至少要做到盡可能少)避免熱點(diǎn)順序的rowkey可以使用bulkload來(lái)進(jìn)行
25、插入預(yù)分配region60Hbase表結(jié)構(gòu)設(shè)計(jì)實(shí)例上網(wǎng)日志URL短鏈接微博粉絲關(guān)系私信的全文檢索其它?HBase ShellHBase Shell is 在(J)Ruby的IRB的基礎(chǔ)上加上了HBase的命令。任何你可以在IRB里做的事情都可在在HBase Shell中做。你可以這樣來(lái)運(yùn)行HBase Shell: $ ./bin/hbase shell輸入 help 就會(huì)返回Shell的命令列表和選項(xiàng)??梢钥纯丛贖elp文檔尾部的關(guān)于如何輸入變量和選項(xiàng)。創(chuàng)建一個(gè)名為 test 的表,這個(gè)表只有一個(gè) 列族 為 cf。 hbase(main):003:0 create test, cf可以列出所有
26、的表來(lái)檢查創(chuàng)建情況。 hbase(main):003:0 list插入 hbase(main):004:0 put test, row1, cf:a, value1Scan這個(gè)表 hbase(main):007:0 scan testGet一行 hbase(main):008:0 get test, row1刪除表 hbase(main):012:0 disable test 0 row(s) in 1.0930 seconds hbase(main):013:0 drop test 0 row(s) in 0.0770 seconds HBase APIpublic void createT
27、able(HTableDescriptor desc) 創(chuàng)建表api,通過(guò)HBaseAdmin對(duì)象來(lái)操作的,HBaseAdmin提供了createTable這個(gè)方法。HTableDescriptor 代表的是表的schemapublic void addFamily(final HColumnDescriptor family) 增加family通過(guò) addFamily方法。HBaseAdmin hAdmin = new HBaseAdmin(hbaseConfig);HTableDescriptor t = new HTableDescriptor(tableName);HColumnDes
28、criptor cf1 = new HColumnDescriptor(f1);cf1.setBlocksize(65536);cf1.setMaxVersions(1);cf1.setBloomFilterType(BloomType.ROW);cf1.setCompressionType(Algorithm.SNAPPY);cf1.setDataBlockEncoding(DataBlockEncoding.PREFIX);cf1.setTimeToLive(36000);cf1.setInMemory(false);t.addFamily(cf1); hAdmin.createTable
29、(t);HBase APIHTable通過(guò)put方法來(lái)插入數(shù)據(jù)??梢詡鬟f單個(gè)批Put對(duì)象 public void put(final Put put) throws IOExceptionList put對(duì)象批量插入 public void put(final List puts) throws IOExceptionHbase 插入HTable table = new HTable(hbaseConfig, tableName);table.setAutoFlush(autoFlush);/設(shè)置是否自動(dòng)flushList lp = new ArrayList(); int count = 1
30、0000; byte buffer = new byte1024; Random r = new Random();for (int i = 1; i = count; +i) Put p = new Put(String.format(“row%09d”,i).getBytes(); r.nextBytes(buffer); p.add(“f1.getBytes(), null, buffer); p.add(“f2.getBytes(), null, buffer); p.setWriteToWAL(wal); /設(shè)置是否寫(xiě)入WAL lp.add(p); if(i%1000=0) tabl
31、e.put(lp); lp.clear(); HBase API刪除表也是通過(guò)HBaseAdmin來(lái)操作,刪除表之前首先要disable表。這是一個(gè)比較耗時(shí)的操作,所以不建議頻繁刪除表。Example:HBaseAdmin hAdmin = new HBaseAdmin(hbaseConfig);if (hAdmin.tableExists(tableName) hAdmin.disableTable(tableName);/Disable 表,不再提供讀寫(xiě) hAdmin.deleteTable(tableName);/刪除數(shù)據(jù)文件HBase APIHBase的查詢(xún)通過(guò)掃描和過(guò)濾來(lái)得到相關(guān)記錄
32、返回的記錄是排好序的設(shè)計(jì)一個(gè)好的行鍵來(lái)匹配訪問(wèn)模式掃描器緩存的值決定了客戶(hù)端對(duì)HBase的RPC調(diào)用在掃描整張表后返回的行數(shù)緩存一次RPC獲取的行數(shù)Scan.setCaching(int)配置hbase.client.scanner.cachingHBase API單條查詢(xún)是通過(guò)rowkey在table中查詢(xún)某一行的數(shù)據(jù)。HTable提供了get方法來(lái)完成單條查詢(xún)。 public Result get(final Get get)批量查詢(xún)是通過(guò)制定一段rowkey的范圍來(lái)查詢(xún)。HTable提供了個(gè)getScanner方法來(lái)完成批量查詢(xún)。public ResultScanner getScann
33、er(final Scan scan)Scan s = new Scan();s.setMaxVersions(3);ResultScanner ss = table.getScanner(s);for(Result r:ss) System.out.println(new String(r.getRow(); for(KeyValue kv:r.raw() System.out.println(new String(kv.getColumn(); Hbase Filter過(guò)濾器是在HBase服務(wù)器端上執(zhí)行判斷操作過(guò)濾器可以應(yīng)用到行鍵(RowFilter),列限定符(QualifierFilt
34、er)或者數(shù)據(jù)值(ValueFilter)過(guò)濾器允許對(duì)數(shù)據(jù)分頁(yè)處理(PageFilter),限制掃描器返回行數(shù)FilterList可以組合使用多個(gè)FilterHbase Filter 接口說(shuō)明重置filter狀態(tài) reset()在過(guò)濾器中構(gòu)建邏輯來(lái)提早停止一次掃描: boolean filterAllRemaining()基于行鍵執(zhí)行過(guò)濾 boolean filterRowKey(byte buffer, int offset ,int length)如果該行沒(méi)有在上一步被過(guò)濾掉,接著調(diào)用這個(gè)方法處理當(dāng)前行的每個(gè)keyvalue對(duì)象 ReturnCode filterKeyValue(KeyV
35、alue v)變換KeyValue (eg:KeyOnlyFilter) transform(KeyValue v)過(guò)濾掉keyvalue后,調(diào)用: (eg:DependentColumnFilter) void filterRow(List kvs)最后是否選擇過(guò)濾掉某些行:(eg:SingleColumnValueFilter) boolean filterRow()Hbase Filter接口說(shuō)明ReturnCodeINCLUDE 包含這個(gè)CellINCLUDE_AND_NEXT_COL 包含這個(gè)Cell并跳過(guò)老版本SKIP 跳過(guò)這個(gè)cellNEXT_COL 跳轉(zhuǎn)到下一個(gè)columnNE
36、XT_ROW 跳轉(zhuǎn)到下一行SEEK_NEXT_USING_HINT Seek到下一個(gè)Hint值KeyValue getNextKeyHint(KeyValue currentKeyValue) 根據(jù)現(xiàn)在的KeyValue構(gòu)造下一個(gè)可能的KeyValueHbase FuzzyRowFilter用例Rowkey 樣式userId_actionId_timestamp(action比如登錄、修改密碼等)可以快速獲取到用戶(hù)的登錄操作等如果需要分析用戶(hù)最近的登錄狀況,怎么辦?全表掃描 + RowFilter?冗余存儲(chǔ)?(修改?)注意:Rowkey 需要定長(zhǎng)FuzzyRowFilter rowFilter
37、 = new FuzzyRowFilter( Arrays.asList( new Pair( Bytes.toBytesBinary(x00 x00 x00 x00_login_), new byte 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0);Hbase 其它快速跳轉(zhuǎn)FilterMultiRowRangeFilterFusionRowFilter類(lèi)似FuzzyRowFilter,但支持rangeList ranges = new ArrayList();ranges.add(new RowKeyRange(Bytes.toBytes(131), Bytes.toByt
38、es;ranges.add(new RowKeyRange(Bytes.toBytes(132), Bytes.toBytes;Filter filter = new MultiRowRangeFilter(ranges);List ranges = new ArrayList();ranges.add(new BytesRange(0 , 2, new byte1,0, new byte1,9);ranges.add(new BytesRange(4 , 1, new byte1, new byte1);FusionRowFilter filter = new FusionRowFilter(ranges);HBase輔助索引本地索引(region級(jí)別)針對(duì)region中的數(shù)據(jù)進(jìn)行輔助索引適用場(chǎng)景:userId+time,查詢(xún)某用戶(hù)符合某種條件的數(shù)據(jù)/jira/browse/HBASE-8980全局索引查詢(xún)限制條件少創(chuàng)建索引表可以在插入同時(shí)創(chuàng)建索引表能夠通過(guò)MapReduce重建索引表還未發(fā)布,請(qǐng)耐心等待74RowKeyColumn qualifiervaluefilterValueOrignal
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園安全教育日主題班會(huì)
- 水利水電工程新項(xiàng)目評(píng)審試題及答案
- 2025年中級(jí)經(jīng)濟(jì)師重要考點(diǎn)試題及回答
- 線護(hù)理工作總結(jié)與改進(jìn)計(jì)劃
- 在c語(yǔ)言期末考試試題及答案
- 孵化跳水測(cè)試題及答案
- 醫(yī)療機(jī)構(gòu)考試試題及答案
- 釣螃蟹面試題及答案
- 主管工作中的數(shù)據(jù)分析利用計(jì)劃
- 學(xué)校環(huán)境中的藝術(shù)裝置設(shè)計(jì)計(jì)劃
- GB∕T 25119-2021 軌道交通 機(jī)車(chē)車(chē)輛電子裝置
- 電池PCBA規(guī)格書(shū)
- 機(jī)械零件加工驗(yàn)收檢驗(yàn)記錄(共2頁(yè))
- 機(jī)械加工切削全參數(shù)推薦表
- 終端塔基礎(chǔ)預(yù)偏值(抬高值)計(jì)算表格
- 海外醫(yī)療服務(wù)委托合同協(xié)議書(shū)范本模板
- (完整版)研究者手冊(cè)模板
- 菲林檢驗(yàn)及管理辦法
- 磁芯參數(shù)對(duì)照表
- 信息技術(shù)教學(xué)中遇到的問(wèn)題與思考
- 人教版小學(xué)二年級(jí)數(shù)學(xué)下冊(cè)課程綱要
評(píng)論
0/150
提交評(píng)論