久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

Flink+Iceberg流批一體數(shù)據(jù)湖實(shí)戰(zhàn):選型、調(diào)優(yōu)與運(yùn)維

Flink+Iceberg流批一體數(shù)據(jù)湖實(shí)戰(zhàn):選型、調(diào)優(yōu)與運(yùn)維 1. 流批一體場景下的數(shù)據(jù)湖選型思考1.1 從Lambda架構(gòu)到流批一體的演進(jìn)邏輯做數(shù)據(jù)平臺(tái)的人都有一個(gè)共同的痛同一份業(yè)務(wù)邏輯離線鏈路寫一遍實(shí)時(shí)鏈路再寫一遍兩套代碼、兩套運(yùn)維、兩套口徑。早期大家用Lambda架構(gòu)扛著離線跑T1出報(bào)表實(shí)時(shí)鏈路單獨(dú)維護(hù)一套指標(biāo)時(shí)間一長兩條鏈路的數(shù)據(jù)對(duì)不上業(yè)務(wù)方找過來排查成本極高。后來大家開始琢磨Kappa架構(gòu)把所有計(jì)算都收斂到流上但流處理引擎對(duì)大規(guī)模歷史數(shù)據(jù)的回溯分析、批量修正能力又不夠成熟于是“流批一體”這個(gè)概念被反復(fù)提起。流批一體的核心訴求其實(shí)很樸素一套SQL、一份元數(shù)據(jù)、一份存儲(chǔ)既能處理無界的實(shí)時(shí)流也能處理有界的歷史批。要做到這一點(diǎn)計(jì)算引擎和存儲(chǔ)層必須解耦存儲(chǔ)層要能同時(shí)承接高頻小批量的流式寫入和大吞吐的批量讀取。這就是數(shù)據(jù)湖技術(shù)在這個(gè)階段被推到臺(tái)前的原因。在眾多數(shù)據(jù)湖方案里Iceberg、Hudi、Delta Lake是繞不開的三個(gè)選項(xiàng)。我們當(dāng)時(shí)做選型的時(shí)候核心考量維度有幾個(gè)schema演進(jìn)能力、分區(qū)裁剪效率、小文件治理機(jī)制、與計(jì)算引擎的耦合程度、以及社區(qū)活躍度。Hudi的upsert能力很強(qiáng)適合高頻更新的場景但它和Spark的綁定相對(duì)深一些Delta Lake在Databricks生態(tài)里體驗(yàn)很好但開源版本在Flink集成上的成熟度當(dāng)時(shí)還不夠。Iceberg的設(shè)計(jì)哲學(xué)是“表格式規(guī)范優(yōu)先”它把表的元數(shù)據(jù)管理抽象得非常干凈計(jì)算引擎只需要按照規(guī)范去讀寫就行這種解耦特性讓它天然適合做流批一體的存儲(chǔ)底座。1.2 為什么是Flink加Iceberg的組合Flink在流處理上的優(yōu)勢不用多說真正的流式語義、事件時(shí)間處理、精確一次的狀態(tài)一致性這些都是它的看家本領(lǐng)。但Flink早期在批處理上的表現(xiàn)只能算“能用”直到1.12之后批流一體的SQL層逐漸成熟Flink才真正具備了統(tǒng)一計(jì)算引擎的底氣。Iceberg這邊它的核心抽象是表格式Table Format不是存儲(chǔ)引擎也不是文件格式。它定義了一套元數(shù)據(jù)規(guī)范包括snapshot、manifest、manifest list這些概念把“哪些文件屬于這張表”“這些文件在某個(gè)時(shí)間點(diǎn)的狀態(tài)是什么”管理得清清楚楚。這種設(shè)計(jì)帶來的好處是寫入方和讀取方完全解耦寫入方只管生成新的snapshot讀取方根據(jù)snapshot做快照隔離讀取互不干擾。Flink加Iceberg的組合本質(zhì)上是用Flink做統(tǒng)一的寫入和計(jì)算入口用Iceberg做統(tǒng)一的存儲(chǔ)和元數(shù)據(jù)管理。實(shí)時(shí)鏈路通過Flink流作業(yè)持續(xù)寫入Iceberg表離線鏈路通過Flink批作業(yè)或者Spark讀取同一張Iceberg表做回溯分析。兩條鏈路看到的是同一份數(shù)據(jù)、同一套schema口徑天然一致。在同程藝龍的實(shí)踐場景里我們面對(duì)的是旅游行業(yè)典型的數(shù)據(jù)特征訂單、用戶行為、庫存、價(jià)格這些核心業(yè)務(wù)數(shù)據(jù)既有實(shí)時(shí)監(jiān)控的需求又有T1甚至更長時(shí)間跨度的歷史分析需求。比如機(jī)票價(jià)格監(jiān)控需要秒級(jí)感知價(jià)格變化并觸發(fā)預(yù)警同時(shí)又要做過去一年的價(jià)格趨勢分析支撐收益管理策略。這種場景下流批一體不是錦上添花而是剛需。1.3 落地前的核心挑戰(zhàn)盤點(diǎn)理想很豐滿落地的時(shí)候問題一個(gè)接一個(gè)。我們?cè)谡戒侀_之前梳理了幾個(gè)必須解決的核心挑戰(zhàn)第一寫入性能與小文件問題。Flink流作業(yè)是持續(xù)寫入的默認(rèn)的checkpoint間隔如果設(shè)得比較短每次checkpoint都會(huì)生成一批新文件幾個(gè)小時(shí)下來Iceberg表里全是小文件元數(shù)據(jù)膨脹得厲害讀取性能急劇下降。這個(gè)問題不解決實(shí)時(shí)鏈路根本跑不穩(wěn)。第二schema演進(jìn)的兼容性。業(yè)務(wù)需求變化快加字段、改字段類型是家常便飯。Iceberg雖然支持schema演進(jìn)但Flink寫入端和下游讀取端對(duì)schema變更的感知時(shí)機(jī)、兼容策略需要仔細(xì)設(shè)計(jì)否則容易出現(xiàn)寫入端已經(jīng)加了字段、讀取端還沒更新導(dǎo)致報(bào)錯(cuò)的情況。第三Exactly-Once語義的保障。Flink的checkpoint機(jī)制和Iceberg的snapshot提交需要精確對(duì)齊。如果checkpoint成功了但I(xiàn)ceberg提交失敗或者反過來都會(huì)導(dǎo)致數(shù)據(jù)不一致。這中間涉及到兩階段提交協(xié)議的設(shè)計(jì)需要深入理解Flink的Sink API和Iceberg的Transaction API。第四查詢性能的優(yōu)化。Iceberg表的數(shù)據(jù)文件是列式存儲(chǔ)的Parquet理論上查詢性能不錯(cuò)但如果分區(qū)策略設(shè)計(jì)不合理、manifest文件過多、或者沒有做好數(shù)據(jù)聚簇查詢時(shí)掃描大量無關(guān)文件性能會(huì)大打折扣。這四個(gè)問題貫穿了我們整個(gè)實(shí)踐過程后面會(huì)逐一展開講具體的解決思路和實(shí)操細(xì)節(jié)。2. 核心機(jī)制拆解與關(guān)鍵參數(shù)設(shè)計(jì)2.1 Iceberg表格式的核心概念快速掃盲在深入實(shí)操之前有必要把Iceberg的幾個(gè)核心概念用大白話講清楚不然后面的參數(shù)調(diào)優(yōu)和問題排查會(huì)一頭霧水。Snapshot快照每次對(duì)Iceberg表的寫入操作都會(huì)生成一個(gè)新的snapshot相當(dāng)于給表拍了一張照片記錄了這一刻表里有哪些數(shù)據(jù)文件。讀取的時(shí)候指定snapshot ID就能讀到那個(gè)時(shí)間點(diǎn)的數(shù)據(jù)狀態(tài)。這個(gè)機(jī)制天然支持時(shí)間旅行查詢做數(shù)據(jù)回溯和審計(jì)非常方便。Manifest清單文件snapshot本身不直接記錄數(shù)據(jù)文件列表而是通過manifest文件來組織。一個(gè)manifest里記錄了一批數(shù)據(jù)文件的路徑、分區(qū)信息、列級(jí)統(tǒng)計(jì)信息比如min/max值。查詢的時(shí)候Iceberg先讀manifest list再根據(jù)查詢條件過濾manifest最后定位到具體的數(shù)據(jù)文件。這個(gè)層級(jí)結(jié)構(gòu)是Iceberg查詢性能的關(guān)鍵。Manifest List清單列表記錄當(dāng)前snapshot包含哪些manifest文件以及每個(gè)manifest的分區(qū)范圍等元信息。查詢引擎通過manifest list做第一層裁剪快速跳過不相關(guān)的manifest。Catalog目錄管理Iceberg表的元數(shù)據(jù)入口負(fù)責(zé)表的創(chuàng)建、刪除、元數(shù)據(jù)更新等操作。常見的Catalog實(shí)現(xiàn)有HiveCatalog、HadoopCatalog、RESTCatalog等。同程藝龍這邊用的是HiveCatalog主要是考慮到和現(xiàn)有Hive數(shù)倉的兼容性以及元數(shù)據(jù)管理的統(tǒng)一性。Partition Spec分區(qū)規(guī)范定義表的分區(qū)策略支持隱藏分區(qū)、分區(qū)演進(jìn)等高級(jí)特性。和Hive分區(qū)不同Iceberg的分區(qū)是可以演進(jìn)的改分區(qū)策略不需要重寫歷史數(shù)據(jù)。理解這幾個(gè)概念之后再看Flink寫入Iceberg的流程就清晰了Flink作業(yè)在checkpoint時(shí)把當(dāng)前批次的數(shù)據(jù)文件信息打包成一個(gè)新的snapshot通過Catalog提交到Iceberg表。下游讀取時(shí)根據(jù)最新的snapshot或者指定的歷史snapshot來讀取數(shù)據(jù)。2.2 Flink寫入Iceberg的兩種模式對(duì)比Flink集成Iceberg主要有兩種寫入模式append模式和upsert模式。這兩種模式的選擇直接決定了后續(xù)的數(shù)據(jù)處理邏輯和運(yùn)維復(fù)雜度。Append模式就是純追加寫入每條數(shù)據(jù)進(jìn)來直接寫到新的數(shù)據(jù)文件里不做任何去重或更新。這種模式實(shí)現(xiàn)簡單、寫入性能高適合日志類、事件類等只追加不更新的場景。但缺點(diǎn)是如果上游數(shù)據(jù)有重復(fù)或者需要更新Iceberg表里會(huì)出現(xiàn)重復(fù)數(shù)據(jù)需要下游做去重處理。Upsert模式支持根據(jù)主鍵更新數(shù)據(jù)。Flink作業(yè)在寫入時(shí)會(huì)根據(jù)主鍵判斷這條數(shù)據(jù)是新增還是更新然后生成對(duì)應(yīng)的數(shù)據(jù)文件和刪除文件。Iceberg通過equality delete file和position delete file來實(shí)現(xiàn)行級(jí)更新。這種模式適合訂單、用戶畫像等需要頻繁更新的場景但寫入性能會(huì)比append模式低一些因?yàn)樾枰S護(hù)刪除文件而且讀取時(shí)要做merge操作。我們當(dāng)時(shí)的選型策略是ODS層用append模式DWD和DWS層用upsert模式。ODS層接的是原始日志和binlog數(shù)據(jù)只追加不更新用append模式寫入性能最優(yōu)。DWD層做清洗和維度關(guān)聯(lián)后需要根據(jù)主鍵做更新用upsert模式保證數(shù)據(jù)唯一性。DWS層做聚合指標(biāo)也是upsert模式按維度主鍵更新指標(biāo)值。這里有個(gè)實(shí)操心得upsert模式的主鍵選擇非常關(guān)鍵。主鍵字段最好是分區(qū)字段的子集或者有強(qiáng)關(guān)聯(lián)這樣Iceberg在寫入時(shí)能更好地做文件裁剪和合并。如果主鍵和分區(qū)完全無關(guān)寫入時(shí)會(huì)產(chǎn)生大量跨分區(qū)的刪除文件性能會(huì)明顯下降。2.3 Checkpoint間隔與文件大小的平衡計(jì)算這是流式寫入Iceberg最核心的參數(shù)調(diào)優(yōu)問題。Flink的checkpoint間隔決定了多久生成一批新文件而Iceberg的數(shù)據(jù)文件大小又直接影響查詢性能。兩者需要配合調(diào)整。先看默認(rèn)情況假設(shè)checkpoint間隔是1分鐘每個(gè)checkpoint周期寫入的數(shù)據(jù)量是500MB那么每個(gè)checkpoint會(huì)生成大約5到10個(gè)Parquet文件取決于并行度。一天下來就是1440個(gè)checkpoint產(chǎn)生上萬個(gè)文件。每個(gè)文件平均50MB到100MB雖然不算特別小但manifest文件的數(shù)量會(huì)膨脹得很快查詢時(shí)讀取manifest的開銷就會(huì)變得不可忽略。我們的調(diào)優(yōu)思路是讓每個(gè)checkpoint周期寫入的數(shù)據(jù)量盡量接近一個(gè)合理的數(shù)據(jù)文件大小。Iceberg社區(qū)推薦的Parquet文件大小是128MB到512MB之間我們?nèi)≈虚g值256MB作為目標(biāo)。然后反推checkpoint間隔。具體計(jì)算過程假設(shè)Flink作業(yè)的寫入吞吐是每秒10MB那么要攢夠256MB需要大約25.6秒??紤]到checkpoint本身有開銷以及數(shù)據(jù)寫入的波動(dòng)我們把checkpoint間隔設(shè)為30秒。這樣每個(gè)checkpoint周期大約寫入300MB數(shù)據(jù)生成1到2個(gè)Parquet文件文件大小在150MB到300MB之間比較合理。但這里有個(gè)矛盾checkpoint間隔太長故障恢復(fù)時(shí)需要重放的數(shù)據(jù)就越多恢復(fù)時(shí)間越長。30秒的間隔意味著最壞情況下要重放30秒的數(shù)據(jù)對(duì)于大部分場景是可以接受的。如果業(yè)務(wù)對(duì)恢復(fù)時(shí)間要求極高可以適當(dāng)縮短checkpoint間隔同時(shí)通過調(diào)整Flink的寫入并行度來控制每個(gè)并行子任務(wù)寫入的數(shù)據(jù)量讓每個(gè)子任務(wù)在每個(gè)checkpoint周期寫入的數(shù)據(jù)量接近目標(biāo)文件大小。還有一個(gè)參數(shù)是寫入并行度。并行度越高每個(gè)子任務(wù)分到的數(shù)據(jù)越少生成的文件越多但每個(gè)文件越小。我們的經(jīng)驗(yàn)是寫入并行度不要超過Kafka分區(qū)數(shù)否則會(huì)有子任務(wù)空閑。同時(shí)如果發(fā)現(xiàn)生成的文件普遍偏小可以適當(dāng)降低并行度讓每個(gè)子任務(wù)攢更多數(shù)據(jù)再寫。2.4 Schema演進(jìn)策略與兼容性設(shè)計(jì)Schema演進(jìn)是數(shù)據(jù)湖相比傳統(tǒng)數(shù)倉的一大優(yōu)勢但用不好也會(huì)踩坑。Iceberg支持的操作包括新增列、刪除列、重命名列、修改列類型有限制、調(diào)整列順序等。Flink寫入端和下游讀取端對(duì)schema變更的感知是異步的需要設(shè)計(jì)好兼容策略。我們的做法是所有schema變更走統(tǒng)一的元數(shù)據(jù)管理流程。新增字段時(shí)先在Iceberg表上執(zhí)行ALTER TABLE ADD COLUMN然后更新Flink寫入作業(yè)的schema定義最后通知下游讀取方更新。這個(gè)順序不能亂否則寫入端會(huì)報(bào)字段不存在的錯(cuò)誤。對(duì)于列類型修改Iceberg支持int到long、float到double這種安全的類型提升但不支持反向轉(zhuǎn)換。我們規(guī)定只允許類型提升不允許類型收窄。如果業(yè)務(wù)確實(shí)需要收窄類型走新建表加數(shù)據(jù)遷移的流程不在原表上直接改。還有一個(gè)容易忽略的點(diǎn)Flink SQL中定義的schema和Iceberg表的schema要定期做一致性校驗(yàn)。我們遇到過Flink作業(yè)的schema定義和Iceberg表實(shí)際schema不一致的情況原因是有人直接在Iceberg表上加了字段但忘了更新Flink作業(yè)。后來我們加了一個(gè)定時(shí)校驗(yàn)任務(wù)每天對(duì)比Flink作業(yè)的schema和Iceberg表的schema不一致就告警。2.5 小文件治理的自動(dòng)與手動(dòng)策略小文件是流式寫入數(shù)據(jù)湖的頑疾。Iceberg提供了幾種治理手段我們根據(jù)數(shù)據(jù)的重要程度和查詢頻率采用了分層策略。對(duì)于高優(yōu)表核心業(yè)務(wù)表查詢頻繁我們開啟了Iceberg的自動(dòng)合并功能。在Flink寫入端配置write.distribution-mode為hash讓相同分區(qū)鍵的數(shù)據(jù)盡量寫到同一個(gè)文件里。同時(shí)在Iceberg側(cè)配置定期執(zhí)行rewrite_data_files和rewrite_manifests操作把小于目標(biāo)大小的文件合并成大文件清理過期的manifest。對(duì)于普通表日志類、歸檔類我們采用手動(dòng)合并策略每天凌晨低峰期跑一次合并任務(wù)。合并任務(wù)的參數(shù)需要根據(jù)表的數(shù)據(jù)量和查詢模式來調(diào)。比如target-file-size-bytes設(shè)為256MBmin-file-size-bytes設(shè)為64MB小于64MB的文件會(huì)被合并。max-file-size-bytes設(shè)為512MB超過這個(gè)大小的文件不再合并。對(duì)于極冷表很少查詢的歷史歸檔我們不做合并只做定期的snapshot過期清理刪除不再需要的舊snapshot和對(duì)應(yīng)的數(shù)據(jù)文件釋放存儲(chǔ)空間。這里有個(gè)實(shí)操細(xì)節(jié)合并操作本身也會(huì)消耗計(jì)算資源。如果合并任務(wù)和實(shí)時(shí)寫入任務(wù)跑在同一個(gè)集群上可能會(huì)互相影響。我們的做法是把合并任務(wù)調(diào)度到獨(dú)立的批處理集群上通過讀取Iceberg表的snapshot來做合并不影響實(shí)時(shí)寫入鏈路。3. 完整實(shí)操流程與核心環(huán)節(jié)實(shí)現(xiàn)3.1 環(huán)境準(zhǔn)備與依賴版本鎖定在開始集成之前版本兼容性是第一個(gè)要確認(rèn)的事情。Flink和Iceberg的版本對(duì)應(yīng)關(guān)系比較敏感版本不匹配會(huì)導(dǎo)致各種奇怪的報(bào)錯(cuò)。我們當(dāng)時(shí)用的組合是Flink 1.13.2 Iceberg 0.12.0 Hadoop 3.2.1。這個(gè)組合是經(jīng)過社區(qū)驗(yàn)證的穩(wěn)定版本。依賴方面需要在Flink的lib目錄下放入以下jar包# Iceberg核心包 iceberg-flink-runtime-0.12.0.jar # Hive Catalog依賴如果使用HiveCatalog iceberg-hive-runtime-0.12.0.jar # Hadoop依賴如果Flink集群沒有自帶 hadoop-common-3.2.1.jar hadoop-hdfs-client-3.2.1.jar注意iceberg-flink-runtime是一個(gè)shaded包已經(jīng)包含了大部分依賴不要重復(fù)引入Iceberg的其他模塊否則會(huì)出現(xiàn)類沖突。Hive Metastore的配置需要在Flink的sql-client-defaults.yaml或者代碼中指定catalogs: - name: iceberg_catalog type: iceberg catalog-type: hive uri: thrift://your-hive-metastore:9083 warehouse: hdfs://your-namenode:8020/warehouse/iceberg3.2 Flink SQL建表與參數(shù)配置詳解建表是第一步也是參數(shù)配置最集中的地方。下面是一個(gè)典型的upsert模式Iceberg表的建表語句CREATE TABLE iceberg_catalog.db.order_detail ( order_id BIGINT, user_id BIGINT, product_id BIGINT, order_amount DECIMAL(10,2), order_status STRING, create_time TIMESTAMP(3), update_time TIMESTAMP(3), dt STRING, PRIMARY KEY (order_id) NOT ENFORCED ) PARTITIONED BY (dt) WITH ( connector iceberg, catalog-type hive, catalog-database db, catalog-table order_detail, write.distribution-mode hash, write.upsert.enabled true, write.metadata.delete-after-commit.enabled true, write.metadata.previous-versions-max 10, write.format.default parquet, write.parquet.compression-codec zstd, write.target-file-size-bytes 268435456 );幾個(gè)關(guān)鍵參數(shù)的解釋write.distribution-mode設(shè)為hash表示按照分區(qū)鍵做hash分發(fā)相同分區(qū)的數(shù)據(jù)會(huì)寫到同一個(gè)Flink子任務(wù)減少小文件數(shù)量。如果設(shè)為none數(shù)據(jù)隨機(jī)分發(fā)小文件會(huì)更多。write.upsert.enabled設(shè)為true開啟upsert模式。注意這個(gè)參數(shù)在Flink SQL中是通過主鍵定義隱式開啟的如果定義了PRIMARY KEYIceberg會(huì)自動(dòng)使用upsert模式。write.metadata.delete-after-commit.enabled設(shè)為true每次提交后自動(dòng)刪除過期的元數(shù)據(jù)文件防止元數(shù)據(jù)無限膨脹。write.metadata.previous-versions-max設(shè)為10保留最近10個(gè)版本的元數(shù)據(jù)支持時(shí)間旅行查詢最近10個(gè)snapshot。write.target-file-size-bytes設(shè)為256MB這是目標(biāo)文件大小Iceberg在寫入時(shí)會(huì)盡量讓每個(gè)文件接近這個(gè)大小。write.parquet.compression-codec設(shè)為zstd壓縮比和性能比較均衡。如果對(duì)存儲(chǔ)成本敏感可以用zstd如果對(duì)讀取性能要求極高可以用snappy。3.3 實(shí)時(shí)寫入作業(yè)的提交與調(diào)優(yōu)建完表之后提交Flink流作業(yè)寫入數(shù)據(jù)。作業(yè)的并行度設(shè)置需要根據(jù)數(shù)據(jù)量和集群資源來定。我們的經(jīng)驗(yàn)值是每個(gè)并行子任務(wù)的寫入吞吐控制在5MB/s到10MB/s之間。如果總吞吐是100MB/s那么并行度設(shè)為10到20比較合適。Checkpoint的配置在Flink作業(yè)的配置文件中execution.checkpointing.interval: 30s execution.checkpointing.mode: EXACTLY_ONCE execution.checkpointing.timeout: 10min execution.checkpointing.min-pause: 10s execution.checkpointing.max-concurrent-checkpoints: 1 state.backend: rocksdb state.backend.incremental: trueexecution.checkpointing.interval設(shè)為30秒和前面計(jì)算的文件大小目標(biāo)對(duì)應(yīng)。execution.checkpointing.timeout設(shè)為10分鐘給Iceberg提交snapshot留足時(shí)間。如果超時(shí)時(shí)間設(shè)得太短Iceberg提交還沒完成checkpoint就超時(shí)了會(huì)導(dǎo)致作業(yè)頻繁重啟。execution.checkpointing.max-concurrent-checkpoints設(shè)為1禁止并發(fā)checkpoint。Iceberg的snapshot提交需要串行執(zhí)行并發(fā)checkpoint會(huì)導(dǎo)致提交沖突。state.backend用RocksDB開啟增量checkpoint減少狀態(tài)存儲(chǔ)的開銷。3.4 離線讀取與時(shí)間旅行查詢實(shí)操Iceberg表建好、數(shù)據(jù)寫進(jìn)去之后離線讀取就很簡單了。用Flink SQL或者Spark SQL都可以直接查-- Flink SQL查詢最新數(shù)據(jù) SELECT * FROM iceberg_catalog.db.order_detail WHERE dt 2024-01-15; -- Flink SQL時(shí)間旅行查詢查詢某個(gè)snapshot的數(shù)據(jù) SELECT * FROM iceberg_catalog.db.order_detail /* OPTIONS(snapshot-id1234567890) */ WHERE dt 2024-01-15;時(shí)間旅行查詢?cè)谂挪閿?shù)據(jù)問題時(shí)特別有用。比如業(yè)務(wù)方反饋某天的數(shù)據(jù)有問題我們可以通過時(shí)間旅行查詢到那天的snapshot對(duì)比前后幾個(gè)snapshot的數(shù)據(jù)變化快速定位是哪次寫入引入了異常數(shù)據(jù)。還有一個(gè)實(shí)用技巧通過Iceberg的元數(shù)據(jù)表查詢表的文件分布情況。Iceberg提供了snapshots、manifests、files等元數(shù)據(jù)表可以直接用SQL查詢-- 查詢表的所有snapshot SELECT * FROM iceberg_catalog.db.order_detail.snapshots; -- 查詢某個(gè)snapshot的文件列表 SELECT * FROM iceberg_catalog.db.order_detail.files WHERE snapshot_id 1234567890;這些元數(shù)據(jù)表在排查小文件問題、分析數(shù)據(jù)分布時(shí)非常有用。3.5 監(jiān)控指標(biāo)與告警配置生產(chǎn)環(huán)境跑起來之后監(jiān)控是必不可少的。我們主要監(jiān)控以下幾類指標(biāo)Flink作業(yè)層面checkpoint成功率、checkpoint耗時(shí)、背壓情況、吞吐量。這些指標(biāo)通過Flink的Metric系統(tǒng)采集接入Prometheus和Grafana做可視化。Iceberg表層面snapshot數(shù)量、manifest文件數(shù)量、數(shù)據(jù)文件數(shù)量、平均文件大小、元數(shù)據(jù)文件大小。這些指標(biāo)通過定時(shí)查詢Iceberg的元數(shù)據(jù)表來采集。存儲(chǔ)層面HDFS的存儲(chǔ)使用量、文件數(shù)量增長趨勢。如果發(fā)現(xiàn)文件數(shù)量增長過快說明小文件問題嚴(yán)重需要觸發(fā)合并任務(wù)。告警規(guī)則方面我們?cè)O(shè)置了幾個(gè)關(guān)鍵閾值checkpoint連續(xù)失敗3次告警、單次checkpoint耗時(shí)超過5分鐘告警、Iceberg表的小文件數(shù)量小于64MB的文件超過1000個(gè)告警、元數(shù)據(jù)文件大小超過1GB告警。4. 常見問題與排查技巧實(shí)錄4.1 寫入性能突然下降的排查路徑這是我們?cè)谏a(chǎn)環(huán)境遇到最多的問題。表現(xiàn)是Flink作業(yè)的吞吐量突然下降checkpoint耗時(shí)變長背壓升高。排查路徑如下第一步看Flink的背壓情況。通過Flink Web UI或者M(jìn)etric系統(tǒng)查看各個(gè)算子的背壓狀態(tài)。如果背壓出現(xiàn)在Iceberg Sink算子說明寫入Iceberg這一側(cè)有問題。第二步看Iceberg表的文件數(shù)量。如果文件數(shù)量在短時(shí)間內(nèi)快速增長說明小文件問題嚴(yán)重了。大量小文件會(huì)導(dǎo)致Iceberg在提交snapshot時(shí)需要處理大量的manifest文件提交耗時(shí)變長進(jìn)而拖慢整個(gè)checkpoint。第三步看HDFS的寫入延遲。如果HDFS的寫入延遲升高也會(huì)導(dǎo)致Iceberg寫入變慢。這種情況通常是HDFS集群本身的問題比如NameNode負(fù)載過高、DataNode磁盤IO瓶頸等。第四步看Iceberg的提交日志。Iceberg在提交snapshot時(shí)會(huì)打印詳細(xì)的日志包括生成了多少個(gè)數(shù)據(jù)文件、多少個(gè)刪除文件、提交耗時(shí)等。通過日志可以定位到具體的瓶頸。我們遇到過一次典型的性能下降原因是某個(gè)Flink作業(yè)的并行度從10調(diào)到了20導(dǎo)致每個(gè)子任務(wù)寫入的數(shù)據(jù)量減半生成的文件數(shù)量翻倍小文件問題加劇最終拖慢了整個(gè)寫入鏈路。解決辦法是把并行度調(diào)回10同時(shí)開啟自動(dòng)合并。4.2 Checkpoint失敗與數(shù)據(jù)不一致的修復(fù)Checkpoint失敗是流作業(yè)的常見問題但和Iceberg集成后失敗的原因和修復(fù)方式有一些特殊性。場景一Iceberg提交超時(shí)導(dǎo)致checkpoint失敗。表現(xiàn)是checkpoint超時(shí)日志里能看到Iceberg的commit操作還在執(zhí)行。這種情況通常是Iceberg提交的數(shù)據(jù)量太大或者HDFS寫入太慢。解決辦法是縮短checkpoint間隔減少每次提交的數(shù)據(jù)量或者增加checkpoint的超時(shí)時(shí)間。場景二Iceberg提交成功但checkpoint失敗。這種情況比較棘手因?yàn)镮ceberg已經(jīng)提交了snapshot但Flink認(rèn)為checkpoint失敗了會(huì)回滾到上一個(gè)checkpoint。這會(huì)導(dǎo)致Iceberg表里多了一批“孤兒數(shù)據(jù)”雖然不影響讀取因?yàn)樽x取是基于snapshot的但會(huì)浪費(fèi)存儲(chǔ)空間。解決辦法是配置Iceberg的write.metadata.delete-after-commit.enabled為true定期清理孤兒snapshot。場景三Checkpoint成功但I(xiàn)ceberg提交失敗。這種情況會(huì)導(dǎo)致數(shù)據(jù)丟失因?yàn)镕link認(rèn)為checkpoint成功了不會(huì)重放這部分?jǐn)?shù)據(jù)但I(xiàn)ceberg里沒有寫入。這種情況通常是由于Iceberg的Catalog不可用或者權(quán)限問題導(dǎo)致的。解決辦法是配置重試機(jī)制Iceberg的commit操作支持重試可以在Flink的Sink配置中設(shè)置重試次數(shù)和重試間隔。實(shí)操心得我們后來在Flink作業(yè)里加了一個(gè)“提交確認(rèn)”機(jī)制每次checkpoint完成后額外做一次Iceberg的snapshot校驗(yàn)確認(rèn)最新的snapshot ID和checkpoint的ID對(duì)應(yīng)。如果不一致觸發(fā)告警并暫停作業(yè)人工介入排查。4.3 小文件過多的緊急處理方案小文件問題如果已經(jīng)積累到影響查詢性能的程度需要緊急處理。我們的處理流程是第一步評(píng)估影響范圍。查詢Iceberg的files元數(shù)據(jù)表統(tǒng)計(jì)小于64MB的文件數(shù)量和總大小評(píng)估合并需要的時(shí)間和資源。第二步暫停實(shí)時(shí)寫入。如果小文件問題非常嚴(yán)重合并任務(wù)和實(shí)時(shí)寫入同時(shí)跑會(huì)互相影響建議先暫停實(shí)時(shí)寫入作業(yè)等合并完成后再恢復(fù)。暫停時(shí)間根據(jù)合并的數(shù)據(jù)量來定一般幾十分鐘到幾個(gè)小時(shí)。第三步執(zhí)行合并任務(wù)。用Spark或者Flink批作業(yè)執(zhí)行Iceberg的rewrite_data_files操作-- Spark SQL執(zhí)行合并 CALL iceberg_catalog.system.rewrite_data_files( table db.order_detail, options map( target-file-size-bytes, 268435456, min-file-size-bytes, 67108864, max-file-size-bytes, 536870912 ) );第四步清理過期元數(shù)據(jù)。合并完成后執(zhí)行rewrite_manifests和expire_snapshots清理不再需要的manifest文件和snapshot。第五步恢復(fù)實(shí)時(shí)寫入。確認(rèn)合并完成后恢復(fù)Flink作業(yè)并調(diào)整參數(shù)防止小文件問題再次出現(xiàn)。4.4 Schema變更導(dǎo)致作業(yè)失敗的應(yīng)急處理Schema變更導(dǎo)致的作業(yè)失敗通常發(fā)生在寫入端和讀取端的schema不一致時(shí)。應(yīng)急處理流程情況一寫入端報(bào)字段不存在。原因是Iceberg表加了字段但Flink作業(yè)的schema沒更新。解決辦法是更新Flink作業(yè)的schema定義并重啟作業(yè)。如果作業(yè)不能立即重啟可以先用ALTER TABLE DROP COLUMN把新加的字段刪掉等作業(yè)更新后再加回來。情況二讀取端報(bào)字段類型不匹配。原因是Iceberg表的字段類型改了但讀取端的schema沒更新。解決辦法是更新讀取端的schema定義。如果讀取端是BI工具或者即席查詢需要通知相關(guān)方更新。情況三寫入端報(bào)主鍵沖突。原因是upsert模式的主鍵定義和Iceberg表的主鍵定義不一致。解決辦法是檢查兩邊的定義確保完全一致。避坑技巧我們后來規(guī)定所有schema變更必須走工單流程變更前先在測試環(huán)境驗(yàn)證確認(rèn)寫入端和讀取端都能正常工作后再上生產(chǎn)。同時(shí)在Flink作業(yè)里加了schema兼容性檢查作業(yè)啟動(dòng)時(shí)對(duì)比Flink schema和Iceberg schema不一致直接拒絕啟動(dòng)。4.5 常見問題速查表問題現(xiàn)象可能原因排查方法解決方案寫入吞吐突然下降小文件過多、HDFS延遲高查看Iceberg文件數(shù)量、HDFS監(jiān)控執(zhí)行合并、調(diào)整并行度Checkpoint頻繁超時(shí)單次提交數(shù)據(jù)量太大查看checkpoint耗時(shí)、Iceberg提交日志縮短checkpoint間隔、增加超時(shí)時(shí)間數(shù)據(jù)重復(fù)upsert模式未生效檢查主鍵定義、查詢Iceberg表數(shù)據(jù)確認(rèn)主鍵定義、開啟upsert查詢性能差分區(qū)裁剪失效、文件過大查看查詢計(jì)劃、文件大小分布調(diào)整分區(qū)策略、合并大文件元數(shù)據(jù)膨脹snapshot未清理查看snapshots元數(shù)據(jù)表配置自動(dòng)清理、執(zhí)行expire_snapshots作業(yè)啟動(dòng)失敗schema不一致、依賴沖突查看啟動(dòng)日志、對(duì)比schema更新schema、檢查jar包版本時(shí)間旅行查詢報(bào)錯(cuò)snapshot已過期查看snapshots元數(shù)據(jù)表調(diào)整snapshot保留策略5. 生產(chǎn)環(huán)境運(yùn)維經(jīng)驗(yàn)與性能優(yōu)化心得5.1 資源規(guī)劃與容量評(píng)估方法Iceberg表的存儲(chǔ)容量增長是可以預(yù)估的。核心公式是日增數(shù)據(jù)量 × 副本數(shù) × 壓縮比 × 保留天數(shù)。比如日增原始數(shù)據(jù)100GBHDFS副本數(shù)3Parquet壓縮比0.3保留365天那么總存儲(chǔ)需求大約是100GB × 3 × 0.3 × 365 ≈ 32TB。這還不包括合并操作產(chǎn)生的臨時(shí)文件和舊snapshot占用的空間實(shí)際規(guī)劃時(shí)要留出30%到50%的余量。計(jì)算資源方面Flink寫入作業(yè)的資源需求主要取決于寫入吞吐和checkpoint的數(shù)據(jù)量。我們的經(jīng)驗(yàn)值是每10MB/s的寫入吞吐需要大約4個(gè)CPU核心和8GB內(nèi)存。這個(gè)值會(huì)根據(jù)數(shù)據(jù)復(fù)雜度、序列化開銷、Iceberg提交開銷等因素浮動(dòng)建議在實(shí)際壓測后確定。合并任務(wù)的資源需求取決于表的數(shù)據(jù)量和合并頻率。每天合并一次的話合并任務(wù)的處理能力建議是日增數(shù)據(jù)量的2到3倍確保能在低峰期內(nèi)完成合并。5.2 多表共用一個(gè)Flink作業(yè)的利弊分析為了節(jié)省資源我們一開始嘗試把多個(gè)Iceberg表的寫入放在同一個(gè)Flink作業(yè)里。好處是節(jié)省了TaskManager的資源減少了作業(yè)數(shù)量運(yùn)維成本低。但壞處也很明顯故障隔離性差。一張表的寫入出現(xiàn)問題整個(gè)作業(yè)都會(huì)受影響所有表的數(shù)據(jù)寫入都會(huì)延遲。資源競爭。不同表的寫入吞吐不同有的表數(shù)據(jù)量大、有的表數(shù)據(jù)量小共用一個(gè)作業(yè)會(huì)導(dǎo)致資源分配不均數(shù)據(jù)量大的表可能搶不到足夠的資源。Checkpoint相互影響。一個(gè)作業(yè)的checkpoint是全局的如果某張表的Iceberg提交特別慢會(huì)拖慢整個(gè)checkpoint影響所有表。后來我們改成了按業(yè)務(wù)域拆分作業(yè)每個(gè)業(yè)務(wù)域的核心表放在一個(gè)作業(yè)里非核心表單獨(dú)跑。這樣既保證了核心表的穩(wěn)定性又控制了作業(yè)數(shù)量。5.3 數(shù)據(jù)回溯與重跑的正確姿勢數(shù)據(jù)回溯是數(shù)據(jù)平臺(tái)的剛需Iceberg在這方面提供了很好的支持。我們的回溯流程是第一步確定回溯范圍。通過時(shí)間旅行查詢確定要回溯到哪個(gè)snapshot以及需要重跑的時(shí)間段。第二步暫停下游消費(fèi)。通知下游停止消費(fèi)Iceberg表的數(shù)據(jù)避免讀到中間狀態(tài)的數(shù)據(jù)。第三步執(zhí)行回溯寫入。用Flink批作業(yè)或者Spark作業(yè)重新計(jì)算指定時(shí)間段的數(shù)據(jù)寫入Iceberg表。注意寫入時(shí)要指定新的分區(qū)或者使用INSERT OVERWRITE語義避免和現(xiàn)有數(shù)據(jù)沖突。第四步校驗(yàn)數(shù)據(jù)?;厮萃瓿珊髮?duì)比回溯前后的數(shù)據(jù)量和關(guān)鍵指標(biāo)確認(rèn)數(shù)據(jù)正確。第五步恢復(fù)下游消費(fèi)。通知下游恢復(fù)消費(fèi)并告知回溯完成的時(shí)間點(diǎn)。實(shí)操心得回溯操作最好在低峰期執(zhí)行并且提前通知相關(guān)方。我們有一次在業(yè)務(wù)高峰期做回溯導(dǎo)致Iceberg表的寫入壓力驟增影響了實(shí)時(shí)鏈路的性能。后來規(guī)定所有回溯操作必須提前一天報(bào)備安排在凌晨執(zhí)行。5.4 從Iceberg 0.12到0.14的升級(jí)踩坑記錄Iceberg社區(qū)迭代很快我們后來從0.12升級(jí)到了0.14中間踩了一些坑記錄一下坑一Flink版本兼容性。Iceberg 0.14要求Flink 1.14及以上版本我們當(dāng)時(shí)用的Flink 1.13.2不兼容需要先升級(jí)Flink。升級(jí)Flink又涉及到狀態(tài)兼容性問題需要做狀態(tài)遷移??佣嗀PI變更。Iceberg 0.14對(duì)Flink SQL的Connector參數(shù)做了一些調(diào)整比如write.upsert.enabled參數(shù)被廢棄改為通過主鍵定義自動(dòng)識(shí)別。升級(jí)后需要修改建表語句??尤獢?shù)據(jù)格式變更。Iceberg 0.14對(duì)元數(shù)據(jù)格式做了一些優(yōu)化升級(jí)后需要執(zhí)行一次元數(shù)據(jù)遷移操作。這個(gè)操作是不可逆的升級(jí)前一定要備份元數(shù)據(jù)。坑四性能表現(xiàn)差異。升級(jí)后發(fā)現(xiàn)寫入性能比0.12略有下降排查后發(fā)現(xiàn)是0.14默認(rèn)開啟了更嚴(yán)格的元數(shù)據(jù)校驗(yàn)。通過調(diào)整write.metadata.compression-codec參數(shù)把元數(shù)據(jù)壓縮算法從gzip改為zstd性能恢復(fù)到了升級(jí)前的水平。5.5 未來演進(jìn)方向與擴(kuò)展思路Iceberg和Flink的集成還在快速演進(jìn)中我們也在持續(xù)關(guān)注幾個(gè)方向一是Flink CDC與Iceberg的深度集成。目前我們是從Kafka接binlog數(shù)據(jù)寫入Iceberg鏈路比較長。Flink CDC可以直接從數(shù)據(jù)庫抓取變更數(shù)據(jù)寫入Iceberg鏈路更短、延遲更低。我們正在測試這個(gè)方案初步效果不錯(cuò)。二是Iceberg的Row-level Delete優(yōu)化。Iceberg 0.14引入了更高效的刪除文件格式upsert模式的寫入性能有明顯提升。我們計(jì)劃在下一個(gè)版本升級(jí)中驗(yàn)證這個(gè)特性。三是多引擎共享Iceberg表。目前我們主要是Flink寫入、Flink和Spark讀取。未來計(jì)劃讓Trino、Presto等引擎也能直接查詢Iceberg表實(shí)現(xiàn)真正的多引擎共享。四是冷熱數(shù)據(jù)分層存儲(chǔ)。Iceberg支持自定義文件存儲(chǔ)路徑可以把冷數(shù)據(jù)放到更便宜的存儲(chǔ)介質(zhì)上熱數(shù)據(jù)保留在高性能存儲(chǔ)上。這個(gè)特性對(duì)降低存儲(chǔ)成本很有幫助我們正在做方案設(shè)計(jì)。整體來看Flink加Iceberg的組合在同程藝龍的實(shí)踐是成功的。流批一體不是一句口號(hào)而是實(shí)實(shí)在在解決了我們數(shù)據(jù)口徑不一致、鏈路重復(fù)建設(shè)的問題。當(dāng)然落地過程中遇到的坑也不少上面這些經(jīng)驗(yàn)都是一個(gè)個(gè)問題踩出來的。如果你也在做類似的實(shí)踐希望這些內(nèi)容能幫你少走一些彎路。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美v日韩v亚洲v最新在线| 欧美劲爆第一页| 麻豆激情综合| 天天综合网1| 免费看美国人人爽,人人操| 九九九久千久久激情蜜桃在线看 | 久久久一区二区三区四曲免费听| 男人天堂欧美| 亚洲丝袜二区在线| 午夜AV污污污| 亚洲情色在线| 九月AV| 99色色网| 97欧美性爱| 成人性爱av| 91性色| 国产精品自拍视频| 天天操夜夜操| 欧美亚洲自拍另类人妻| 久久久久久久精| 日本一卡二区在线| 婷婷五月天色网| 最新精品久久蜜桃 | 97超碰亚洲| 日韩人体偷拍| 日本一区二区三区精品| 偷拍超碰| 精品国产国产AV| 亚洲不雅视频1区二区| 干B| 夜夜操av亚洲一区二区| 欧美狠狠操| 青青草九九九九九| 神马久久久久久久久久| 大香蕉综合久久| 亚洲大色堂| 精品国产一区二区三区久久久蜜臀 | 亚州精人品大香蕉| 婷婷亚洲中文字幕在线| 欧美白嫩在线放| 久久久久中出| 五月天久久婷婷亚洲 | 狠狠97| 欧美性性性| 粉嫩粉嫩一区性色AV片| 免费A V在线播放| 国产 亚洲 丝袜 制服| 欧洲欧美视频一区二区| 萌白酱自拍视频| 91在线超高颜值国产| 一级二级三级黑人无码| 精品国产www久久| 极品色www影院| 强奸乱伦av电影| www.av在线观看| 五月天婷婷基地| 992这里有精品| 色呦呦、国产精品| 精品妇操一区二区三区| 久久9999| 亚洲综合影院| 日日噜噜夜夜狠狠视频无| 国产一进一出视频网站| 在线播放成人网站| 中文字幕黄片在线| 欧美色性爱| 99色综合| 中文字幕1区2区| 大香久久| 欧美少妇一区二区三区| 青青草吊丝| 蜜臀久久久| 99久草| 亚洲综合另类| 欧美国产伊人久久久久| 粉嫩国产精品久久久| 激情四射熟女丝袜| 妇女性内射冈站HDWWWCOM| 青娱乐久久艹| 97九色人妻| 91综合熟女| 国产suv精品一区二区四| 日本潮催一卡操| 国产农村妇女精品1区二区| 欧美第38页| 国产AV线| 大香蕉伊在线久草麻豆天堂故事| 日韩欧美福利视频看看| 日本操大逼| 久久九九国产精品| 啊啊好多水| 一本大道青青| 911av网站免费观看| 日本综合久久| 91无码人妻| 女人天堂av在线播放| 秋霞免费AV| 亚洲精品欧洲精品| 久久精品一区二区三区四区五区| 丁香五月激情综合| 清纯唯美综合亚洲| 精品一二三区久久AAA片| 中文字幕丝袜美腿| 成人羞羞视频国产| 婷婷香蕉欧美在线一区二区三区 | 99热| 91AV国产精品| 久久久不能久久久久| 97超色| 老熟女乱伦一区| 志村玲子视频一区二区| 日日干夜夜欢| 男人的天堂2019AV| 97视频在线免费观看| 色人久久| 亚洲日韩电影| 天天日老熟妇| 天天草天天日| 天天香香欲综合| 91肉片| 嗯嗯啊啊操死我| 伦理第一页| 午夜丁香婷婷| 女优大全 - 91n| 91婷婷| 熟妇色99| Av色五月| 嫩草美女久久| 亚洲九九视频| 亚洲精品欧美专业| 国产精品视频麻豆入口| com 首页 18岁 禁区 女优 免费 精选 同城 | 九九色影院| 中文熟女五十乱码在线| www超碰| 国产精品农村妇女| 婷婷综合在线观看| 欧美人妻久久精品二区三区| 欧美激色| 欧美超碰在线| 蜜臀久久久| 人人干人人操人人..com| 视频黄站| 青青草日韩无码| 婷婷色香伊人| 四虎884a| 日本网色| 欧洲久久一二线| 久久亚洲天天做| 国产 热久久久久国产精品| 一本久久精品中文字| 国产九九九九九九九九| 91香蕉国产尤物视频| 久久鲁夜| 精品超碰中文在线| 成人综合久久精品色婷婷| 久久久久久久少妇| 精品国产乱码久久久久久口爆网站 | 亚洲另类色综合网站| www.99色| 精品无码久久久久久国产浪潮| 欧美一级专区免费大片| 天天干少妇| 夜夜嗨视频| 欧亚第一综合网| 强免费黄色网址| 97色碰| 久久精品国产久精国产| 久久精精区一区二区一蜜桃一区二区| 国产一级高跟丝袜| 97爱爱爱| 91精品操美女| 久草在| 啊啊啊 在线观看| 无码WWW免费视频网站| 992视频一区| 中文字幕日韩精品久久| 巨乳特殊服务按摩| 超碰69| 久久色激情一区二区三区| 404操逼福利视频| 色色毛片| 欧洲性爱无码区| 96国产精品| 久久一二三四不卡 | 久久夜嗨| 久妇网| 日韩中文字幕视频在线观看| 亚洲成人AB| 高清无码国产亚洲| 免费观看的黄色的网站| 免费日韩黄片| 天天看天天干| 91亚洲色人| 又大又大又大又粗爽高潮观看| 无码精品啪啪啪一区二区三区三州| 日本不卡三级网在线播放| 婷婷丁香久久| 99碰碰| 日本熟妇人妻中出视频| 夜色AV无码手机在线影院| 亚洲日韩人妻中文字幕一区| 放黄片放3级黄片没穿衣服| 91熟女丨91老女人| 欧美综合亚洲| 牛牛操视频逼| 日韩精品在线视频,日韩精品……| 97人人夜| 婷婷人妻激情| 亚洲春色欧美| 射综合网| 人人人摸人人| 手机在线视频国内精品| 伊人色综合网电影| 欧美日韩亚洲五月天婷婷| 熟女91网| 97神马久久| 久久精品噜噜噜成人看免欧美大片| 97伪v| 又摸又舔在线观看网站| 中文日韩欧美熟| 青青草色插素人| 国外91| 国产精品69久久久久久久| 青青草国产一区二区三区| 一区二区三区四区在线不卡| 中文字幕av片| 中文 人妻 制服| 超碰97亚洲| 午夜视频黄| 欧美爆乳精品一区二区| 国产精品毛片?v一区二区三区 | 国产AV天美传媒一区二区三区| 六月婷婷一区二区三区| 超碰午夜| 91黄站| 激情婷婷综合久久| 色色福利| 亚洲综合激情五月久久| 欧美欲色| 91色射| 激情五月天中文字幕色| 爆操无码| 蜜桃久久久久久| 综合九九| 在线αⅴ| 亚洲精品成人| 色婷婷婷五月天激情四射| 亚洲少妇免费视频\| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 91黄射| av在线观看不卡网站| 欧美一区二区观看在线| 天堂日本亚洲欧美| 久久久久久久久9| 日本影视久久免费| 一区二区三区 日韩欧美| 成人欧美一区二区三区黑人一| 亚洲AV无码| 青青操视频在线| 99re这里只有精品9| 国产精品久久久久久高清无码免费看 | 亚洲中文字幕精品一区| 欧美特大黄一级片片免费| 人妻在线臀日韩| 男人天堂最新手机版在线青青草| 人人模人人看| 十八禁网站在线| 本道在线| 国模不卡| 亚洲天堂久| 一级二级三级黑人无码| 麻豆久久视频在线地址| 丰满少妇乱子伦精品无| 夜夜嗨AV蜜臀av| 亚洲情色 自拍| 亚洲91在线播放影院| 亚洲天堂东京热| 久久久涩| 六月丁香啪啪| 99蜜月精品久久| 91视频伊人| 亚洲AV无码天美传媒一区| 欧美日韩制服| 日韩精品一区二区三区色欲| 欧美第一页| 夜夜狠狠躁日日躁色视频| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 中文字幕乱亚洲美女精品一区| 日韩免费三级黄片电影| 婷婷情色综合网| 欧亚日韩中文在线| 六月丁香五月婷婷| 国内一级精品| 五月婷婷激情综合| 午夜传煤十二区精品| 日韩成人性爱电影在线播放| 亚洲超碰综合网| 国产女人高潮嗷嗷嗷叫小说| 国产熟妇一区二区| 飘花国产午夜精品不卡| 国产天天噜一噜久久久| 色综合婷婷| 欧美的精品的视频| 国产最新AV| 国产精品高潮久久久无码| 欧美男人一区| 女人双腿搬开让男人桶| 欧美成人精品一区二区男人蜜臀| 欧美网站免费| 日韩三级av片| 2025亚洲男人天堂| 国产一区自拍欧美日韩| 福利一级版子| 国产真实野战在线视频| 人妻第一页| 日韩本不卡视频在线观看| 超碰97资源网亚洲| 亚洲综合小说另类图欧美视频激情小说色五月天 | 国产自偷自拍一区| 免费操逼91| 超碰97在线 欧美 国产| 手机看av网站在线看| 偷拍亚洲情色| 日本裸体久久色噜噜| 欧美第五页| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 日欧操屄视频| 欧美精品97| 夜夜久久| 中文字幕123| 久久91精品国产9丨久久分亭 | 在线观看中文字幕| 999色欧美中文字幕| 91人人看| 国产精点久久久成人| 亚洲高清欧美总合| 亚洲图片色图欧美另类| 久久久久女教师免费一区| 亚洲欲色9532548967一区| 日本三级A片网站com| 日本一二三免费久久| 91在线限制级| 很很干很很操| 操婷婷逼| 欧美1区二区三区公司| 久久伊人东京热| 99综合| 久久大线蕉一区| 成人日本视频人妻在线| 亚洲 日本 不卡| 宗合情欲网| 五月天丁香网| 久草国产在线视频| 精品无码久久久久久久久果冻糖心 | 国产一区二区a毛片| 麻豆天美在线| 熟女乱伦A| 最新国产精品久久精品| 操日韩第| 日韩成人高清一区二区| 熟女熟妇一区二区三四区 | 久久久久久九九九| 91成人久久| 欧美精品 - 91爱爱| 国产午夜在线观看| 啊啊在线| 中文字幕免费在线观看| 久久人妇| 国产美女激情| 午夜福利在线视频1000| 日韩午夜国产| 综合日韩激情另类图片| juliaann精品熟女一区| 精品国产一区二区久久| 亚洲熟妇图片| 日本一区二区三区精品| 男插女青青影院| 97蜜桃综合| 91 亚洲 欧洲| 97超碰色情| 亚洲人综合| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 色丁香久久| 亞洲久久直播| 看一级黄色视频| 午夜福利视频在线一区| 国产久久久久久久久一区二区| 温婉少妇玩3p| 日韩精品黄片免费观看| 五月婷婷久久综合| 一二三四免费视频| 精品夜夜澡人妻无码| 看日韩美女二区三区免费操逼视频 | 亚州免费啪啪视频| 人人做人人妻人人夜视频| 国产操逼逼网| 日本超碰在线国产一区| 大香蕉伊利av| 久久久穴999| 超碰久久草| 中字一区| 91欧美经典| 中文乱码字幕观看| 乱伦日本中文自拍| 色欲蜜臀AV| 日韩,欧美,中文在线| 日本黄 R色 成 人网站| 韩国一区二区精品亚洲| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 草草草视频在线免费看| 国产91会所女技师在线观看| 亚洲AV操| AV天天在线观看| 欧美精品久久96人妻无码| 亚州高清色综合| 日韩 欧美 视频 在线 一区| 午夜精品久久久久久久99蜜桃一| 男人天堂婷婷五月天校园春色| 第二页中文字幕| 九九色热| 老司机福利青青草| 东方亚洲在线操逼天堂| 蜜臀久久一区二区| 性爱1区| 97视频www| 大奶啊啊好爽| 女人被添高潮免费视频| 婷婷在线视频在线观看| 蜜臀Av一区二区三区| 和协影院中文字幕三区| 久久女人视频| 亚洲欧美一区二区三区在钱蜜桃 | 无码操逼视频一下| 欧美色人| 日本中文字幕不卡视频| 好爽免费视频| 清纯唯美亚洲| 国产一级舔足在线观看| 国产老太乱伦一区| 激情综合网五月婷婷五月天| 久久产精品一区二区三区电影| 91狠狠综合久久| 亚州欧美另类| 五月亭亭六月丁香| 亚洲欧美一区二区网址| 亚洲欧洲综合成人av一区| 无码精品久久| 日韩一级特黄av毛片| 国产成年免费大片黄在线观看| 日韩成人精品| 370p日韩欧美亚洲精品| AV污污污污| 国产精品99久久久www| 天天天天干| 97色插| 国产偷仑| 麻豆91熟妇人妻中文字幕茄子| 久久久性爱| 91丨九色丨国产丨人妻在线| 婷婷丁香九月| 色999;丁香五月| 高清不卡一二三区视频......| 蜜臀AV一区二区三区激情综合| 日本性爱少妇| 亚洲欧美自拍偷拍| 中文字幕精品一区二区精品| 精品人人| 日韩精品人妻中文字幕不卡乱码| 亚洲图片色图欧美另类| 久久99人妖视频国产| 亚洲精品99| 91国产美女丝袜足交精品视频| 在线观看啊啊啊啊啊| 插入逼91| 女同亚洲欧美一二三区久久电影| 国产精品丝袜久久亚洲不卡| 青青草好吊色| 二色av| 夜夜操av亚洲一区二区| 91影库| 免费观看网黄| 欧亚性爱啪啪| 97内射偷拍| 999热这里只有精品| 99久久婷婷丁香| 97亚洲中文| 乱伦图一区| 97色色色综合网站| 日韩强奸av| 色噜噜人妻av 中文字幕| 婷婷大香蕉| 久久久久久久久久久久久久久久9| 97久久超碰| 日本操逼视频不卡直接放| 大香蕉宗合网在线| 在线视频 亚洲精品| 蜜桃臀av在线观看| 另类图片天天影视| 亚洲不卡av在线| 欧美夜夜草视频| 天天内射| 国产AV超爽| 曰本特级特黄特色黄色A级网站高清在线免费看 | 色天堂综合| 欧美日韩国产高清在线一二三区 | 六六久久日韩不卡| 亚洲伊人久久综合97| 美女的肌被草喷水视频| 自拍大香蕉乱插| 91 综合网| 欧美三级一级| 天堂中文日本在线观看| 夫妻天天操岛国视频| 免费9 1久久| 亚洲砖码砖专无区2023| 日韩兔费看黄片| 中文字幕熟女人妻丝袜| 风流老熟女一区二区三区l| 人人操av| 91视频伊人| 男人的天堂无码| 亚洲色欲一区二区三区| 亚洲精品aa久久伊人| 欧洲性爱无码区| 国产风韵犹存熟妇三区| 91麻豆天美国产| 天天日天天操天天射河南省| 亚洲情色无码一区二区三区| 99热99在线| 宅男午夜在线视频| 超碰久热| 欧美日韩性爱精品| 麻豆一区二区AV天美| 国语人妻精彩刺激| 伊人五月天青青草婷婷| 亚洲图片日本AⅤ欧美在线| 国产久久视频| 成人三级片无码| 99爱久久视频频| 亚洲中字幕日本一区二区三区| 亚洲欧美校园另类春色| 国产伦乱91| 2017天天操| 国产精品视频播放| 91亚州日韩高清| 久久av无码| 欧美男人的天堂| 久久夜嗨| 蜜桃精品一区二区三区ww | 大香蕉78| 国产福利小视频高清在线观看| 色网亚洲人| 久久成年精品| 精品超碰中文在线| 果冻国产精品麻豆成人av| 男人的天堂免费| 久久成人午夜狠狠| 加勒比少妇AV婷婷六月天超碰超碰| 丝袜熟女2P| www.99视频| 国产原创剧情在线丝袜| 亚洲aV性爱| 国产AV精久久| 人人操人人叉人人插人人| 国产精品麻豆成人av| 欧美天天射| 久久啊啊| 大香蕉乱级| 影音先锋少妇| 国产色精品午夜大片| 中文字幕一区二区三区高清| 大香蕉强奸乱伦| av在线不卡一区二区三区| 久久亚洲AV无码专区首页| 成人aⅴ一区二区三区| 精品国产一区二区三区在线播出| 欧美传媒| 婷婷久久网| 超碰97爽| 成人精品欧洲亚洲| 91亚洲人| 自拍偷拍 高清无码| 郑州宾馆老熟女露脸啪啪| 91天堂色男人的天堂| 亚洲精品色| 国产乱码久久| 欧美色图在线视频少妇| 久久少妇| 国产精品久久伊人| 国产精品午夜AV完会免费| 欧美色性爱| 欧亚揄拍偷拍精品视频 | 亚洲操人| 黑人中出21连凳花野真衣| 亚洲欧美日韩有码| 超碰久超碰久| 亚洲最大的综合性av| 亚洲综合小说另类图欧美视频激情小说色五月天 | 91视频伊人| 九九99精品视频在线观看| 中文字幕在线观看网页| 亚洲天堂电影网99999| 日韩视频精品在线观看| 中文字幕二区日韩天堂| 欧美色图自拍| 欧美操逼熟女| 超碰538| 少妇久久久久久久| 国产精品久久久亚洲一区| 丰满熟妇大乳做爰| 五月婷婷六月激情| 99在线啪| 人妻人人做人人澡人人爽欧美一区| 五月婷婷六月丁香| 国产区在线| 防屏蔽在线视频| 欧美懂色综合网| 色婷婷电影网| dy888午夜老子影视达达兔| 亚洲av无码成人精品国产| 丝袜六区| 中文字幕一区二区无码成人 | 亚洲中文字幕av| 亚洲熟妇自偷自拍另欧美| 青青草依人大香蕉| 久操视频免费在线观看| 午夜啪| 神马久久久久久久久久| 国产亚洲日韩欧| 精品999日本| 牛牛aV| 97超碰欧美手机| 91在线美女| 欧美偷拍区| 97久久国产精品| 五月综合久久| 亚洲精品人妻在线| 91中出在线| 特级大荫道BBwBBwBBW| 你操综合| 在线洲亚线| 嗯嗯啊啊用力视频免费| 操逼逼中文字幕| 色五月天AV| 久久中出在线| 91操人| 国产精品久久久久久亚洲色欲| 欧美日韩黄色片一区二区三区四区人与兽做爱 | 99热婷婷一区二区三| 综合久草| 久久手机视直播| 欧美特大AA级黄片| 超碰97人妻在线| 国产91美女视频| 1204av韩国| 亚州色交| 日本久久99| 特级毛片特黄久久免费看| 91肉丝| 日本不卡一二区| 久久AV色| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 国产91影院| 性高潮久久久| 男人天堂最新手机版在线青青草| 亚洲国产丝袜在线观看| 亚洲美女 晚间男人天堂 | 96国产污污污丝袜| 日本亚欧爱爱| 亚洲无码一区成人免费午夜| 大鸡巴久久| 色妺妺AⅤ| 自拍偷拍第26| 殴美在线AⅤ| 亚洲最大网站av| 熟女人妇一区二区三区| 亚洲aV无码成人在线观看| 日韩免费性爱视频在线观看| 欧美成va视频网站| 国产一区96在线| 午夜一级免费毛片| 久草新免费| 欧美九九九| 亚洲熟女偷拍在线观看| 精品国产丝袜一区二区三区乱码| 少妇久久久免费| 五月天色图影视| 黄片qw| 国产蜜臀在线| 欧洲免费一区二| 亚洲蜜桃V妇女| 国产60页| 熟女一区二区三区四区| 亚洲情色1区| 日本五十路熟女一区二区| 久操免费观看| 青草视频人妻在线观看| 午夜精品一区二区三区三上悠亚| 国产精品区在线12p| 91少妇高潮| 欧美久久婷婷| 国产超碰国产97| 蜜乳AV一区二区三区四| 国内偷拍精品一区二区| 少妇熟女视频一区二区三区| 中美日韩毛片| 99成人| 激情小说成人日本无码一| 91色香| 9.1小视频| 男人的天堂VA在线| 亚洲天堂另类美腿| 99热最新网址| 青娱乐久久艹| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 国产超碰AV在线精品| 日韩紧密久久| 91亚洲人| 中文字幕精品专区搜索结果91| 亚洲AV无码| 丁香五月天堂网| 欧美人妻一区| 久久久久久电影| 无遮挡男女激烈动态图| 91色夜| 激情文学小说一区二区| 日韩精品电影| 啊啊啊快操我视频| 一区=区三区视频| 久久欧美按摩999| www.夜夜操| 久操大香蕉| 综合一区中亚洲国产成人综合精品| 一区不卡在线观看av| 亚洲影院365| 日韩三级伦理中文字幕| 少妇一区二区三区| 久久91| 91亚洲色图| 啪啪视频免费在线观看| 亚洲97综| 秋霞 色色| 国产粉嫩蜜臀av一区二区三区| 日本男人天堂| 国产精品96| 黑人娇小av在线播放| 欧美色欧美| a亚洲欧美色欲| 男女猛烈无遮掩视频免费软件| 国产午夜福利专区综合| 欧美人人操人人插| 成人影院永久免费观看网址| 中国一级操逼视频| 日韩Va亚洲va欧美Ⅴa久久| 狠狠色狠狠色狠狠五月| 日韩性爱播放| 亚洲精品男人的天堂| 欧美|91色综合| 日韩二级| 国产欧美后入| 农村少妇久久久久久久| 久久久蜜桃臀无码视频| av在线播放国产一区| 国产日韩区| 爱做久久久久久| 99热色这里只有精品| 色91综合网| 午夜AV污污污| 人妻丝袜一区二区三区在线| 张柏芝国产一区在线观看| 狠狠操官网| 亚洲欧洲国产综合av| 欧美|91色综合| 日han少妇无码| 亚洲素人综合| 18禁看网站一区| 亚洲中文日韩欧美大香蕉视频| a在线观看| 亚洲精品蜜桃久久久一区二区三区| 亚洲免费97免费| 欧美韩日精品99综合| 久久精品国产亚洲5555| 超97在线精品视频| 午夜精品久久久久久久男人的天堂 | 91chinese在线| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 国内三级自拍小视频在线观看| 久久极品一区二区| 97视频在线免费播放| 色妇综合网| 99久久e免费热视| 欧插网站| 国产中文字幕在线观看| 俺去啦俺来也久久综合| 超碰91在线| 色大师网站www永久网站视频| 97伦综合| 97人人操人人摸人人爱| 性色avv| 欧美第五页| 一级片在线观看高清无码| 91久久久久久| 天天操天天7| 国产精品分类在线观看| 久久婷婷伊人| 狠狠爱AV| 91av一区二区在线观看| 男人天堂2012| 91少妇高潮| 欧美日韩国产中文精品字幕自在自线 | 欧美老妇女内射网址| 男同专区一区二区三区在线| 综合操逼| 国产白丝在线| 成人无遮挡毛片免费看| 久久久久久久久久久六六| 淫穴高潮色图| 97人妻免费中文字幕| 日韩精品人妻系列无码天堂| 亚洲性天堂| 婷婷中文字幕| 熟妇人妻精品一区二区| JIZZJIZZ国产精品喷水| 加勒比伊人影院| 亚洲春色欧美激情自拍| 欧美不卡在线美女| 国产在线播放成人免费| 国产av尤物| 精品免费囯产一区二区三区| 亚洲激情在线一区二区| 天天爽入口| 人人摸人人摸人人干| 91丝袜美腿片| 亚洲1区2区三区高清中文字幕| 亚欧中文字幕在线视频| 久久国产熟女影院| 亚洲 se图 欧美电影| 精品国产av一区二区三区四区入口| 欧美另类色图片| 无码78| 天天在线91| 亚洲性猛| 一牛影视成人片免费| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 999久久久久久久久| 亚洲九月丁香| 91男女| 九九无码| 日韩欧美日韩| 粉嫩国产精品久久久| 永久免费av无码网站国产app| 老熟女熟妇| 免费福利视频中文字幕| 蜜臀久久99精品| 国产亚洲色婷婷久久99精品91葵花宝典| 色女免费在线观看视频网址| 成年女人18级毛片毛片免费观看| 久久亚洲一区二区色婷婷| 五月丁香六月激情| 亚洲一级黄色毛片| 黄资源| 人人干人人操人人..com| 国产久9| 欧美美女自慰一区二区三区| 欧美夜夜草视频| 色天欧美| 99综合网| 国产午夜福利电影免费在线观看| 日本蜜桃| 色婷婷亚洲婷婷| A片大香蕉在线| 少妇第一页| 色吧五月| 永久免费av无码网站国产app| 欧美青青草视频| 熟女精品一区二区三区| 在线观看不卡一区二区三区| 国产女人9999| 日韩亚洲美州欧洲综三区一品在线| 高清在线不卡一区二区 视频| 97视频在线视频| 91九久| 久久6热视频免费观看| 91综合站| 亚洲色综网| 国产人伦精品一区二区三区| 韩国午夜理伦三级好看| 午夜小电影在线插入淫高潮| 97干综合网| 亚洲不卡不卡中文字幕不卡 | 99丝袜福利在线播放| 性爱免费视频成人| 婷婷爽人人婷婷爽视频| 亚洲鸥美色图| 射丝袜高跟鞋99| 日本女人操逼| 操学生天天| 国产av热热色| 日本高清免费一本视频在线观看| 久久超碰、| 六月色色| 欧美亚洲色图另类国产| 日韩小电影| 大香蕉日韩欧美| AV天堂男人的天堂| 人人人人人人少妇| 加勒比五月天| 97 超碰 人人做 人人爱| 9久久精品| 图片区小说区| 伊人久久在线视频观看| 午夜精品久久一区二区| 欲色综合| 亚洲无套久久嗯嗯| 四虎国产精品永久入口| 男人的天堂99| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 2021久久国产综合精品青草| 精品无码久久久久久久杏吧| 日韩人妻无码不卡网站| 蜜桃传媒视频第一区入口在线看| 天堂射| 传媒免费一区二区三区| 精品久久久久黄少妇| 熟妇人妻精品一区二区视频色欲| 高清国产av无码| 亚洲成人性爱在线观看| 加勒比久久综合网高清| 久操网视频| 在线免费观看日韩一区| 久热在线精品免费观看| 极品综合| 久久透逼视频| 1人人看人人摸人人操| 国产AAAAAABBBBB| 国产一区二区成人av在线播放| 淫荡网址| 亚洲日韩av专区无码| 在线视频亚洲无码| 免费视频在线一区二区不卡| 精品国产三级av韩国在线| 综合网亚洲| 久久久性| 1级黄色夫妻对换性交免费看| 一级婬片120分钟试看| 美女熟妇色| 波多野结衣被操50分钟免费视频| 国产无码精品高清| 超碰成人公开| 免費黃色視頻觀看一| 久久九九网| 日本有码影片下载| 午夜性| 久久久禁| 国产日韩中文字幕欧美| 亚洲欧美碰碰| 超碰78| 被男人吃奶很爽的毛片| 欧美成人A天堂片在线观看| 丁香六月东京热| 婷婷视频网| 116美女午夜| 神马久久69| 蜜臀99久久精品久久久久久| 美欧色综合| AV色天香在线| 色大师网站www永久网站视频| 五月天欧美色图| 久久这里只| 国产a片操逼| 天天干天天狼在线视频| 欧美极品女人的天堂| 婷婷五月天久久精品视频一区二区三区| 97色涩| 一本色道人妻久久| 国产亚洲深夜激情| 女人高潮大叫一级毛片| 国产四虎在线| 久久9精品网站| 男女一进一出视频久久| 亚洲成a人片在线观看中文!!!| 人妻中文在线| 欧美久久婷婷| 欧美春色| 日韩中文字幕人妻视频| 超碰国产在线| 亚洲日本韩国在线| 99热啪啪| 日韩资源网| 欧美亚洲综合高清在线| 黄色区免费观看中文字幕| 亚洲综合小说另类图欧美视频激情小说色五月天 | 日韩偷拍色图| 少妇高潮喷水无套久久久久久| 91成人18| 最新日韩黄片| 嗯嗯,好大,好爽,好骚| 三四中文字幕| 日本一区二区三区四区免费观看| 天天摸天天插天天日| 超碰是碰在线观看| 国产美女销魂在线观看不卡| 99热婷婷| 欧美高清在线| 影视综合无码少妇| 国产少妇与亚洲av| 国产精品一二三| 国产一级内射无挡观看| 96久久科窝| 中韩中文字幕在线观看| 人妻 中文 日韩| 日韩二三区| 国产色图乱伦| 97电影院超碰| 国产尤物在线三区| 国产综合网站在线播放| 一区中文字幕二区日韩| 国产乱子伦一区二区三区在线观看| 欧美人与性动交a美精品| 一区 欧美 日韩 麻豆| 久久久久久久唑| 麻豆这里只有精品| 伊人久久亚洲色欲综合网站 | 西西美女视频网| 欧美夜夜草视频| 偷拍伦理视频| 超碰九区| 婷婷五月天伊人| 久久97视频| 亚洲中文字幕网| 久久婷婷苹果| 久久婷婷热| 情色大香蕉| 9色在线| 日韩精品亚洲一二三| 日本免费亚洲欧美| 青青操日韩| 亚洲人妻AV| 99999久久精| 人妻少妇久久久| 国产99热| 熟女啪啪视频| 亚洲乱码精品一区二区| 超碰激情808| 人妻一区二区三区视频| 久偷拍| 国产高清26uuu| 欧美第一页| 国产精品久久久三级无码| 正宗无毛一线天嫩逼| 日韩无码专区| 美女啊啊啊啊啊| Av色五月| 高清不卡一二三区视频......| 国产精品懂色tv影视免费观看| 青青草吊丝| 岛国网址国产 | 91国产大片| 人人操人人搞人人草| 欧美黑人168页欧美黑人167| 亚洲av强奸乱伦| 999999精品| 色婷婷综合久久中文字幕雪峰| 五月天久久综合网| 东方亚洲在线操逼天堂| 香蕉久久国产AV一区二区| 久九色| 欧美色图 人妻| 婷婷久久五月| 黑人免费福利视频| 97在线资源| 丁香五月天社区| 操逼视频国产无套| 大干人妻| 国产欧美美女免费观看视频| 欧美1区二区三区公司| 欧美在线|亚洲| 手机av天堂久久久久| 女人被男人桶爽视频网站| 91天美免费| 亚洲av热热色| 尤物网站91| 天天天肏屄欧美| 人妻乱仑一区二区三区| 超碰人妻97| 99只有精品| 男人的天堂啪啪| 久久精品久久九九精品| 国产91美女视频| 97爱b| 久久99操天天日| 亚洲制服aⅴ中文字幕| 久久精品28| 色偷综合| 麻豆国产av网| 久久露脸国产老熟女| 亚洲欧洲日本精品中文a∨| 亚洲熟妇综合久久久久久| 91色碰| 久久精品性| 日韩黄片视频试看| 天天看片青娱乐| 精品人妻一二三四区视频| 中文字幕91综合| 另类小说五月天| 欧美一级久久久久久久大片动画| 国产熟女无套内射| 欧洲精品欧洲精品| 日产中文字幕2020| 男人天堂2019亚洲| 天天天天天天天天天天干美女| 天天草天天日| 97中文综合| 久久精品中文字幕女同| av午夜玫瑰| 青青操青娱乐| 高清无码国产亚洲| 欧美性爱中文字幕无线码| 2023天天操夜夜操| 97色在线视频| 就去色综合| 97在线播放| 99爱爱| 超碰天天操你比| 国产乱弄免费在线视频。| 亚州少妇| 午夜精品久久久久久久男人的天堂| 国产精品一区二区 尿失禁| 加勒比在线观看一区二区| 日本东京热久久久电影| 国产99999| 96一区二区| 精品视频久久| 久九九九九九九九热| 干美女人妻| 丁香7月婷婷| 日本道日本道中文字幕日本道最新日本道在线观看 | 农村少妇久久久久久久| 国产久久天堂资源| 青青草日逼视频| 91美女小视频| 天堂亚洲精品| 99精品无码| 婷婷九月丁香| 一本一道久久综合久久| 人妻美腿丝袜日韩| 伊人网一本| 加勒比无码毛片| 东北女人性交| 日本欧美不卡| 男人精品区| 久草在线| 久久成年片色大黄全免费网站| 日本一道在线播放高清| 亚洲成a人v欧美综合天堂下载| 欧美懂色综合网| 欧美精品三级黄片| 精品国产三级av韩国在线| 国产在线视频二区|