亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

HBase從入門到落地:架構(gòu)原理、RowKey設(shè)計與性能調(diào)優(yōu)實(shí)戰(zhàn)

HBase從入門到落地:架構(gòu)原理、RowKey設(shè)計與性能調(diào)優(yōu)實(shí)戰(zhàn) 業(yè)內(nèi)做海量數(shù)據(jù)存儲的團(tuán)隊這幾年十有八九都遇到過這類場景業(yè)務(wù)量一上來傳統(tǒng)關(guān)系庫撐不住了分庫分表又麻煩得要命最終把目光放到 HBase 上。但 HBase 這套東西網(wǎng)上資料碎片化嚴(yán)重真要動手搭建、調(diào)優(yōu)、排障坑一個接一個。我以多年實(shí)操經(jīng)驗(yàn)把 HBase 從入門到落地全流程梳理一遍把那些文檔里沒寫透的原理、參數(shù)取舍、踩坑記錄一次講清。這套內(nèi)容適合誰準(zhǔn)備引入列式存儲方案的架構(gòu)師、被線上 HBase 性能問題折磨的運(yùn)維和開發(fā)、想系統(tǒng)補(bǔ)齊分布式數(shù)據(jù)庫知識的學(xué)生??赐昴隳苊靼?HBase 演進(jìn)的邏輯、底層存儲機(jī)制、讀寫全鏈路原理以及高頻問題的排查方向照著實(shí)操路徑去搭一套可用集群問題不大。1. HBase 到底是什么它解決了哪些問題1.1 HBase 在分布式數(shù)據(jù)庫里的身位先給 HBase 一個通俗定位它是運(yùn)行在 Hadoop 生態(tài)之上的分布式、面向列族的 NoSQL 數(shù)據(jù)庫定位是海量結(jié)構(gòu)化大表的實(shí)時讀寫。注意幾個關(guān)鍵詞分布式、列族、海量、實(shí)時。分布式它把一張表在物理上拆成多個分片分布在不同節(jié)點(diǎn)上并行服務(wù)。列族它的數(shù)據(jù)按列族物理隔離同一列族內(nèi)的列往往有相似的訪問模式或數(shù)據(jù)特性。海量單表百億行、PB 級數(shù)據(jù)是它擅長的場景。實(shí)時這里的實(shí)時指毫秒到秒級延遲的隨機(jī)讀寫區(qū)別于離線批量處理。它擅長什么不擅長什么一開始就要心里有數(shù)。HBase 適合海量明細(xì)數(shù)據(jù)的寫入與按 RowKey 查詢比如訂單流水、日志明細(xì)、用戶行為軌跡、設(shè)備上報數(shù)據(jù)。它天生不適合復(fù)雜的關(guān)聯(lián)查詢、聚合分析、事務(wù)型強(qiáng)一致場景。把 HBase 當(dāng)關(guān)系庫用方向就錯了。HBase 實(shí)際上是 Google BigTable 模型的開源實(shí)現(xiàn)。Google 當(dāng)年面對海量網(wǎng)頁數(shù)據(jù)的存儲和分析需求發(fā)現(xiàn)傳統(tǒng)數(shù)據(jù)庫根本無法支撐這種量級于是提出了 BigTable 的分布式存儲模型。HBase 借鑒了這一模型把稀疏、多維、有序的 Map 作為核心數(shù)據(jù)模型配合 Hadoop HDFS 作為底層存儲解決了海量數(shù)據(jù)水平擴(kuò)展的問題。這個“借鑒”不是簡單的拷貝HBase 團(tuán)隊基于 JVM 生態(tài)和 Hadoop 生態(tài)做了大量工程化落地的工作才形成了我們今天看到的這套系統(tǒng)。1.2 HBase 和傳統(tǒng)關(guān)系型數(shù)據(jù)庫的本質(zhì)差異很多剛接觸 HBase 的人會用關(guān)系庫的思維去套它結(jié)果處處碰壁。這里把最關(guān)鍵的差異列出來能省下你后面至少三個月的摸索時間。存儲模型關(guān)系庫是行式存儲一張表的所有列物理上連續(xù)存儲適合整行讀取和事務(wù)性操作HBase 是列族式存儲同一列族的數(shù)據(jù)連續(xù)存儲但不同列族各自獨(dú)立適合按列族的局部讀取和批量掃描。索引機(jī)制關(guān)系庫靠二級索引任意列都可以建索引加速查詢HBase 只認(rèn) RowKey 這一個天然索引按 RowKey 的查詢性能最高其他列的查詢要么全表掃描要么依賴額外方案。事務(wù)能力關(guān)系庫支持 ACID 事務(wù)多行多表操作可以保持強(qiáng)一致HBase 只支持行級別的 ACID跨行、跨表的事務(wù)能力非常弱業(yè)界通常用“單行事務(wù) 業(yè)務(wù)補(bǔ)償”的方式來處理。擴(kuò)展方式關(guān)系庫的擴(kuò)展以垂直擴(kuò)展為主數(shù)據(jù)量到一定程度就得換更強(qiáng)的硬件HBase 天然支持水平擴(kuò)展數(shù)據(jù)量大了直接加 RegionServer 節(jié)點(diǎn)就行擴(kuò)容過程中基本不需要停機(jī)。這個對比不是說 HBase 比關(guān)系庫強(qiáng)或弱而是讓你知道在什么場景下該選誰。一個常見的合理架構(gòu)是關(guān)系庫負(fù)責(zé)核心交易類數(shù)據(jù)HBase 負(fù)責(zé)海量明細(xì)數(shù)據(jù)和各類流水?dāng)?shù)據(jù)的存儲與查詢兩者配合使用。1.3 HBase 的生態(tài)位置和應(yīng)用場景圖譜從生態(tài)位置來看HBase 是 Hadoop 體系里唯一能提供實(shí)時隨機(jī)讀寫能力的組件。HDFS 解決存儲問題但不支持隨機(jī)更新Hive 解決離線分析問題但延遲太高HBase 補(bǔ)上了“實(shí)時隨機(jī)讀寫”這塊拼圖。在實(shí)際應(yīng)用中比較典型的幾個場景訂單流水存儲某電商平臺的訂單表每天新增幾千萬條記錄總量達(dá)到幾十億行。這些數(shù)據(jù)按用戶維度查詢頻率高按時間范圍掃描也是常態(tài)。HBase 的 RowKey 設(shè)計成“用戶 ID 反轉(zhuǎn) 時間戳”的格式既能按用戶查也能按時間范圍掃。用戶行為軌跡記錄用戶點(diǎn)擊、瀏覽、搜索行為每天產(chǎn)生海量日志。這類數(shù)據(jù)寫入量極大但單條數(shù)據(jù)價值密度低適合先寫入 HBase 存儲后續(xù)再通過其他渠道分析。物聯(lián)網(wǎng)設(shè)備數(shù)據(jù)上報設(shè)備每秒上報一次狀態(tài)數(shù)據(jù)一天下來單設(shè)備就有 86400 條記錄百萬級設(shè)備就是每天數(shù)億條。HBase 的高吞吐寫入能力在這里發(fā)揮得淋漓盡致RowKey 設(shè)計成“設(shè)備 ID 日期 時間桶”的格式讓寫入壓力均勻分散。消息類數(shù)據(jù)的暫存區(qū)某些場景下需要短期存儲大量消息數(shù)據(jù)消費(fèi)者異步消費(fèi)。HBase 適合做這類暫存和回溯查詢的場景。上面這些場景有幾個共同點(diǎn)寫入量大數(shù)據(jù)量增長快按 Key 查詢?yōu)橹髋紶栃枰秶鷴呙?。這些特征正好就是 HBase 的舒適區(qū)。2. HBase 核心架構(gòu)與數(shù)據(jù)模型2.1 主從架構(gòu)里的角色分工HBase 采用典型的主從架構(gòu)主要由 HMaster 和 RegionServer 兩類核心服務(wù)組成另外還要依賴 ZooKeeper 和 HDFS。這里講清每個角色各自管什么。HMaster 負(fù)責(zé)管理整個集群的元數(shù)據(jù)信息、Region 的分配與遷移、表的創(chuàng)建與刪除、RegionServer 的負(fù)載均衡與故障恢復(fù)。注意HMaster 并不直接參與數(shù)據(jù)的讀寫請求數(shù)據(jù)讀寫都由 RegionServer 處理。這意味著 HMaster 掛了集群的讀寫在短期內(nèi)不受影響只是不能做 DDL 操作和 Region 管理了。RegionServer 是真正干活的節(jié)點(diǎn)每個 RegionServer 管理多個 Region??蛻舳俗x寫數(shù)據(jù)時先根據(jù)元數(shù)據(jù)找到對應(yīng) Region 所在的 RegionServer然后直接與 RegionServer 通信。每個 RegionServer 內(nèi)部包含多個核心組件WAL寫前日志、BlockCache讀緩存、MemStore寫緩存以及管理多個 HFile 文件的 Store。ZooKeeper 在 HBase 里的作用像一個分布式協(xié)調(diào)中心。它維護(hù)著 HBase 的元數(shù)據(jù)入口監(jiān)控 RegionServer 的在線狀態(tài)負(fù)責(zé) HMaster 的選主以及元數(shù)據(jù)表的定位信息。HBase 集群啟動時先由 ZooKeeper 選出 Active HMaster然后 RegionServer 向 ZooKeeper 注冊。HDFS 在最底層負(fù)責(zé)最終的數(shù)據(jù)落盤存儲。RegionServer 接收的寫入數(shù)據(jù)先寫入 HDFS 上的 WAL 文件最終 HFile 文件也是存儲在 HDFS 上的。HDFS 的副本機(jī)制保證了數(shù)據(jù)的可靠性默認(rèn)三副本存儲。HMaster集群管理者負(fù)責(zé)元數(shù)據(jù)、Region 管理、負(fù)載均衡。RegionServer數(shù)據(jù)讀寫服務(wù)者負(fù)責(zé)處理客戶端的實(shí)際請求。ZooKeeper分布式協(xié)調(diào)者負(fù)責(zé)元數(shù)據(jù)入口、狀態(tài)監(jiān)控、選主。HDFS底層存儲者負(fù)責(zé)數(shù)據(jù)的最終落地和多副本保障。2.2 Region 與 RegionServer 的關(guān)系把表數(shù)據(jù)量變大之后HBase 會自動把一張表從行方向切成多個 Region。每個 Region 包含一段連續(xù)的行鍵范圍由起始 RowKey 和結(jié)束 RowKey 定義。比如一張訂單表有 1 億行數(shù)據(jù)按照 RowKey 范圍被切成 10 個 Region每個 Region 負(fù)責(zé) 1000 萬行的數(shù)據(jù)。Region 是 HBase 數(shù)據(jù)分布和負(fù)載均衡的最小單位。RegionServer 啟動時會加載分配給自己的 Region客戶端讀寫數(shù)據(jù)時必須路由到對應(yīng)的 RegionServer。數(shù)據(jù)量增長后Region 會不斷分裂成子 Region分裂出去的 Region 可能被分配給其他 RegionServer以此實(shí)現(xiàn)負(fù)載均衡。Region 分裂是一個高頻且重要的操作。默認(rèn)情況下當(dāng)單個 Region 的數(shù)據(jù)量超過一定閾值由hbase.hregion.max.filesize參數(shù)控制默認(rèn) 10GBRegion 會觸發(fā)分裂。分裂時原有 Region 會先離線然后被切成兩個子 Region底層 HFile 文件會被分成引用文件。這個過程中對正在進(jìn)行讀寫請求的客戶端會有短暫影響所以在流量高峰期要注意控制分裂頻率。2.3 數(shù)據(jù)模型表、行、列族、單元格、時間戳HBase 的數(shù)據(jù)模型是很多人最容易繞暈的地方這里把它掰開揉碎講。一張表由若干行組成每行由 RowKey行鍵唯一標(biāo)識。行與行之間按 RowKey 字典序排列這個順序決定了數(shù)據(jù)在物理存儲上的位置。每行數(shù)據(jù)被劃分到一個或多個列族Column Family中。列族是列的集合屬于同一列族的所有列在物理上存儲在一起。列族需要在建表時預(yù)先定義好而且盡量穩(wěn)定不變因?yàn)檎{(diào)整列族是非常重的操作。一個常用的設(shè)計原則是把訪問模式相似的列放到同一列族不同訪問模式的列放到不同列族。比如“用戶基本信息”放一個列族“用戶擴(kuò)展屬性”放另一個列族因?yàn)榛拘畔⒌牟樵冾l率遠(yuǎn)高于擴(kuò)展屬性。列Column由“列族:列標(biāo)識”這樣的格式組成例如info:agedata:score。這個設(shè)計意味著每一行的列可以是稀疏的某些行可以有某些列某些行可以沒有這些列空值不占用存儲空間。單元格Cell是真正存儲數(shù)據(jù)的地方由 RowKey、列族、列、時間戳版本號唯一確定。每個單元格可以保存同一數(shù)據(jù)的多個歷史版本版本數(shù)由VERSIONS參數(shù)控制默認(rèn)是 1也就是只保留最新一個版本??梢酝ㄟ^設(shè)置VERSIONS為 3 或更高來保存歷史數(shù)據(jù)。例如設(shè)置VERSIONS 3之后對同一個 RowKey 的同一個列進(jìn)行三次修改查詢時可以讀取到三個歷史版本。存儲順序方面HBase 的數(shù)據(jù)整體按 RowKey 字典序排列同一行內(nèi)按列族排序同一列族內(nèi)按列標(biāo)識排序同一單元格內(nèi)按版本號倒序排列最新版本在前。這個排序規(guī)則直接影響 RowKey 的設(shè)計策略。3. 存儲機(jī)制與讀寫鏈路詳解3.1 寫入鏈路WAL、MemStore 與 HFile 的三角關(guān)系理解 HBase 的寫入流程需要先建立三個關(guān)鍵組件的印象WALWrite-Ahead Log預(yù)寫日志HBase 寫入數(shù)據(jù)時先寫 WAL再寫內(nèi)存。這樣即使節(jié)點(diǎn)宕機(jī)也可以從 WAL 恢復(fù)數(shù)據(jù)。MemStore每個 Region 的每個列族對應(yīng)一個 MemStore它是一塊內(nèi)存區(qū)域?qū)懭霐?shù)據(jù)先在這里緩沖。HFile數(shù)據(jù)最終落盤的存儲文件格式存儲在 HDFS 上。寫入流程是這樣的客戶端發(fā)起 Put 請求先通過元數(shù)據(jù)定位到目標(biāo) Region 所在的 RegionServer然后寫入流程開始。第一步寫 WAL把數(shù)據(jù)追加到 WAL 文件末尾第二步寫入 MemStore把數(shù)據(jù)更新到內(nèi)存結(jié)構(gòu)中。寫 WAL 成功之后客戶端就會收到成功響應(yīng)。這里有個值得注意的細(xì)節(jié)HBase 默認(rèn)開啟了 WAL但有些業(yè)務(wù)場景為了追求極致的寫入性能可以關(guān)閉 WAL。關(guān)閉 WAL 的代價是數(shù)據(jù)可靠性大幅下降一旦節(jié)點(diǎn)宕機(jī)內(nèi)存中尚未落盤的數(shù)據(jù)會全部丟失。我通常給出的建議是能開 WAL 就開不要為了那點(diǎn)性能去賭節(jié)點(diǎn)穩(wěn)定性。當(dāng) MemStore 的數(shù)據(jù)量達(dá)到某個閾值hbase.hregion.memstore.flush.size默認(rèn) 128MB時MemStore 里的數(shù)據(jù)會被刷寫成一個個 HFile 文件。這個過程叫 Flush。隨著 HFile 文件越來越多后臺的合并線程會周期性地把多個 HFile 合并成一個大的 HFile這個過程叫 Compact。合并會減少文件數(shù)量提高讀取性能但合并過程本身消耗 I/O所以需要在合并頻率和讀取性能之間找到平衡。3.2 讀取鏈路BlockCache 與布隆過濾器的加速機(jī)制讀取流程相對復(fù)雜因?yàn)?HBase 需要在內(nèi)存和磁盤之間做多級查找??蛻舳税l(fā)起 Get 請求后首先從 BlockCache讀緩存中查找。BlockCache 會緩存最近讀取過的 HFile 數(shù)據(jù)塊命中緩存則直接返回未命中則繼續(xù)向 MemStore 和 HFile 層查找。MemStore 中保存了尚未落盤的最新數(shù)據(jù)這部分?jǐn)?shù)據(jù)一定是最新的所以要優(yōu)先檢查。然后才是 HFile 層這也是最耗時的部分。HFile 文件內(nèi)部按塊Block組織默認(rèn)塊大小是 64KB。為了提升查找效率HBase 引入了布隆過濾器Bloom Filter機(jī)制它能在查找某個 RowKey 時快速判斷某個 HFile 文件中是否可能存在該數(shù)據(jù)如果判斷不存在就跳過該文件避免無效掃描。讀取流程還有一層關(guān)鍵設(shè)計反向合并。HBase 會從新到舊反向合并所有可能包含目標(biāo)數(shù)據(jù)的文件最新的數(shù)據(jù)優(yōu)先返回保證讀到的是最新版本。如果某個 RowKey 的數(shù)據(jù)分布在多個 HFile 中HBase 需要比較多個文件中同一 RowKey 的數(shù)據(jù)取出版本號最大的那個返回這一過程會有額外的 I/O 開銷也是合并操作存在的原因。3.3 合并與分裂Compaction 對性能的雙刃劍效應(yīng)合并分為兩種Minor Compaction 和 Major Compaction。Minor Compaction 是自動觸發(fā)的小規(guī)模合并通常合并幾個較小的 HFile代價較小。Major Compaction 是重寫所有 HFile 的大規(guī)模合并會清理刪除標(biāo)記和過期版本代價很大通常在業(yè)務(wù)低峰期手動觸發(fā)。Major Compaction 是雙刃劍一方面它能大幅提高讀取性能清理垃圾數(shù)據(jù)減少文件數(shù)量另一方面它會產(chǎn)生大量的磁盤 I/O占用 CPU 和帶寬資源。如果集群性能本來就緊張一次大的 Major Compaction 可能引發(fā)一系列連鎖問題甚至影響在線業(yè)務(wù)。在實(shí)際運(yùn)維中我通常建議控制 Major Compaction 的頻率和窗口??梢园炎詣?Major Compaction 關(guān)閉改成每天凌晨業(yè)務(wù)低峰期定時執(zhí)行。相關(guān)參數(shù)是hbase.hregion.majorcompaction默認(rèn)值是 7 天執(zhí)行一次可以設(shè)置為 0 關(guān)閉自動模式。Region 分裂我之前提過這里再補(bǔ)充一個操作細(xì)節(jié)當(dāng)單 Region 數(shù)據(jù)量超過閾值時Region 自動分裂原 Region 的 HFile 會被拆成引用文件供子 Region 使用。后續(xù)讀寫過程中子 Region 的數(shù)據(jù)會逐漸寫入自己的新 HFile引用文件最終會被清理掉。分裂過程中會短暫暫停該 Region 的寫入所以建議在高寫入壓力集群中提前規(guī)劃好 Region 的預(yù)分裂讓數(shù)據(jù)均勻分布在多個 Region 上而不是等數(shù)據(jù)量增長后再自動分裂。4. 環(huán)境搭建與使用入門基于模擬項(xiàng)目X4.1 從零搭建 HBase 集群的關(guān)鍵步驟下面以一套三節(jié)點(diǎn)的模擬集群為例演示從零搭建的過程。環(huán)境基于主流開源組件版本組合Hadoop 3.x HBase 2.x ZooKeeper 3.xJDK 統(tǒng)一為 8 或 11。第一步是時間同步與主機(jī)名配置。分布式系統(tǒng)對時間同步要求很高HBase 的寫入時間戳依賴客戶端和服務(wù)器的時間一致。用 NTP 或 chrony 保證三臺機(jī)器時間誤差在 50ms 以內(nèi)。主機(jī)名解析要寫進(jìn) /etc/hosts不能用 IP 直連的配置方式避免后續(xù)擴(kuò)容和元數(shù)據(jù)交換出問題。第二步是部署 HDFS。HBase 依賴 HDFS 存儲數(shù)據(jù)需要先搭建一個可用的 HDFS 集群。核心配置項(xiàng)包括dfs.replication副本數(shù)生產(chǎn)環(huán)境建議 3、dfs.namenode.name.dir元數(shù)據(jù)存儲路徑建議用獨(dú)立磁盤閃存盤、dfs.datanode.data.dir數(shù)據(jù)存儲路徑可以配置多個磁盤目錄實(shí)現(xiàn)負(fù)載分擔(dān)。HDFS 部署完成后用hdfs dfsadmin -report確認(rèn)所有 DataNode 在線再進(jìn)行下一步。第三步是部署 ZooKeeper。ZooKeeper 集群建議奇數(shù)節(jié)點(diǎn)最少 3 個。配置文件 zoo.cfg 里的dataDir要放在獨(dú)立磁盤上不跟系統(tǒng)盤共用。ZooKeeper 的日志和數(shù)據(jù)也建議分離存儲。第四步是安裝 HBase。下載二進(jìn)制包解壓修改hbase-env.sh設(shè)置 JAVA_HOME修改hbase-site.xml配置核心參數(shù)property namehbase.rootdir/name valuehdfs://namenode:8020/hbase/value /property property namehbase.zookeeper.quorum/name valuenode1,node2,node3/value /property property namehbase.cluster.distributed/name valuetrue/value /property第五步是配置 regionservers 文件把三臺節(jié)點(diǎn)都寫進(jìn)去然后啟動集群。先啟動 Hadoop再啟動 ZooKeeper最后啟動 HBase。用hbase shell進(jìn)入命令行執(zhí)行status命令看到多臺 RegionServer 在線集群就基本就緒了。4.2 建表與數(shù)據(jù)操作常用命令逐個過HBase 的交互操作主要走 HBase Shell雖然生產(chǎn)環(huán)境一般用 Java API 或者各類框架封裝但 Shell 是理解數(shù)據(jù)模型和排查問題的最好工具。建表的基本語法是這樣的create user_profile, {NAME info, VERSIONS 3}, {NAME data}這條命令創(chuàng)建了一張名為 user_profile 的表包含兩個列族info 和 data。info 列族保留 3 個歷史版本。創(chuàng)建成功后用list查看當(dāng)前所有表用describe user_profile查看表的詳細(xì)結(jié)構(gòu)包括各列族的屬性、TTL、布隆過濾器類型等。插入數(shù)據(jù)的語法用 put 命令put user_profile, rowkey_001, info:age, 28 put user_profile, rowkey_001, info:name, 張三 put user_profile, rowkey_001, data:score, 95這里的邏輯是向 user_profile 表的 rowkey_001 行寫入 info:age 列值為 28。同一個 RowKey 的多個 put 操作不需要在一個事務(wù)里執(zhí)行因?yàn)?HBase 的單行操作天然是原子的。查詢數(shù)據(jù)用 get 和 scanget user_profile, rowkey_001 get user_profile, rowkey_001, {COLUMN info:age} scan user_profile, {STARTROW rowkey_001, STOPROW rowkey_002}get 按 RowKey 精確查詢性能最高。scan 按范圍掃描STARTROW 是起始行包含STOPROW 是結(jié)束行不包含。scan 時可以指定列族、列、版本數(shù)、緩存大小等參數(shù)控制掃描的數(shù)據(jù)量。刪除數(shù)據(jù)的語法delete user_profile, rowkey_001, info:age deleteall user_profile, rowkey_001delete 刪除指定列deleteall 刪除整行。注意HBase 的刪除操作只是打一個刪除標(biāo)記并不會立即物理刪除數(shù)據(jù)要到 Major Compaction 時才會真正清理。4.3 常用過濾器與參數(shù)調(diào)優(yōu)HBase 的查詢能力遠(yuǎn)不止 get 和 scan過濾器Filter才是擴(kuò)展查詢能力的關(guān)鍵。單列值過濾器可以按列的值過濾行鍵前綴過濾器可以按 RowKey 前綴匹配分頁過濾器可以實(shí)現(xiàn)分頁查詢列值比較器可以配合多種比較操作符使用。使用過濾器時要注意大多數(shù)過濾器會導(dǎo)致全表掃描性能開銷非常大。在千萬級以上數(shù)據(jù)的表上執(zhí)行帶過濾器的 scan耗時會明顯拉長。如果業(yè)務(wù)上確實(shí)需要按非 RowKey 列查詢建議考慮引入二級索引方案或者設(shè)計好 RowKey 讓查詢直接命中。關(guān)于 Shell 之外的開發(fā)接口最常用的是 Java API。核心類包括 Connection、Table、Put、Get、Scan、ResultScanner。讀寫頻繁的代碼段要復(fù)用 Connection 和 Table 實(shí)例因?yàn)閯?chuàng)建連接和獲取 Table 對象是重量級操作頻繁創(chuàng)建對性能影響很大。連接參數(shù)建議設(shè)置合理的超時時間和 RPC 重試次數(shù)。Connection conn ConnectionFactory.createConnection(conf); Table table conn.getTable(TableName.valueOf(user_profile)); Put put new Put(Bytes.toBytes(rowkey_001)); put.addColumn(Bytes.toBytes(info), Bytes.toBytes(age), Bytes.toBytes(28)); table.put(put);這段代碼完成了之前 Shell 里的寫入操作注意所有維度信息都要通過 Bytes 工具類轉(zhuǎn)成字節(jié)數(shù)組。讀寫完畢記得關(guān)閉 Table 和 Connection。5. RowKey 設(shè)計HBase 性能的分水嶺5.1 設(shè)計原則與常見風(fēng)格RowKey 設(shè)計是整個 HBase 建模中最關(guān)鍵的環(huán)節(jié)沒有之一。RowKey 決定了數(shù)據(jù)分布方式、查詢效率、寫入吞吐甚至決定了 Region 會不會出現(xiàn)熱點(diǎn)。第一條原則是長度盡量短。RowKey 是每行數(shù)據(jù)的唯一標(biāo)識長度越長存儲開銷和比較開銷越大。雖然 HBase 沒有強(qiáng)制限制 RowKey 長度但實(shí)踐中建議控制在幾十字節(jié)以內(nèi)。一個常見的誤區(qū)是使用業(yè)務(wù)主鍵直接拼接比如訂單號加用戶 ID 再加時間戳結(jié)果 RowKey 長度到了上百字節(jié)。第二條原則是散列與有序的平衡。HBase 按 RowKey 字典序排列單調(diào)遞增的 RowKey比如純時間戳?xí)屗袑懭攵技性谧詈笠粋€ Region 上形成寫熱點(diǎn)。解決方案是在 RowKey 前綴加入散列字段比如用戶 ID 反轉(zhuǎn)、MD5 前綴截取。第三條原則是查詢與存儲的權(quán)衡。設(shè)計 RowKey 時要考慮最常用的查詢場景。比如訂單表最常用的查詢是按用戶 ID 查最近訂單RowKey 可以設(shè)計成“反轉(zhuǎn)用戶 ID 時間戳倒序”這樣同一用戶的所有訂單在物理存儲上連續(xù)按用戶查詢時只需一次 scan。業(yè)務(wù)上常見的 RowKey 風(fēng)格有這么幾種反轉(zhuǎn)補(bǔ)零法把用戶 ID 反轉(zhuǎn)比如 12345 變成 54321保證前綴分散MD5 散列法取 MD5 的前幾位作為前綴打散寫入時間戳倒序法配合前綴使新數(shù)據(jù)排在前部適合讀取最新數(shù)據(jù)的場景。每種方案都有適用的場景需要結(jié)合業(yè)務(wù)特點(diǎn)選型。5.2 熱點(diǎn)問題寫入傾斜與讀取傾斜熱點(diǎn)主要指兩種情況寫入熱點(diǎn)和讀取熱點(diǎn)。寫入熱點(diǎn)是因?yàn)?RowKey 單調(diào)遞增所有新寫入的數(shù)據(jù)都被路由到同一個或少數(shù)幾個 Region 上。應(yīng)對方法就是加鹽Salting在 RowKey 前面拼一個隨機(jī)數(shù)或取模值比如把訂單號散列到 10 個桶桶號作為前綴。散列之后寫入壓力均勻分散到 10 個 Region 上。讀取熱點(diǎn)是大部分查詢都命中了某幾個固定 RowKey 或固定范圍導(dǎo)致這些 Region 所在節(jié)點(diǎn)的負(fù)載過高。這種情況單純調(diào) RowKey 解決不了需要從業(yè)務(wù)層面做緩存、分流或者把熱數(shù)據(jù)的 RowKey 進(jìn)一步細(xì)分比如按時間維度拆分。另一個經(jīng)常被忽略的細(xì)節(jié)RowKey 的前綴如果固定不變后面跟的業(yè)務(wù)字段即使長度很大也會因?yàn)樽值湫蚺判驅(qū)е戮植繑?shù)據(jù)堆積。理想的設(shè)計是所有 RowKey 的前幾位都有足夠的離散度讓數(shù)據(jù)的分布盡可能均勻。5.3 預(yù)分區(qū)與桶表設(shè)計實(shí)操創(chuàng)建一張新表時默認(rèn)只有一個 Region數(shù)據(jù)量上來后才慢慢分裂。如果一開始就知道這張表數(shù)據(jù)量會很大建議直接預(yù)分區(qū)。預(yù)分區(qū)的操作是建表時指定 SPLITS 參數(shù)把 RowKey 范圍切割成多個區(qū)間。比如按 RowKey 前綴 0000-9999 均勻切割成 100 個 Regioncreate big_table, info, {NUMREGIONS 100, SPLITALGO HexStringSplit}HexStringSplit 算法會把 RowKey 看成一串十六進(jìn)制字符均勻切割成給定數(shù)量的 Region。另一種手工指定關(guān)鍵邊界的方式是直接在 SPLITS 參數(shù)里寫清楚區(qū)間邊界數(shù)組。預(yù)分區(qū)的意義在于數(shù)據(jù)寫入一開始就能均勻分布到多個 RegionServer避免前期數(shù)據(jù)集中在一個節(jié)點(diǎn)上。同時還能避免高峰期自動分裂帶來的性能抖動。預(yù)分區(qū)數(shù)量不是越多越好Region 過多會帶來元數(shù)據(jù)管理開銷和合并頻率上升的問題。經(jīng)驗(yàn)值是按照未來半年到一年的數(shù)據(jù)量預(yù)估讓每個 Region 的數(shù)據(jù)量在 5-10GB 之間比較合適。如果業(yè)務(wù)的 RowKey 分布不均勻還可以用桶表設(shè)計把 RowKey 先散列到 N 個桶每個桶對應(yīng)一個固定 Region 范圍。這樣即使原始 RowKey 分布不均經(jīng)過桶的散列后也能均勻分布。6. 核心參數(shù)配置與性能調(diào)優(yōu)6.1 內(nèi)存規(guī)劃RegionServer 堆內(nèi)堆外分配HBase 的內(nèi)存配置直接決定了讀寫性能的上限。RegionServer 的內(nèi)存主要分為三塊堆內(nèi)內(nèi)存中的 MemStore 占比、BlockCache 占比以及堆外內(nèi)存用于網(wǎng)絡(luò)通信和部分?jǐn)?shù)據(jù)讀寫。典型的堆內(nèi)存分配方式是把可用堆內(nèi)存按比例劃分給 MemStore 和 BlockCache但兩者之間需要預(yù)留一定余量避免某一塊被占滿后無法動態(tài)調(diào)配。相關(guān)參數(shù)hbase.regionserver.global.memstore.size默認(rèn) 0.4表示 MemStore 占堆內(nèi)存的最大比例。寫入密集場景可以調(diào)高到 0.5 以上但要注意留給 BlockCache 的空間不能過小。hbase.regionserver.global.memstore.size.lower.limit默認(rèn) 0.38表示觸發(fā)強(qiáng)制刷寫的 MemStore 比例下限。hfile.block.cache.size默認(rèn) 0.4表示 BlockCache 占堆內(nèi)存的比例。實(shí)際調(diào)優(yōu)時可以用公式估算RegionServer 堆內(nèi)存 MemStore BlockCache 其他默認(rèn)約 20% 余量。如果寫入壓力大MemStore 給 0.5、BlockCache 給 0.3如果讀取壓力大MemStore 給 0.3、BlockCache 給 0.5。總的原則是不能讓兩者相加接近 1否則 GC 壓力會非常大。堆外內(nèi)存方面HBase 默認(rèn)使用堆外內(nèi)存用于 RPC 層面的 ByteBuffer 緩沖效果是減少 GC 壓力和數(shù)據(jù)拷貝次數(shù)。一般不需要手動改保持默認(rèn)配置即可。6.2 關(guān)鍵寫路徑參數(shù)與讀路徑參數(shù)寫路徑的核心參數(shù)控制的是 MemStore 何時刷寫、WAL 同步方式、Region 分裂閾值。這些參數(shù)直接決定了寫入吞吐量和數(shù)據(jù)安全性。hbase.hregion.memstore.flush.size默認(rèn) 128MB單個 MemStore 大小達(dá)到該值后觸發(fā)刷寫。hbase.regionserver.global.memstore.size默認(rèn) 0.4RegionServer 所有 Region 的 MemStore 總大小達(dá)到堆內(nèi)存比例后觸發(fā)強(qiáng)制刷寫。hbase.regionserver.wal.codecWAL 文件編碼相關(guān)配置默認(rèn)使用WALCellCodec。hbase.wal.provider默認(rèn)使用AsyncFSWALProvider異步刷寫模式性能更好。hbase.hregion.max.filesize默認(rèn) 10GB單個 Region 的 Store 文件總大小超過該值觸發(fā)分裂。讀路徑的核心參數(shù)控制的是 BlockCache 容量、掃描緩存大小、RPC 超時等。hbase.client.scanner.cachingscan 時每次 RPC 請求返回給客戶端的行數(shù)默認(rèn) 100。值太大會增加單次 RPC 的數(shù)據(jù)量但能減少 RPC 次數(shù)值太小會導(dǎo)致頻繁請求性能下降。hbase.client.scanner.blockcachescan 時是否使用 BlockCache默認(rèn) true。全表掃描類場景建議關(guān)閉因?yàn)榇罅繑?shù)據(jù)涌入會污染緩存。hbase.rpc.timeoutRPC 超時時間默認(rèn) 60000ms高延遲場景需要適當(dāng)調(diào)大。6.3 GC 調(diào)優(yōu)與 JVM 參數(shù)最佳實(shí)踐HBase 是 Java 系服務(wù)GC 調(diào)優(yōu)是性能優(yōu)化的重要一環(huán)。RegionServer 節(jié)點(diǎn)上如果頻繁發(fā)生 Full GC整個節(jié)點(diǎn)的讀寫請求都會出現(xiàn)卡頓表現(xiàn)為明顯的毛刺延遲。常見的 GC 問題集中在 MemStore 上的對象過多導(dǎo)致年輕代回收頻繁。優(yōu)化方向是調(diào)整新生代大小讓短生命周期對象盡量在 Minor GC 階段就被回收合理使用 CMS 或 G1 垃圾回收器。對于 HBase 2.x 版本G1 是比較推薦的選擇。核心參數(shù)可以這樣設(shè)置export HBASE_REGIONSERVER_OPTS-Xms16g -Xmx16g -XX:UseG1GC -XX:MaxGCPauseMillis100Xms 和 Xmx 設(shè)置為相同值避免堆內(nèi)存動態(tài)伸縮帶來的性能損失。MaxGCPauseMillis 設(shè)置目標(biāo)停頓時間G1 會盡量控制在這個范圍內(nèi)。如果 Full GC 仍然頻繁需要檢查是否有大對象分配、MemStore 是否過大、HFile 過多導(dǎo)致的合并壓力。一個容易忽視的地方HDFS 的 DataNode 進(jìn)程和 RegionServer 進(jìn)程混布在同一臺機(jī)器上時兩者的內(nèi)存和磁盤 I/O 會互相爭搶。實(shí)際部署時要根據(jù)物理機(jī)內(nèi)存合理分配總內(nèi)存 64GB 的機(jī)器可以給 RegionServer 分配 24GB給 DataNode 分配 8GB其余留給操作系統(tǒng)頁緩存。6.4 讀寫分離與熱點(diǎn)數(shù)據(jù)緩存HBase 層面沒有嚴(yán)格意義上的讀寫分離但可以通過參數(shù)和架構(gòu)手法實(shí)現(xiàn)近似效果。一個常用方式是使用 Buffer 機(jī)制寫入時批量提交降低 RPC 次數(shù)讀取時增加 BlockCache 命中率減少磁盤 I/O。對于熱點(diǎn)數(shù)據(jù)的讀取可以在業(yè)務(wù)層加一層緩存。比如按用戶 ID 查詢的數(shù)據(jù)可以把查詢結(jié)果緩存在應(yīng)用層或 Redis 中緩存過期時間按數(shù)據(jù)更新頻率設(shè)置。HBase 底層的 BlockCache 也可以優(yōu)化如果某類數(shù)據(jù)查詢頻率極高可以通過參數(shù)調(diào)整讓這類數(shù)據(jù)的 Block 更長時間留在緩存里。另一個實(shí)踐是把熱數(shù)據(jù)和冷數(shù)據(jù)拆分到不同表或不同列族。熱數(shù)據(jù)保留高版本數(shù)、短 TTL冷數(shù)據(jù)保留低版本數(shù)、長 TTL。這樣熱數(shù)據(jù)的查詢和寫入都不受冷數(shù)據(jù)量大、合并頻繁的影響。7. 常見問題與故障排查7.1 集群啟動失敗與元數(shù)據(jù)異常集群啟動失敗是每個人都會遇到的第一個坎。最常見的癥狀是啟動后 HMaster 進(jìn)程自動退出或者 RegionServer 注冊不上。排查第一步就是看日志。HBase 的日志放在$HBASE_HOME/logs目錄下HMaster 的日志文件是hbase-hmaster-xxx.logRegionServer 的是hbase-regionserver-xxx.log。打開日志文件快速搜索 ERROR 和 FATAL 級別的信息。常見原因之一是 ZooKeeper 連接失敗日志里會出現(xiàn)ConnectionLossException或KeeperException。檢查 ZooKeeper 服務(wù)是否正常hbase.zookeeper.quorum配置的地址是否可達(dá)端口是否被防火墻攔截。另一個常見問題是 HDFS 目錄權(quán)限不對。HBase 首次啟動需要在 HDFS 上創(chuàng)建根目錄如果hbase.rootdir指向的路徑?jīng)]有寫權(quán)限啟動必然失敗。解決辦法是先在 HDFS 上mkdir -p并授權(quán)。元數(shù)據(jù)異常是更嚴(yán)重的問題。HBase 的元數(shù)據(jù)存放在hbase:meta表中如果這個表的數(shù)據(jù)損壞整個集群都無法正常工作。日常運(yùn)維要監(jiān)控hbase:meta表所在 RegionServer 的健康狀態(tài)定期檢查 Region 是否卡在 RITRegion In Transition狀態(tài)。RIT 狀態(tài)卡住時用命令hbase hbck檢查并修復(fù)。7.2 讀寫性能驟降的排查思路讀寫性能驟降是運(yùn)維中最常見也最頭疼的問題。引發(fā)原因通常有幾個GC 異常、磁盤 I/O 打滿、Region 熱點(diǎn)、合并風(fēng)暴。GC 異常通過監(jiān)控面板看 RegionServer 的 GC 時間和頻率如果 Full GC 頻繁按前面說的 JVM 調(diào)優(yōu)方向處理。磁盤 I/O 打滿用iostat或dstat看磁盤的讀寫速率和等待時間。如果磁盤持續(xù)高負(fù)載重點(diǎn)檢查是否有大合并任務(wù)在執(zhí)行必要時把 Major Compaction 挪到低峰期。Region 熱點(diǎn)檢查是否某個 Region 的讀寫請求量遠(yuǎn)高于其他 Region。熱點(diǎn)通常由 RowKey 設(shè)計不合理引起先查詢各 Region 的請求分布。合并風(fēng)暴RegionServer 上的 HFile 數(shù)量突然激增大量合并任務(wù)同時執(zhí)行。這種情況一般發(fā)生在大量寫入后MemStore 頻繁刷寫導(dǎo)致 HFile 文件數(shù)過多。排查思路可以按順序走先看監(jiān)控面板確認(rèn)問題節(jié)點(diǎn)再看 GC 日志確認(rèn) JVM 狀態(tài)再用系統(tǒng)命令查看磁盤和網(wǎng)絡(luò) I/O最后分析 HBase 層的 Region 分布和請求量。7.3 數(shù)據(jù)不一致與 Region 遷移故障處理HBase 的數(shù)據(jù)不一致問題相對少見但一旦出現(xiàn)影響很大。常見場景是在 Region 遷移或故障恢復(fù)期間客戶端訪問到舊路由導(dǎo)致查詢失敗。這類問題通常通過重試機(jī)制解決客戶端配置了合理的 RPC 重試次數(shù)后短暫的路由抖動是可以容忍的。但如果持久不一致就需要檢查元數(shù)據(jù)表和實(shí)際 Region 分布是否匹配。Region 遷移故障的典型表現(xiàn)是某個 Region 長時間停留在 RIT 狀態(tài)。處理辦法是先檢查該 Region 涉及的 RegionServer 是否在線日志中有沒有異常堆棧。必要時手動觸發(fā)assign操作assign region_encoded_name如果持續(xù)失敗檢查 ZooKeeper 中的節(jié)點(diǎn)狀態(tài)以及在 HDFS 上確認(rèn)對應(yīng) Region 的目錄是否完整。7.4 監(jiān)控體系搭建與告警策略沒有監(jiān)控就去運(yùn)維 HBase等于閉著眼睛開車。必要的基礎(chǔ)監(jiān)控指標(biāo)包括集群層面RegionServer 在線狀態(tài)、HMaster 存活狀態(tài)、Region 總數(shù)、RIT 數(shù)量。節(jié)點(diǎn)層面CPU、內(nèi)存、磁盤 I/O、網(wǎng)絡(luò)帶寬。HBase 內(nèi)部MemStore 大小、BlockCache 命中率、HFile 文件數(shù)、寫延遲、讀延遲、Region 熱點(diǎn)分布、GC 暫停時間。推薦的監(jiān)控方案是把 HBase 的指標(biāo)暴露出來用主流監(jiān)控系統(tǒng)采集再配置告警規(guī)則。關(guān)鍵告警項(xiàng)包括RegionServer 宕機(jī)、HMaster 主備切換、RIT 數(shù)量大于 0、寫阻塞或讀阻塞超過閾值、GC 暫停時間超過 5 秒、磁盤使用率超過 80%。有個運(yùn)維心得告警規(guī)則不是越多越好告警噪音太大會導(dǎo)致真正的問題被淹沒。核心告警控制在 10 條以內(nèi)每條告警都要附帶排查文檔鏈接讓值班同學(xué)拿到告警就能按步驟處理。8. HBase 調(diào)優(yōu)與優(yōu)化的進(jìn)階路線8.1 基于業(yè)務(wù)特征的讀寫優(yōu)化策略調(diào)優(yōu)不能脫離業(yè)務(wù)場景空談。同一套參數(shù)寫入密集的日志場景和讀密集的查詢場景優(yōu)化方向完全是相反的。寫入密集場景適當(dāng)增大 MemStore 刷寫閾值減少小文件數(shù)量。合理配置 HDFS 的寫入緩沖提升寫吞吐。避免單個 Region 同時接收過多寫入請求預(yù)分區(qū)要到位。可以按需關(guān)閉 WAL但必須清楚數(shù)據(jù)丟失的風(fēng)險。讀密集場景增大 BlockCache 比例提升緩存命中率。減少 HFile 數(shù)量壓縮文件必要時手動觸發(fā) Major Compaction。設(shè)計高效的 RowKey讓查詢盡量走精確 Get 而非全表 Scan。對熱點(diǎn)查詢增加業(yè)務(wù)層緩存。8.2 表結(jié)構(gòu)層面的優(yōu)化手段表結(jié)構(gòu)的優(yōu)化主要圍繞列族、壓縮、TTL 展開。列族數(shù)量一張表不建議設(shè)置太多列族HBase 官方建議 1-3 個。列族過多會導(dǎo)致每個 MemStore 都要占用內(nèi)存Region 的數(shù)據(jù)分布邏輯變復(fù)雜。壓縮算法HBase 支持 GZ、LZO、SNAPPY 等壓縮算法。不同算法的壓縮比和 CPU 消耗不同。SNAPPY 是平衡壓縮比和 CPU 開銷的常用選擇。設(shè)置壓縮的語句示例alter user_profile, {NAME info, COMPRESSION SNAPPY}壓縮設(shè)置修改后后續(xù)的 HFile 文件會按新算法生成但已有的舊文件不會立即轉(zhuǎn)換需要觸發(fā)一次 Major Compaction 才能真正生效。TTL 設(shè)置HBase 支持按列族設(shè)置數(shù)據(jù)的存活時間超時數(shù)據(jù)會被自動清理。日志類數(shù)據(jù)建議設(shè)置 TTL既能控制存儲成本又能減少數(shù)據(jù)量大帶來的合并壓力。create log_table, {NAME info, TTL 604800}上面例子表示 info 列族的數(shù)據(jù)保存 7 天604800 秒到期后自動過期。8.3 數(shù)據(jù)遷移與備份恢復(fù)方案HBase 數(shù)據(jù)遷移的常用工具有很多但不同場景有不同選型Export 工具把表數(shù)據(jù)導(dǎo)出為 SequenceFile適合跨版本或跨集群遷移。缺點(diǎn)是速度較慢適合中小表。CopyTable直接跨集群拷貝數(shù)據(jù)支持在線操作但對網(wǎng)絡(luò)帶寬要求高。Snapshot對表做快照基于快照做 bulkload 或克隆。這是目前比較推薦的方式速度快且對在線業(yè)務(wù)影響小。雙寫方案在新集群上線初期業(yè)務(wù)層同時向新舊集群寫數(shù)據(jù)讀的時候先讀新集群回退到舊集群。適合對遷移窗口要求高的場景。備份層面HBase 的 Snapshot 是最常用的備份方式。定期對關(guān)鍵業(yè)務(wù)表做快照快照文件放在 HDFS 上不會影響線上讀寫。恢復(fù)時直接restore_snapshot即可。實(shí)操中建議每日低峰期對核心表做一次快照快照保留周期根據(jù)業(yè)務(wù)需求設(shè)置。8.4 常見性能優(yōu)化場景實(shí)例復(fù)盤這里分享一個模擬項(xiàng)目中的真實(shí)調(diào)優(yōu)案例具備一定的普適性。背景某用戶行為分析系統(tǒng)將用戶行為日志寫入 HBase每天新增約 5000 萬行單表總量超過 20 億行。業(yè)務(wù)方要求查詢延遲在 100ms 以內(nèi)。上線初期寫入吞吐量指標(biāo)不理想部分時段寫阻塞延遲抖動明顯。排查發(fā)現(xiàn)三個問題RowKey 設(shè)計不合理。原設(shè)計是用戶ID:時間戳但用戶 ID 前幾位高度集中導(dǎo)致部分 Region 寫入量遠(yuǎn)高于其他節(jié)點(diǎn)形成寫熱點(diǎn)。修改為反轉(zhuǎn)用戶ID:時間戳后熱點(diǎn)消失。HFile 數(shù)量過多。MemStore 頻繁刷寫Minor Compaction 跟不上小文件產(chǎn)生的速度。調(diào)大了刷寫閾值同時關(guān)閉自動 Major Compaction改為每天凌晨手動觸發(fā)一次。BlockCache 命中率偏低。部分報表場景進(jìn)行全表掃描污染了緩存。把這些掃描任務(wù)改成在專用查詢集群上執(zhí)行線上集群只承載實(shí)時查詢。經(jīng)過三天迭代調(diào)優(yōu)后寫入吞吐提升了兩倍P99 延遲降到 50ms 以內(nèi)。整個調(diào)優(yōu)過程是典型的三步走先解決熱點(diǎn)分布再調(diào)整合并策略最后隔離查詢負(fù)載。9. 經(jīng)驗(yàn)沉淀與建議踩過的坑多了有些經(jīng)驗(yàn)還是想記錄下來給后來人一個參考。首先是 HBase 的版本選擇不要追新生產(chǎn)環(huán)境用社區(qū)廣泛驗(yàn)證的穩(wěn)定版本即可新版本雖然特性多但遇到的坑需要社區(qū)時間去填平。其次是監(jiān)控體系一定要在業(yè)務(wù)上線前就搭好不要等出了問題才去補(bǔ)監(jiān)控。HBase 調(diào)優(yōu)不是一次性工作它會隨著數(shù)據(jù)量增長和業(yè)務(wù)變化持續(xù)進(jìn)行。定期審視 Region 數(shù)量、HFile 文件數(shù)、熱點(diǎn)分布、GC 情況把優(yōu)化變成常態(tài)化機(jī)制比出事再救火有效得多。最后再分享一個小技巧每次表和 RowKey 設(shè)計評審時花十分鐘按照未來一年數(shù)據(jù)量模擬一遍寫入分布和查詢路徑能提前篩掉大部分設(shè)計缺陷。這個習(xí)慣我堅持了很多年價值非常大。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
99爱久久视频频| 日本精品高清一二区一本到| 激情四射五月天| 久久久少妇诱惑精品视频| 26uuu性物| 黄总AV色图| 青青草黑寡妇男人天堂| 青青草在线视频欧美| 91人妻最真实刺激绿帽| 96久久久久久久| 夜夜欢天天干| 久久久新亚洲AV| 国产农村妇女精品| 91亚洲影视| 91成人在线免费视频| 日韩AV无码中文一区二区| 老熟女91视频| 国产在线综合福利网站| 玖玖综合网| 国产欧美美女免费观看视频| 在线观看亚洲成人精品| 最新av在线| 国产五码丝袜屁眼| 国产人伦精品一区二区三区 | 91少妇人妻| 美女操逼福利视频| 亚洲操逼无码| 中文字幕 码 自拍 视频 区| 吉田爱美AV在线| 97视频900| 国产成人精品日本亚洲语言| 国产后入清纯| 国产精品一区二区麻豆| 伊人午夜福利视频| 久久久久久久强迫| 欧美日韩日产免费网站看| 欧美激情亚洲色图| 日本1区2区不卡视频| 中文字幕在线2| 桃花色涩综合影院| 亚洲的天堂网| 婷婷五月av| 99rre在线精品99re8| 特色a在线上| 99色色网| 校园春色宗合网| 丰满人妻无码一区二区三区| 国产精品色片一区二区| 日本成人在线不卡一区二区三区| 18禁超污无遮挡无码免费网| 成人五级久久| 四虎免费视频| 我想要 啊 啊 啊| 亚洲日韩AV视色| 五月天婷婷久久| 亚州久久9| 久草资源在线| 九九九九一区| 亚洲黄色a级片| 久久亚洲天堂| 99热8| 另类图片欧美激情综合| 亚洲夜夜欢无码一区二区| 亚洲乱色视频一区、二区在线| 久久国产在线一区二区| 99精品视频在线观看免费| 97人人操人人干| 亚洲美女av无码| 天美精品原创av片国产| 97精品视频在线播放| 国产一区二区三区导航| 亚洲毛片基地专区| 亚洲 日本 国产 综合| 少妇内射www在线观看视频| 中日韩久久人妻一区二区| 超碰在线成人| 操狠狠| 欧美色图亚洲色,麻豆| 五月开心久久AV官网| 国产精品久久久久久久久久久久久久久久| 精品 码产区一区二-1080P高清在线www-B029AV| 啊啊啊 在线观看| 亚洲素人综合| 日韩AV电影网站| 五月丁香黄色网| 人妻激情在线视频| 欧美亚洲小说| 欧美A片中文字幕| 色婷网| 国产v亚洲v日韩v欧美v片另类| 亚洲一区在线观看欧洲| 青草青青久久久久久国产| 伊人久久亚洲色欲综合网站 | 户外裸露刺激视频第一区| A片大香蕉在线| 亚洲天堂男人天堂| 亚洲成人碰碰| 中文字幕激情小说| 青青国产精品在线| ,国产乱人伦精品一区二区三区| 亚洲成?V人片在线观看福利| 72av视频| 免费国产视频| 欧美性少妇| 四虎视频在线观看| 午夜精品久久久久久久99热影院| 精品一区二区三区最新| 天天看片麻豆| 91网站18| 日韩欧美天堂| 久都青青视频| oumeizonghese,www| 91狠婷| 欧美国产有色电影| 黄色乱论网站| 色婷婷av在线观看| 在线视频97| 久久受www免费人成| 人人人摸人人| 岛国免费视频在线| 国产激情视频一区区三区| 男人亚洲天堂| 夜夜精品视频一区二区| av日韩在线观看电影| 热的中文 热的有码 热的国产| AV中文在线| 长久操视频| 日韩操逼HD| 欧美亚洲图片| 78操B| 青青草五月天| 91人妻在线视频| 久久 精品| 麻豆福利视频导航| 久久久久久久强迫| 美日韩男女操屄视频| 东方亚洲在线操逼天堂| 大香网站| 熟妇人妻精品一区二区| 色香天天| 狠狠操夜夜| 天天干一区二区| 丝袜美腿操av| 四虎影视国产精品| 99少妇内射| www.91久久| AV在线播放网址| 91精品微拍福利| 97超碰超欧美。| 91亚洲欧美激情| 一本一道vs波多野结衣| 91成人久久| 男人的天堂com| ...日韩成人一区二区三区字幕| 国产成人99久久亚洲综合| 欧美人妻精品| 久久精品日韩| 国产精品视频精品一二| 97视频播放| 嫩草一区二区在线观看| www.久久久久| 蜜臀久久99精品久久久电影| 国产精品色| 日本三级精品| 国产精品人妻免费精品| 日韩av电影网站| 男人的天堂2010| 亚洲成人激情小说视频| 密臀在线一区尤物| 人人妻人人爽一区二区三区| 69AV女优男人的天堂| 一级黄色影片| 9久久久久久| 久久久久久九九九| 97日视频| 日本一本一区二区三区四区五区欧美日韩中文字幕| 成人免费在线网站| 九九久久一区二区三区| 在线岛| 丝袜视频网国产90| 国产精品久久久久亚洲av| 丰满欧美放荡少妇在线| 99丝袜福利在线播放| 在线看片国产精品每日更新| 99热婷婷一区二区三| 91殴美大片| 97超碰jingpin| 在线观看中文av字幕| av亚欧| 操一对老熟妇爽上天视频| 天天看人人操屄犊摸阴| 日本人体九九九九九九| 国产亚州日韩欧美看片| 日本一区二区电影网站| 天天色综合天天操| 视频二区美腿制服人妻欧美| 久久免费9| 国产97在线 | 亚洲| 91 手机在线播放 绯色| 欧美日韩亚洲一区二区在线观看| 97欧美精品| 久久久少妇诱惑精品视频| 啊啊啊用力在线观看| 丁香五月婷婷啪啪| 99色色网| 亚洲性爱高潮影院| 日韩欧美女优电影| 超碰资源亚洲97| 97碰在线视频| WWW4虎| 免费观看有码高清视频| 欧美日韩高潮喷水91| 性色av婷婷久久一区二区点复制| 国产福利夜| 亚洲。日韩。欧美| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 国产免费内射视频| 搡老女人老91妇女老熟女| 日韩精品-原创伙伴| 亚洲人妻爽爽爽| 人妻少妇精品视频一区二区三区| 日韩精品人妻| 午夜操逼不卡| 亚洲成人免费在线| 精品国产污一区二区三区| 久久九九一区二区三区成人| 人妻丝袜肏逼| 九九热AV| 久久久久久国产无码精品| 久久精品亚洲成a人天堂| 成人丁香五月| 日韩情色AV| 久久人妻少妇| 东北熟女91| 国产午夜福利专区综合| 精品人体无圣光凹凸| 日韩性爱1级片视频| 一级久久性爱视频| 麻豆国产原创AV色哟哟| 好爽,再快点啊哈嗯嗯嗯嗯| 欧美色欧美| 日韩97P| 亚洲日韩一区电影| 视频在线97| 色色色色色色色色综合| 9九九国产| 国产AV超爽| 熟女熟妇一区二区三区视频| 精品成人亚洲午夜电影| 99re黄| 亚洲中文日韩欧美大香蕉视频| 日本黄页视频在线观看| 人人做人人妻人人夜视频| 成人av免费观看| 一起草精品人妻| 人人考人人摸人人干| 无码聚合| 7月婷婷综合| 一本一道久久综合久久| 97视频新免费| 中日无幕一二三四区| 330dv亚洲成年视频网| 中文字幕丝袜| 九九人妻| www久| 国产综合久久久麻桃个| 久9久| 免费看黄片现成| 日韩欧无码一区二区三区免费不卡| 性性久久| 久久久999| 美女91在线观看| 久久东京国产精品视频| 老鸭窝黄色视频网站| 亚洲成人av电影在线| 欧美激情高清性猛交| 欧美大片一区二区三区| 色婷婷九月天天综合| 欧美三级不卡| 韩国轻伦国内自拍一区| 色九久| 九九99精品视频在线观看| 精品国产一区二区三区在线播出| 中文字幕少妇色| 天美传媒av 在线| 久草精品视频| 欧美aa一级片| yazhousetuoumei| 天天干18禁| 日本高清有码网址视频| 久久久噜噜噜久久人妻| 一区二区三区黄片免费观看| 麻豆九九九| 视频一区二区免费在线| 熟女人妻av在线资源,黄色的资源| 久久精品日韩专区免费观看| 岛国AB视频| 欧美A√综合网| 国产亚洲精品久久久久小| 人人摸人人干| 日韩操p| 欧美一区二区情色| 国产精品干干干| 久久人妇| 亚洲精品影视老司机| 人妻内射一区二区在线视频| 啪啪资源网| 欧美 亚洲 另类 综合| 国产精品久久妻无码网站| 亚洲一二三精品久久网 | 亚洲天堂第一页| 亚洲密乳AV| 97综合国产精品高潮久久| 亚洲国产成人7777| 亚州欧美综合| 久久婷婷五月天| 亚洲av性爱电影| 69视频福利导航| 国产91精品福利在线| 精品美女人人干| 色情五月婷婷| 在线视频亚洲无码| 欲射影视| 男人的天堂亚洲| AAAA级日本片免费视频| 9 1超碰九色| 色色99| 久久这里只精品免费福利| 婷婷五月天无码 | 中日高清无码操逼视频| 好爽视频在线观看视频| 日本超碰97日韩精品人妻| 天天色综亚洲91污| 亚洲欧美日韩偷拍色图| 欧美亚洲宗合色性图| 日本在线不卡v二区| 九九热九九| 天天综合网久久ww| 91 丝袜在线| 岛国黄色短视频| 欧美一区二区| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 亚洲综合有码| 中日高清无码操逼视频| 麻豆美女丝袜人妻中文| 人人妻天天做天天爽| 日本熟妇一区二区三区| 亚洲中文一区二区三区| 日本淫乱女一区二区三区视频| 天综合网欧美| 97人人中文网| 久久99亚洲精品久久99果| 国产成人91一区二区三区| 欧美综合传媒| 亚洲欧洲第二视频在线观看色图| 东京热激情视频一二三区| 自拍偷拍 高清无码| 男女一进一出视频久久| 啊啊啊啊嗯嗯在线久久久| 久久超碰、| 一本一道人妻久久一区二区三区| 人妻中文字幕日韩电影| 国产成人欧美一区二区三区的国产| 干B网| 欧美玖玖爱免费玖玖| 999久久久九| 啪啪啪综合网| 国产成人综合网| 中国乱伦一区二区| 色翁荡息又大又硬又粗又爽| 欧亚无码视频| 香港澳门日本三级网站| 中欧人妻丝袜中文字幕| 我想要 啊 啊 啊| 91亚洲丝袜熟女| 亚洲中亚日激情视频| 亚州久久9| 日本一区二区三区精品| 欧美色图天堂网m| 久久久工口| 欧美色棕合| 九色97| 欧美性爱97超碰| www.夜夜| 九九热免费国产视频婷婷伊人| 色色色网站| 久久午夜伦| 91蜜臀熟女| 超碰97起碰| 三级三级三级日本99| 草草草视频在线免费看| 91视频伊人| 91精品人妻偷情| 看免费一级在线播放毛片| 欧美性爱第一页久久| a亚洲欧美色欲| 丰满美女一级毛片在线播放| 欧美大香蕉久| 人妻精品一区二区在线| 亚洲大色堂| 18一区二区三区| 亚州成人a∨| aaa淫乱视频| 97超碰人操| 超碰97资源网亚洲| 欧美综合另类| 精品国产丝袜一区二区三区乱码| 国产精品熟女丝袜一区二区| 久久久久人妻| 精品97久久综合| 国产少妇内射| 在线视频97| 婷婷丁香九月| 久久九九99| 丁香五月天婷婷姐| 日韩中文字幕宗合在线| 欧美综合天堂| 手机看片日韩人妻| 色婷网| 蜜臀精品1区2区| 色悠久久久av| 中文字幕精品探花视频| 久久亚洲AV成人精品无码| 五月香婷婷| 91夜色chaopeng| 我爱操| 先锋影音av先锋一区| 国产亚洲禁久一区二区| 免费看美国人人爽,人人操| 婷婷五月天无码 | 人妻天天爽夜夜爽2| 亚洲无码一区成人免费午夜| 美国精品国产精品| 欧美男女午夜啪啪| 91日韩网站| 日本高清视频xxxx| 人妻加勒比东京热| 亚州Av天美传媒| av毛片aaaaa免费看| 亚洲国产高清福利视频| 啊啊啊啊啊啊好湿好爽视频| 午夜传煤十二区精品| 欧美精品xxxwww| 99热免费| 欧洲综合色| 国产精品亚洲一区二区三区四区| 美女裸体麻豆天美蜜桃91| 一卡二卡三卡| 日韩激情中文字幕有码| 一区二区三区成人| 99国产在线 精品 视频| 熟妇人妻一区二区三区| 精品国产乱码久久久久久蜜臀| 黄色小视频日本txt| 少妇人妻精品| 国产精品4p在线观看| 夜夜嗨AV一区天天| 日韩啪啪视频| 日韩免费人妻色情网站| 亚洲 欧美 第一页| 97干在线| 久久9精品| 色噜噜综合网| 97ai亚洲| 99热只有| 亚洲国产精品无石码久久| 性爱乱伦一区| 人妻娇喘 激情视频| 婷婷精品视频| 蜜臀久久99精品久久久久久无删减| 成人av免费观看| 色网亚洲人| 99久久婷婷国产综合| 97超碰影音| 综合色啪| 欧美日韩欧美| 在线啊啊啊啊| 国产丝袜欧美在线视频| 激情欧美日韩女同久久| 亚洲天堂AV在线播放| 久久熟女久| 91动漫操逼视频| 性色av蜜臀av色欲aV| 亚洲影院小综合| 99视频这有这里有精品| 自拍亚洲综合| 九九色精品| 色妇综合网| 大香蕉AV丝袜| 欧美激情性爱视频网站| 色五月激情AV在线| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 啊啊啊好舒服好爽啊啊啊视频| 国产精品福利资源在线尤物| 91成人社区| 性做久久久久久久| 夜夜爽夜夜| 玖玖资源中文字幕制服丝袜| 国产不卡免费在线视频| 中文不卡视频| 麻豆AV短剧| 福利在线黄片| 人妻天天爽天天爽三区| 国产偷人妻精品一区二区在线| 新版天堂中文资源8在线| 91麻豆天美传媒在线| 蜜臀人妻少妇久久在线观看| 色小视频蜜乳| 欧美人人操人人插| 亚洲猛交| 国产九区| 成人资源中文字幕在线观看天天| 欧美国产精品| 美女9118禁| 久久99999| 五月天激情四射| 蜜乳视频网站| 欧美96精品在线| 天堂涩涩| 精爱久久| 男人的天堂不卡一区二区| 中文字幕乱码人妻二区三区| 91熟女丨91老女人| 亚洲电影91| 久久久久中出| 色色五月丁香| 亞洲久久直播| 八戒午夜福利理论片| 欧洲精品二区| 欧美亚洲清纯| 欧美青青视频| 大香蕉色网| 久久五月份| 在线看免费无码AV天堂的| 秋霞一集毛片观看| 欧美97爱| se..亚洲欧美| 国产精品久久蜜乳av| 福利五区| 欧美日日人人天天| 亚洲文学偷乱拍啪啪啪啪| 爽爽爽免费视频| 欧美美女自慰一区二区三区| 丁香五月电影| 色啪网| 欧美国产伊人久久久久| 欧美亚洲尤物久久| xxxx网站亚洲精品| 国产精品久久久久久照片| 26uuu久久| 精品人妻一区二区三区日产乱码| 偷拍视频青青草在线视频| 中文字幕色AV| 91高清欧美| 91久热| 四虎884| 97在线亚洲| 中文字幕无码不卡啪啪| 久久机热| 超碰97人人乐| 600国产精品视频| 男人天堂新| 亚州性色| 中文字幕人妻资源在线| 国内毛片无遮挡国产| 尹人免费观看视频在线| 美女视频尤物网在线看| 亚洲国产婷婷在线播放| 国产精品宅男免费| 人人妻人人色| 91天天c| 碰超人人在线一区二区三区| 日韩国产九九精品一区二区三区毛片| 91n免费处女| 精久久久| 97手机日韩| 少妇熟女1区2区3区| 成人26uuu| 99久久e免费热视| 欧亚免费视频| 女色视频社区| 国产乱弄免费在线视频。 | 久久久久久久久9| 色香av| 国产精品一区二区a| 人人做天天爱| 97人人干人人操| 校园春色之综合网| 天堂在线一区二区| 人妻丰满熟妇一区二区三| 欧美熟妇视频| 殴美性色a级欧美| 综合干干干av久久久综合网| 97碰碰日本乱偷人妻中文的| 欧美亚洲韩国视频十五区| 啊啊啊啊无码| 国产精品久久天天干| 99在线无码精品秘 入口黑人| 无码日韩网站| 有码免费观看| 啊啊啊啊,啊啊好多水| 国产97在线 | 亚洲| 特级特黄一级毛片免费| 热九九精品| 欧美色图亚洲特色| 色天使AV天堂| 日韩操啪| 91人妻Pr| 丁香五月天婷婷姐| 男人的天堂三级| 国产精品不卡一区二区三区av| 国精精品无码一二三区水多多| 国产精品天美传媒| 国产久久男人天堂| 精品无码一区二区三区色欲| 亚洲第一无码播放立川理惠| 少妇同性| 亚洲综合第一页| 日逼国产| 天天做天天爱天天爽AV| 国产一线二线三线av| 激情五月天插| 99re这里只有精品3| 91 综合网| 顶级丝袜熟女一区二区三区| 亚洲免费日韩在线一区二区| 美女诱惑久久| 国产精品老师| 色婷婷一区二区三区久久午夜| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 97免费在线视频| 欧美性爱在线无码| 蜜桃视频啊啊啊啊| 91碰超| 熟妇一区二区三区| 国产色图乱伦| 女色视频社区| 九九热AV| 久极品在线观看| 国产久久久久久| 9 9精品一区二区三区| 欧成人在线| 日韩精品一区二区三区色欲| 安微少妇操BBB| 天天干夜夜一操| 爱妻综合网| 午夜福利精品| 劲爆欧美人妖三区91| 人人妻人射| 亚洲精品一区二区免费在线观看| 人人摸.人人色| 白 大 人妻 区 在线| 成 人片 黄色大片| 亚洲日韩乱码中文无码蜜桃臀网站| 国产多人在线观看视频| 另类 综合 日韩 欧美 亚洲| a级理论午夜日本| 91在线一起| 日本一级一级一级一级| 超碰九区| 亚洲综合另类欧美久久久| 手机在线人成免费视频| 五月天久久人妻| 色婷婷色99国产综合精品| 欧美性第1页| 狠狠综合网| 欧美性xxxxx狂欢| 色九月综合| 国产不卡免费在线视频| 日本2020一区二区| 狠狠狠一区二区三区| 思思热在线视频在线| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 成人毛片免费| 久久夜夜夜| 久久草在线综合视频| 91 丝袜在线播放| 91九九九小逼| 久久露脸国产老熟女| 男人的天堂2018| 精品久久久久久久久久久久 | 劲爆欧美人妖三区91| 国产亚洲在线观看| 在线中文字幕| 久久婷婷一区| 青久操| 成年女人18级毛片毛片免费观看| 91人妻在线视频| 亚州综合图片| 床上啊啊啊一区二区三区| 偷拍 欧美 日韩| 精品一区二区成人| 欧美亚洲天天| 亚洲人精品久久久喷水| 亚洲欧美日韩免费电影| 日本久久久精品电影| 色色热| 91欧美网| 91丝袜在线视频| 99在线免费观看| 国产丝袜欧美在线视频| 亚洲乱熟女一区二区| 欧美人妻精品| 色综合久久88色综合久久天天| 日1区2区3区2020| 熟女精品一区二区三区| 免费一级性爱久久| 超碰色图| 亚洲日韩乱码中文无码蜜桃臀网站| 99热精品在线播放| 中国AV美女| 新怡红院| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 丁香九月 婷婷| 色臀AV| 日韩精品影视| 91伊人大香蕉| 国模限制级电影| 欧美日韩国产色图在线| 国产乱伦亚洲| 亚洲精品久久久久毛片A片拉屎 | 五月丁香色情| 萌白酱自拍视频| 十八禁啪啪视频| 欧美日韩亚洲天堂| 大香蕉性欧美| 加勒比色综合| 老女人老91妇女老热女| 亚洲综合在线高清| 天天添天天干电影| 免费观看的av| 色色色欧美| 人人透人人操| 成年女人18级毛片毛片免费观看| 欧美日韩性爱无码| 美女极品一区二区三区| 久操凹凸视频| 777AV电影| 亚洲一区二区三区不卡国产欧美| 91国产操逼视频| 热99这里有精品综合久久 | 亚洲国产精品久久久久久久久久| 久久99亚洲精品久久99果| 国产97视频免费观看| 在线A日本| 日本不卡高清视频| 蜜桃视频成a人v在线| 免费精品人妻一区二区三| 人妻一二三区| 欧美亚洲| 超碰成人国产| 九九热精品在线| 亚欧精品久久久久久久久久久| 免费夜夜爱黄色视频毛片| 亚洲日韩一区电影| 四月丁香婷婷| 欧美日韩国产男人| 日韩精品怡红院| 亚洲国产中文字幕| 偷拍导航视频网站| 精品九九九九九九| 国语av狠狠色丁香婷婷综合激情| 青娱乐福利99| 美女尤物人人操| 国产精品久久伊人| 女人爽到高潮久久久| 97蜜桃综合| 日本999精品| 久久久精品视频欧州站| 天天干人人乐| 亚洲国产美女久久久久| 一级做a爰片久久毛片图片| AV女资源| 色阁阁AV综合网| 91操熟女视频| 超碰免费人妻人人| 探花一区在线| 天综合中文| 色九九九九| 热热色青青草| 狠狠久久手机视频精品| 亚洲成人性爱在线观看| 九九九九久久久| 国产极品久久久| 中文字幕第二页| 欧美乱伦专区| 无码视频黄色网战| 色女网日韩| 亚洲女人毛茸茸91| 丁香婷婷五月| 国产大学生高潮在线播放| 熟妇女人妻呻吟久久AV| 校园春色家庭伦理欧美激情| 国产精品久久久久久久久久久久| 天天做日日做| 亚洲丝袜色| 久久人妻无码毛片A片麻豆| 久久岛国| 欧美aaaaaaa| 天天欧美色| 天天影视之亚洲综合网| 欧美真人抽搐一进一出gif| 欧美劲爆视频一区二区| 亚洲国产综合久久久性感熟妇| 色女免费在线观看视频网址| 欧美在线91| 韩国一级婬片A片AAAAA| 天天看特黄的免费网站 | 久久久久亚洲熟妇熟女| 十八禁视频网站| 性生活无遮挡纯毛片在线看| 91少妇人妻| 激情啪啪拍91| 好屌色综合| 久久精品国产亚洲AV先锋| 熟女六十路| 麻豆 亚洲 97| 国产精品久久久啊| 长长久久88视频| 亚洲精品97久久中文字幕| 伦激情人妻另类人妻| 青青草九九九九九| 97超碰大| 婷婷色综合| 日韩欧美~中文字| 欧亚乱色熟女一区二区| 夜夜福利| 久久日韩精品一区二区| 国产精品情侣啪啪| 99久久99久久免费精品蜜臀| 久久伊人五月天| 伊人在线大香蕉视频久久| 黄片免费看的| 熟妇高潮一区二| 国产精品原创巨作?v网站| 67194无码不卡| 久久精品一区二区| 亚洲精品丝袜-不卡成人免费……| 极品人妻少妇综合| 午夜精品视频777| 人妻夜爽夜夜爽| 免費黃色視頻觀看一| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 国产综合色精品在线观看| 天天添天天干电影| 综合网亚洲| 欧美亚洲激情小说| 欧美一区二区男人天堂| 69AV女优男人的天堂| 亚洲日韩av专区无码| 亚洲一二三精品久久网| 欧美人与动性人交a| 蜜臀AV成人精品蜜臀AV久久| 欧美操人视频| 欧美色图成人网一区二区| A级毛片在线看免费| 欧美少妇性乱| 欧美人妻一区| 九九九九精品视频| 女人天堂AV五区在线| 一区二区三区美女超清| 伊人国产视频| 日韩黄色一区二区三区| 欧美性夜| 欧美三级一级| 久久av一级av少妇av高潮| 中文字幕乱偷人妻久久艾草网| 国产一级黄色片在线观看 | 日本三级黄页| 日韩免费一级性爱视频| 亚洲 另类 丝袜 自拍 动漫| 在线视频日韩欧美国产| 亚洲人久久久久日| 婷婷情色五月天| 97任你吞精| 校园春色五月天| 九九九九九九九九九九精品视频| 欧美婷婷五月天| 狠狠操狠狠操操| 中文字幕AV片| 操久久久久久| 日韩熟女乱伦中出| 97视频播放| 九热大香蕉| 亚洲一区二区三区欧美日韩| 99999精品| 久啪| 先锋精品av色鲁| 亚洲精品尤物yw在线影院| 亚洲做性| 操人妻逼91| 久久婷婷精品| 国产精品一区午夜福利| 精品国产乱码久久久久久网站入口| 亚洲精品久久久久久久蜜桃臀| 三级网站超变态精品| 性爱1区| 家庭乱伦国产精品| 色路综合| 久久宗合亚洲| 欧美大香蕉在线观看| 久久久精品成人国产| av一区二区三区不卡| 在线二区不卡| 狠狠躁天天躁日日躁97| 91丝袜在线观看视频在线观看| 黄aaaaaaaaaaaaaaaaaa色网站| 天天上日日上日韩精品| 啊啊啊水好多| 综合97久久| 婷婷丁香一区二区三区| 91超碰人人| 1024人妻| 玖玖爱免费观看视频| 国产丝袜美女在线一区| 综合夜夜| 亚洲少妇视频| 91热色| 久久久久网站-538在线视频-欧美永久乱码 | 欧美视频一| 99av| 一区二区三区看视频| 曰本道人妻久久久在线不卡色视频| 91久久久视| 蜜奶av| 国产suv精品一区二区四区999| 六月天婷婷| 国产成人久久久精品免费AV| 精品成人动漫一区二区| 99久久精品无码一区二区毛片免费 | 亚州 综合 色图| 一区二区三区四区五区高清无码永久视频| 99久久9| 日本一级性爱| 亚洲AV无码成人精品久久| 乱伦av麻豆| 成人a大片在线观看| 亚洲另类小说卡通动漫| se吧提供91精品国产91久久久久久| 91色综合| 老司机福利青青草| 日韩一级欧美一级国产一级台湾| 欧美少妇色图| 秋霞色色影院| 秋霞一级鲁丝片A片| 26uuu最新| 欧美十八禁视频| 国产传媒午夜理伦精品| 福利操逼| 天天色天天干天天射| 黄色区免费观看中文字幕| 99久久e免费热视| 首页中文字幕中文字幕免费| 多乙久久久久久| 亚洲经典啪啪| 欧美激情总合网| 精品久久久久黄少妇| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 亚欧成人中文字幕一区| 久久精品国产72国产精品福利| 国产亚洲精品玖玖玖在线观看| 国产精品久久久鸭无码的功能| 成人看片网站| 欧美人妻精品| 色www精品视频在线观看| 性九九九九九九| 91美| 最新亚洲黄色免费电影| 日韩性爱1级片视频| 爱av免费| 一区二区三区精品黑丝白丝酒店对鸡 | 人妻另类 专区 欧美 制服| 久久久精品91八戒| 国产精品免费视频人成| 中文字幕在线观看丝袜| av情色影音| 精人妻无码一区二区三区伊人直播| 少妇贴图| 亚洲成人黄色在线观看| 日韩一区二区高清在线观看的| 午夜色婷婷| 日韩紧密久久| 丰满欧美放荡少妇在线| 97香蕉网| 国人欧美精品一区二区| 人人天天欧洲| 国产免费一区| 91色香| 干干干天天| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 人人干黄色| 久操大香蕉| 人妻酒店出差被中出免费在线播放| 久久激情四射婷婷丁香五月天| 欧美日韩在线视频网站| 粉嫩av在线一区二区| 久久精品亚洲婷婷| 日本不卡一区二区三区| 精品91| 国产午夜激片Av毛片不卡| 九九久久九九久久| 精品制服美女中文一区二区三区| 中国人高清www色视频免费| 操逼操网| 殴美日韩m| 中国和日本人色哪个不下载能放| 91精品微拍福利| 激情五月综合网| 日韩色图 一区二区| 亚洲国产成人精品久久久国产成人一区二区 | 97Ai亚洲| 最新日韩黄片| 色超碰综合| 国产自制av蜜乳| 综合激情五月天| 99re在线视频国产| 日韩一区二区精彩视频| 久久一二三四五六七八九区区区| 夜夜爽爽夜夜精品视频| 久久久久久久久久久久黄色 | 亚洲精品国产熟女| 日韩美女久久一区二区三区| 男人的天堂VA| 中文字幕精品区先锋资源| 白 大 人妻 区 在线| 囯产精品久久久久久久久久梁医生| 秋霞视频一区二区 | 狠狠久久手机视频精品| 视频二区美腿丝袜制服人妻欧美| av影院十区| 色欲日韩欧美在线一区| 四虎在线免费视频| 欧美精品xxxwww| 国产天美传媒精品| 国产成人精品必看 | www. 男人天堂成人在线| 欧美爆乳精品一区二区| 台欧久久精品视频| 久久大黄片| 久久一区无码| 97这里只有精品| 97国产色综合| 夜夜爽夜夜爽| 夜夜操老骚逼视频网站| 欧美天天综合网| 欧美精品成人亚洲| 天天日天天干天天操| 久久国产精品91| 国产自制av蜜乳| 一个人在线看的黄色电影网站| 亚洲av性爱电影| 色诱中文字幕| 激情抓乳插进去啪啪啪日韩 | 欧美韩国你懂得在线 | 97AV爱| 操一操摸一摸| 久久天天躁日日躁狠狠躁 | 情侣开房子拍 日韩无码 女的很漂亮| 伦理第一页| 日本美女性生活久久久久久久| 操逼操2| 国产成自自拍在线观看| 国产精品999zyz| 极品少妇久久久久| 91亚洲人电影| 91P0RNY大屁股人妻| 欧美天堂超碰97| 一起草精品人妻| 一起草视频在线| 99xav| 色欲日韩欧美在线一区| 男人天堂2019| 一区,二区,三区网站| 免费超碰97在线观看| 久久精品综合| 婷婷色一区| 又大又长又粗又爽又黄| 欧美亚洲色的图| 精品妇女一区二区三区| 自拍偷拍草一草| 999久久芭蕾| 在线啊啊啊啊| 欧美日韩操操操| 玖玖久久久| 超碰天天操| 综合色久| 午夜亚洲国产理论秋霞| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 亚洲欧洲国产综合av| 试看60秒 爽| 超碰久久网| 亚洲情色婷婷五月天| 玖玖爱免费观看视频| 久久免费少妇| 亚洲国产亚洲天堂| 热天堂一区二区| 人人干人人搞人人摸| 91久久久亚洲| 亚洲性综合11| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 艹我哪美一区无码| 日韩欧美tv一区二区在线观看| 啊啊啊啊免费视频| 久久伦理视频久久大香蕉视频| 日韩精品高清资源在线| 久久嫩草国产成人一区| 国产一区二区三区精品观看啪| 亚洲日韩国产精品| 激情情色五月天| 青青操少妇| 国产精品交换一区二区| 岛国毛片手机在线观看| 天天综合网91| 91碰碰| 日韩国产十八禁| 日本熟妇一区二区三区| 操逼操网| 亚洲乱色熟女一区| 久久久久久九九九九| 老色鬼成人精品视频下载大在线观看| 天天淫人人妻日日色| 99精品久久| 国产92麻豆天美精品色欲5| 沈阳熟女高潮对白视频| 夜夜夜夜久久久久| 亚洲男人天堂2| 欧美综合制服在线| 色月天AV导航| 无码免费一区二区三区啪啪| 成人性爱电影一区二区| 亚洲AV无码翔田千里网站| 97色碰| 大逼色网站| 97伊人超碰| 国产精品夜夜夜| 日韩精品系列| 亚州高清av| 亚洲国产丝袜在线观看| 天美传媒Av在线| 一区| 伊人玖玖网| 亚洲一本色码中文字幕| 精爱久久| 久久伊人网视频一区二区三区| 在现视频女上位好爽| 99re9在线| 超91综合网| 97超碰jingpin| 婷婷色一区| 日韩熟女精品无码专区一区二区| 国产伊人自拍| 91是天天| 老熟女熟妇| 色 亚洲 91| 热的中文 热的有码 热的国产| 少妇丝袜在线观看AV| 久久亚洲日韩国产欧| 偷拍亚洲视频一区二区三区四区| 欧美精品欧美精品系列 | 精品人妻一区二区三区四区石在线|