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

ARTICLE DETAIL

資訊詳情

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

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

Flink+Iceberg流批一體數(shù)據(jù)湖實戰(zhàn):選型、調(diào)優(yōu)與運維 1. 流批一體場景下的數(shù)據(jù)湖選型思考1.1 從Lambda架構到流批一體的演進邏輯做數(shù)據(jù)平臺的人都有一個共同的痛同一份業(yè)務邏輯離線鏈路寫一遍實時鏈路再寫一遍兩套代碼、兩套運維、兩套口徑。早期大家用Lambda架構扛著離線跑T1出報表實時鏈路單獨維護一套指標時間一長兩條鏈路的數(shù)據(jù)對不上業(yè)務方找過來排查成本極高。后來大家開始琢磨Kappa架構把所有計算都收斂到流上但流處理引擎對大規(guī)模歷史數(shù)據(jù)的回溯分析、批量修正能力又不夠成熟于是“流批一體”這個概念被反復提起。流批一體的核心訴求其實很樸素一套SQL、一份元數(shù)據(jù)、一份存儲既能處理無界的實時流也能處理有界的歷史批。要做到這一點計算引擎和存儲層必須解耦存儲層要能同時承接高頻小批量的流式寫入和大吞吐的批量讀取。這就是數(shù)據(jù)湖技術在這個階段被推到臺前的原因。在眾多數(shù)據(jù)湖方案里Iceberg、Hudi、Delta Lake是繞不開的三個選項。我們當時做選型的時候核心考量維度有幾個schema演進能力、分區(qū)裁剪效率、小文件治理機制、與計算引擎的耦合程度、以及社區(qū)活躍度。Hudi的upsert能力很強適合高頻更新的場景但它和Spark的綁定相對深一些Delta Lake在Databricks生態(tài)里體驗很好但開源版本在Flink集成上的成熟度當時還不夠。Iceberg的設計哲學是“表格式規(guī)范優(yōu)先”它把表的元數(shù)據(jù)管理抽象得非常干凈計算引擎只需要按照規(guī)范去讀寫就行這種解耦特性讓它天然適合做流批一體的存儲底座。1.2 為什么是Flink加Iceberg的組合Flink在流處理上的優(yōu)勢不用多說真正的流式語義、事件時間處理、精確一次的狀態(tài)一致性這些都是它的看家本領。但Flink早期在批處理上的表現(xiàn)只能算“能用”直到1.12之后批流一體的SQL層逐漸成熟Flink才真正具備了統(tǒng)一計算引擎的底氣。Iceberg這邊它的核心抽象是表格式Table Format不是存儲引擎也不是文件格式。它定義了一套元數(shù)據(jù)規(guī)范包括snapshot、manifest、manifest list這些概念把“哪些文件屬于這張表”“這些文件在某個時間點的狀態(tài)是什么”管理得清清楚楚。這種設計帶來的好處是寫入方和讀取方完全解耦寫入方只管生成新的snapshot讀取方根據(jù)snapshot做快照隔離讀取互不干擾。Flink加Iceberg的組合本質上是用Flink做統(tǒng)一的寫入和計算入口用Iceberg做統(tǒng)一的存儲和元數(shù)據(jù)管理。實時鏈路通過Flink流作業(yè)持續(xù)寫入Iceberg表離線鏈路通過Flink批作業(yè)或者Spark讀取同一張Iceberg表做回溯分析。兩條鏈路看到的是同一份數(shù)據(jù)、同一套schema口徑天然一致。在同程藝龍的實踐場景里我們面對的是旅游行業(yè)典型的數(shù)據(jù)特征訂單、用戶行為、庫存、價格這些核心業(yè)務數(shù)據(jù)既有實時監(jiān)控的需求又有T1甚至更長時間跨度的歷史分析需求。比如機票價格監(jiān)控需要秒級感知價格變化并觸發(fā)預警同時又要做過去一年的價格趨勢分析支撐收益管理策略。這種場景下流批一體不是錦上添花而是剛需。1.3 落地前的核心挑戰(zhàn)盤點理想很豐滿落地的時候問題一個接一個。我們在正式鋪開之前梳理了幾個必須解決的核心挑戰(zhàn)第一寫入性能與小文件問題。Flink流作業(yè)是持續(xù)寫入的默認的checkpoint間隔如果設得比較短每次checkpoint都會生成一批新文件幾個小時下來Iceberg表里全是小文件元數(shù)據(jù)膨脹得厲害讀取性能急劇下降。這個問題不解決實時鏈路根本跑不穩(wěn)。第二schema演進的兼容性。業(yè)務需求變化快加字段、改字段類型是家常便飯。Iceberg雖然支持schema演進但Flink寫入端和下游讀取端對schema變更的感知時機、兼容策略需要仔細設計否則容易出現(xiàn)寫入端已經(jīng)加了字段、讀取端還沒更新導致報錯的情況。第三Exactly-Once語義的保障。Flink的checkpoint機制和Iceberg的snapshot提交需要精確對齊。如果checkpoint成功了但Iceberg提交失敗或者反過來都會導致數(shù)據(jù)不一致。這中間涉及到兩階段提交協(xié)議的設計需要深入理解Flink的Sink API和Iceberg的Transaction API。第四查詢性能的優(yōu)化。Iceberg表的數(shù)據(jù)文件是列式存儲的Parquet理論上查詢性能不錯但如果分區(qū)策略設計不合理、manifest文件過多、或者沒有做好數(shù)據(jù)聚簇查詢時掃描大量無關文件性能會大打折扣。這四個問題貫穿了我們整個實踐過程后面會逐一展開講具體的解決思路和實操細節(jié)。2. 核心機制拆解與關鍵參數(shù)設計2.1 Iceberg表格式的核心概念快速掃盲在深入實操之前有必要把Iceberg的幾個核心概念用大白話講清楚不然后面的參數(shù)調(diào)優(yōu)和問題排查會一頭霧水。Snapshot快照每次對Iceberg表的寫入操作都會生成一個新的snapshot相當于給表拍了一張照片記錄了這一刻表里有哪些數(shù)據(jù)文件。讀取的時候指定snapshot ID就能讀到那個時間點的數(shù)據(jù)狀態(tài)。這個機制天然支持時間旅行查詢做數(shù)據(jù)回溯和審計非常方便。Manifest清單文件snapshot本身不直接記錄數(shù)據(jù)文件列表而是通過manifest文件來組織。一個manifest里記錄了一批數(shù)據(jù)文件的路徑、分區(qū)信息、列級統(tǒng)計信息比如min/max值。查詢的時候Iceberg先讀manifest list再根據(jù)查詢條件過濾manifest最后定位到具體的數(shù)據(jù)文件。這個層級結構是Iceberg查詢性能的關鍵。Manifest List清單列表記錄當前snapshot包含哪些manifest文件以及每個manifest的分區(qū)范圍等元信息。查詢引擎通過manifest list做第一層裁剪快速跳過不相關的manifest。Catalog目錄管理Iceberg表的元數(shù)據(jù)入口負責表的創(chuàng)建、刪除、元數(shù)據(jù)更新等操作。常見的Catalog實現(xiàn)有HiveCatalog、HadoopCatalog、RESTCatalog等。同程藝龍這邊用的是HiveCatalog主要是考慮到和現(xiàn)有Hive數(shù)倉的兼容性以及元數(shù)據(jù)管理的統(tǒng)一性。Partition Spec分區(qū)規(guī)范定義表的分區(qū)策略支持隱藏分區(qū)、分區(qū)演進等高級特性。和Hive分區(qū)不同Iceberg的分區(qū)是可以演進的改分區(qū)策略不需要重寫歷史數(shù)據(jù)。理解這幾個概念之后再看Flink寫入Iceberg的流程就清晰了Flink作業(yè)在checkpoint時把當前批次的數(shù)據(jù)文件信息打包成一個新的snapshot通過Catalog提交到Iceberg表。下游讀取時根據(jù)最新的snapshot或者指定的歷史snapshot來讀取數(shù)據(jù)。2.2 Flink寫入Iceberg的兩種模式對比Flink集成Iceberg主要有兩種寫入模式append模式和upsert模式。這兩種模式的選擇直接決定了后續(xù)的數(shù)據(jù)處理邏輯和運維復雜度。Append模式就是純追加寫入每條數(shù)據(jù)進來直接寫到新的數(shù)據(jù)文件里不做任何去重或更新。這種模式實現(xiàn)簡單、寫入性能高適合日志類、事件類等只追加不更新的場景。但缺點是如果上游數(shù)據(jù)有重復或者需要更新Iceberg表里會出現(xiàn)重復數(shù)據(jù)需要下游做去重處理。Upsert模式支持根據(jù)主鍵更新數(shù)據(jù)。Flink作業(yè)在寫入時會根據(jù)主鍵判斷這條數(shù)據(jù)是新增還是更新然后生成對應的數(shù)據(jù)文件和刪除文件。Iceberg通過equality delete file和position delete file來實現(xiàn)行級更新。這種模式適合訂單、用戶畫像等需要頻繁更新的場景但寫入性能會比append模式低一些因為需要維護刪除文件而且讀取時要做merge操作。我們當時的選型策略是ODS層用append模式DWD和DWS層用upsert模式。ODS層接的是原始日志和binlog數(shù)據(jù)只追加不更新用append模式寫入性能最優(yōu)。DWD層做清洗和維度關聯(lián)后需要根據(jù)主鍵做更新用upsert模式保證數(shù)據(jù)唯一性。DWS層做聚合指標也是upsert模式按維度主鍵更新指標值。這里有個實操心得upsert模式的主鍵選擇非常關鍵。主鍵字段最好是分區(qū)字段的子集或者有強關聯(lián)這樣Iceberg在寫入時能更好地做文件裁剪和合并。如果主鍵和分區(qū)完全無關寫入時會產(chǎn)生大量跨分區(qū)的刪除文件性能會明顯下降。2.3 Checkpoint間隔與文件大小的平衡計算這是流式寫入Iceberg最核心的參數(shù)調(diào)優(yōu)問題。Flink的checkpoint間隔決定了多久生成一批新文件而Iceberg的數(shù)據(jù)文件大小又直接影響查詢性能。兩者需要配合調(diào)整。先看默認情況假設checkpoint間隔是1分鐘每個checkpoint周期寫入的數(shù)據(jù)量是500MB那么每個checkpoint會生成大約5到10個Parquet文件取決于并行度。一天下來就是1440個checkpoint產(chǎn)生上萬個文件。每個文件平均50MB到100MB雖然不算特別小但manifest文件的數(shù)量會膨脹得很快查詢時讀取manifest的開銷就會變得不可忽略。我們的調(diào)優(yōu)思路是讓每個checkpoint周期寫入的數(shù)據(jù)量盡量接近一個合理的數(shù)據(jù)文件大小。Iceberg社區(qū)推薦的Parquet文件大小是128MB到512MB之間我們?nèi)≈虚g值256MB作為目標。然后反推checkpoint間隔。具體計算過程假設Flink作業(yè)的寫入吞吐是每秒10MB那么要攢夠256MB需要大約25.6秒??紤]到checkpoint本身有開銷以及數(shù)據(jù)寫入的波動我們把checkpoint間隔設為30秒。這樣每個checkpoint周期大約寫入300MB數(shù)據(jù)生成1到2個Parquet文件文件大小在150MB到300MB之間比較合理。但這里有個矛盾checkpoint間隔太長故障恢復時需要重放的數(shù)據(jù)就越多恢復時間越長。30秒的間隔意味著最壞情況下要重放30秒的數(shù)據(jù)對于大部分場景是可以接受的。如果業(yè)務對恢復時間要求極高可以適當縮短checkpoint間隔同時通過調(diào)整Flink的寫入并行度來控制每個并行子任務寫入的數(shù)據(jù)量讓每個子任務在每個checkpoint周期寫入的數(shù)據(jù)量接近目標文件大小。還有一個參數(shù)是寫入并行度。并行度越高每個子任務分到的數(shù)據(jù)越少生成的文件越多但每個文件越小。我們的經(jīng)驗是寫入并行度不要超過Kafka分區(qū)數(shù)否則會有子任務空閑。同時如果發(fā)現(xiàn)生成的文件普遍偏小可以適當降低并行度讓每個子任務攢更多數(shù)據(jù)再寫。2.4 Schema演進策略與兼容性設計Schema演進是數(shù)據(jù)湖相比傳統(tǒng)數(shù)倉的一大優(yōu)勢但用不好也會踩坑。Iceberg支持的操作包括新增列、刪除列、重命名列、修改列類型有限制、調(diào)整列順序等。Flink寫入端和下游讀取端對schema變更的感知是異步的需要設計好兼容策略。我們的做法是所有schema變更走統(tǒng)一的元數(shù)據(jù)管理流程。新增字段時先在Iceberg表上執(zhí)行ALTER TABLE ADD COLUMN然后更新Flink寫入作業(yè)的schema定義最后通知下游讀取方更新。這個順序不能亂否則寫入端會報字段不存在的錯誤。對于列類型修改Iceberg支持int到long、float到double這種安全的類型提升但不支持反向轉換。我們規(guī)定只允許類型提升不允許類型收窄。如果業(yè)務確實需要收窄類型走新建表加數(shù)據(jù)遷移的流程不在原表上直接改。還有一個容易忽略的點Flink SQL中定義的schema和Iceberg表的schema要定期做一致性校驗。我們遇到過Flink作業(yè)的schema定義和Iceberg表實際schema不一致的情況原因是有人直接在Iceberg表上加了字段但忘了更新Flink作業(yè)。后來我們加了一個定時校驗任務每天對比Flink作業(yè)的schema和Iceberg表的schema不一致就告警。2.5 小文件治理的自動與手動策略小文件是流式寫入數(shù)據(jù)湖的頑疾。Iceberg提供了幾種治理手段我們根據(jù)數(shù)據(jù)的重要程度和查詢頻率采用了分層策略。對于高優(yōu)表核心業(yè)務表查詢頻繁我們開啟了Iceberg的自動合并功能。在Flink寫入端配置write.distribution-mode為hash讓相同分區(qū)鍵的數(shù)據(jù)盡量寫到同一個文件里。同時在Iceberg側配置定期執(zhí)行rewrite_data_files和rewrite_manifests操作把小于目標大小的文件合并成大文件清理過期的manifest。對于普通表日志類、歸檔類我們采用手動合并策略每天凌晨低峰期跑一次合并任務。合并任務的參數(shù)需要根據(jù)表的數(shù)據(jù)量和查詢模式來調(diào)。比如target-file-size-bytes設為256MBmin-file-size-bytes設為64MB小于64MB的文件會被合并。max-file-size-bytes設為512MB超過這個大小的文件不再合并。對于極冷表很少查詢的歷史歸檔我們不做合并只做定期的snapshot過期清理刪除不再需要的舊snapshot和對應的數(shù)據(jù)文件釋放存儲空間。這里有個實操細節(jié)合并操作本身也會消耗計算資源。如果合并任務和實時寫入任務跑在同一個集群上可能會互相影響。我們的做法是把合并任務調(diào)度到獨立的批處理集群上通過讀取Iceberg表的snapshot來做合并不影響實時寫入鏈路。3. 完整實操流程與核心環(huán)節(jié)實現(xiàn)3.1 環(huán)境準備與依賴版本鎖定在開始集成之前版本兼容性是第一個要確認的事情。Flink和Iceberg的版本對應關系比較敏感版本不匹配會導致各種奇怪的報錯。我們當時用的組合是Flink 1.13.2 Iceberg 0.12.0 Hadoop 3.2.1。這個組合是經(jīng)過社區(qū)驗證的穩(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是一個shaded包已經(jīng)包含了大部分依賴不要重復引入Iceberg的其他模塊否則會出現(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ù)配置最集中的地方。下面是一個典型的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 );幾個關鍵參數(shù)的解釋write.distribution-mode設為hash表示按照分區(qū)鍵做hash分發(fā)相同分區(qū)的數(shù)據(jù)會寫到同一個Flink子任務減少小文件數(shù)量。如果設為none數(shù)據(jù)隨機分發(fā)小文件會更多。write.upsert.enabled設為true開啟upsert模式。注意這個參數(shù)在Flink SQL中是通過主鍵定義隱式開啟的如果定義了PRIMARY KEYIceberg會自動使用upsert模式。write.metadata.delete-after-commit.enabled設為true每次提交后自動刪除過期的元數(shù)據(jù)文件防止元數(shù)據(jù)無限膨脹。write.metadata.previous-versions-max設為10保留最近10個版本的元數(shù)據(jù)支持時間旅行查詢最近10個snapshot。write.target-file-size-bytes設為256MB這是目標文件大小Iceberg在寫入時會盡量讓每個文件接近這個大小。write.parquet.compression-codec設為zstd壓縮比和性能比較均衡。如果對存儲成本敏感可以用zstd如果對讀取性能要求極高可以用snappy。3.3 實時寫入作業(yè)的提交與調(diào)優(yōu)建完表之后提交Flink流作業(yè)寫入數(shù)據(jù)。作業(yè)的并行度設置需要根據(jù)數(shù)據(jù)量和集群資源來定。我們的經(jīng)驗值是每個并行子任務的寫入吞吐控制在5MB/s到10MB/s之間。如果總吞吐是100MB/s那么并行度設為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設為30秒和前面計算的文件大小目標對應。execution.checkpointing.timeout設為10分鐘給Iceberg提交snapshot留足時間。如果超時時間設得太短Iceberg提交還沒完成checkpoint就超時了會導致作業(yè)頻繁重啟。execution.checkpointing.max-concurrent-checkpoints設為1禁止并發(fā)checkpoint。Iceberg的snapshot提交需要串行執(zhí)行并發(fā)checkpoint會導致提交沖突。state.backend用RocksDB開啟增量checkpoint減少狀態(tài)存儲的開銷。3.4 離線讀取與時間旅行查詢實操Iceberg表建好、數(shù)據(jù)寫進去之后離線讀取就很簡單了。用Flink SQL或者Spark SQL都可以直接查-- Flink SQL查詢最新數(shù)據(jù) SELECT * FROM iceberg_catalog.db.order_detail WHERE dt 2024-01-15; -- Flink SQL時間旅行查詢查詢某個snapshot的數(shù)據(jù) SELECT * FROM iceberg_catalog.db.order_detail /* OPTIONS(snapshot-id1234567890) */ WHERE dt 2024-01-15;時間旅行查詢在排查數(shù)據(jù)問題時特別有用。比如業(yè)務方反饋某天的數(shù)據(jù)有問題我們可以通過時間旅行查詢到那天的snapshot對比前后幾個snapshot的數(shù)據(jù)變化快速定位是哪次寫入引入了異常數(shù)據(jù)。還有一個實用技巧通過Iceberg的元數(shù)據(jù)表查詢表的文件分布情況。Iceberg提供了snapshots、manifests、files等元數(shù)據(jù)表可以直接用SQL查詢-- 查詢表的所有snapshot SELECT * FROM iceberg_catalog.db.order_detail.snapshots; -- 查詢某個snapshot的文件列表 SELECT * FROM iceberg_catalog.db.order_detail.files WHERE snapshot_id 1234567890;這些元數(shù)據(jù)表在排查小文件問題、分析數(shù)據(jù)分布時非常有用。3.5 監(jiān)控指標與告警配置生產(chǎn)環(huán)境跑起來之后監(jiān)控是必不可少的。我們主要監(jiān)控以下幾類指標Flink作業(yè)層面checkpoint成功率、checkpoint耗時、背壓情況、吞吐量。這些指標通過Flink的Metric系統(tǒng)采集接入Prometheus和Grafana做可視化。Iceberg表層面snapshot數(shù)量、manifest文件數(shù)量、數(shù)據(jù)文件數(shù)量、平均文件大小、元數(shù)據(jù)文件大小。這些指標通過定時查詢Iceberg的元數(shù)據(jù)表來采集。存儲層面HDFS的存儲使用量、文件數(shù)量增長趨勢。如果發(fā)現(xiàn)文件數(shù)量增長過快說明小文件問題嚴重需要觸發(fā)合并任務。告警規(guī)則方面我們設置了幾個關鍵閾值checkpoint連續(xù)失敗3次告警、單次checkpoint耗時超過5分鐘告警、Iceberg表的小文件數(shù)量小于64MB的文件超過1000個告警、元數(shù)據(jù)文件大小超過1GB告警。4. 常見問題與排查技巧實錄4.1 寫入性能突然下降的排查路徑這是我們在生產(chǎn)環(huán)境遇到最多的問題。表現(xiàn)是Flink作業(yè)的吞吐量突然下降checkpoint耗時變長背壓升高。排查路徑如下第一步看Flink的背壓情況。通過Flink Web UI或者Metric系統(tǒng)查看各個算子的背壓狀態(tài)。如果背壓出現(xiàn)在Iceberg Sink算子說明寫入Iceberg這一側有問題。第二步看Iceberg表的文件數(shù)量。如果文件數(shù)量在短時間內(nèi)快速增長說明小文件問題嚴重了。大量小文件會導致Iceberg在提交snapshot時需要處理大量的manifest文件提交耗時變長進而拖慢整個checkpoint。第三步看HDFS的寫入延遲。如果HDFS的寫入延遲升高也會導致Iceberg寫入變慢。這種情況通常是HDFS集群本身的問題比如NameNode負載過高、DataNode磁盤IO瓶頸等。第四步看Iceberg的提交日志。Iceberg在提交snapshot時會打印詳細的日志包括生成了多少個數(shù)據(jù)文件、多少個刪除文件、提交耗時等。通過日志可以定位到具體的瓶頸。我們遇到過一次典型的性能下降原因是某個Flink作業(yè)的并行度從10調(diào)到了20導致每個子任務寫入的數(shù)據(jù)量減半生成的文件數(shù)量翻倍小文件問題加劇最終拖慢了整個寫入鏈路。解決辦法是把并行度調(diào)回10同時開啟自動合并。4.2 Checkpoint失敗與數(shù)據(jù)不一致的修復Checkpoint失敗是流作業(yè)的常見問題但和Iceberg集成后失敗的原因和修復方式有一些特殊性。場景一Iceberg提交超時導致checkpoint失敗。表現(xiàn)是checkpoint超時日志里能看到Iceberg的commit操作還在執(zhí)行。這種情況通常是Iceberg提交的數(shù)據(jù)量太大或者HDFS寫入太慢。解決辦法是縮短checkpoint間隔減少每次提交的數(shù)據(jù)量或者增加checkpoint的超時時間。場景二Iceberg提交成功但checkpoint失敗。這種情況比較棘手因為Iceberg已經(jīng)提交了snapshot但Flink認為checkpoint失敗了會回滾到上一個checkpoint。這會導致Iceberg表里多了一批“孤兒數(shù)據(jù)”雖然不影響讀取因為讀取是基于snapshot的但會浪費存儲空間。解決辦法是配置Iceberg的write.metadata.delete-after-commit.enabled為true定期清理孤兒snapshot。場景三Checkpoint成功但Iceberg提交失敗。這種情況會導致數(shù)據(jù)丟失因為Flink認為checkpoint成功了不會重放這部分數(shù)據(jù)但Iceberg里沒有寫入。這種情況通常是由于Iceberg的Catalog不可用或者權限問題導致的。解決辦法是配置重試機制Iceberg的commit操作支持重試可以在Flink的Sink配置中設置重試次數(shù)和重試間隔。實操心得我們后來在Flink作業(yè)里加了一個“提交確認”機制每次checkpoint完成后額外做一次Iceberg的snapshot校驗確認最新的snapshot ID和checkpoint的ID對應。如果不一致觸發(fā)告警并暫停作業(yè)人工介入排查。4.3 小文件過多的緊急處理方案小文件問題如果已經(jīng)積累到影響查詢性能的程度需要緊急處理。我們的處理流程是第一步評估影響范圍。查詢Iceberg的files元數(shù)據(jù)表統(tǒng)計小于64MB的文件數(shù)量和總大小評估合并需要的時間和資源。第二步暫停實時寫入。如果小文件問題非常嚴重合并任務和實時寫入同時跑會互相影響建議先暫停實時寫入作業(yè)等合并完成后再恢復。暫停時間根據(jù)合并的數(shù)據(jù)量來定一般幾十分鐘到幾個小時。第三步執(zhí)行合并任務。用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。第五步恢復實時寫入。確認合并完成后恢復Flink作業(yè)并調(diào)整參數(shù)防止小文件問題再次出現(xiàn)。4.4 Schema變更導致作業(yè)失敗的應急處理Schema變更導致的作業(yè)失敗通常發(fā)生在寫入端和讀取端的schema不一致時。應急處理流程情況一寫入端報字段不存在。原因是Iceberg表加了字段但Flink作業(yè)的schema沒更新。解決辦法是更新Flink作業(yè)的schema定義并重啟作業(yè)。如果作業(yè)不能立即重啟可以先用ALTER TABLE DROP COLUMN把新加的字段刪掉等作業(yè)更新后再加回來。情況二讀取端報字段類型不匹配。原因是Iceberg表的字段類型改了但讀取端的schema沒更新。解決辦法是更新讀取端的schema定義。如果讀取端是BI工具或者即席查詢需要通知相關方更新。情況三寫入端報主鍵沖突。原因是upsert模式的主鍵定義和Iceberg表的主鍵定義不一致。解決辦法是檢查兩邊的定義確保完全一致。避坑技巧我們后來規(guī)定所有schema變更必須走工單流程變更前先在測試環(huán)境驗證確認寫入端和讀取端都能正常工作后再上生產(chǎn)。同時在Flink作業(yè)里加了schema兼容性檢查作業(yè)啟動時對比Flink schema和Iceberg schema不一致直接拒絕啟動。4.5 常見問題速查表問題現(xiàn)象可能原因排查方法解決方案寫入吞吐突然下降小文件過多、HDFS延遲高查看Iceberg文件數(shù)量、HDFS監(jiān)控執(zhí)行合并、調(diào)整并行度Checkpoint頻繁超時單次提交數(shù)據(jù)量太大查看checkpoint耗時、Iceberg提交日志縮短checkpoint間隔、增加超時時間數(shù)據(jù)重復upsert模式未生效檢查主鍵定義、查詢Iceberg表數(shù)據(jù)確認主鍵定義、開啟upsert查詢性能差分區(qū)裁剪失效、文件過大查看查詢計劃、文件大小分布調(diào)整分區(qū)策略、合并大文件元數(shù)據(jù)膨脹snapshot未清理查看snapshots元數(shù)據(jù)表配置自動清理、執(zhí)行expire_snapshots作業(yè)啟動失敗schema不一致、依賴沖突查看啟動日志、對比schema更新schema、檢查jar包版本時間旅行查詢報錯snapshot已過期查看snapshots元數(shù)據(jù)表調(diào)整snapshot保留策略5. 生產(chǎn)環(huán)境運維經(jīng)驗與性能優(yōu)化心得5.1 資源規(guī)劃與容量評估方法Iceberg表的存儲容量增長是可以預估的。核心公式是日增數(shù)據(jù)量 × 副本數(shù) × 壓縮比 × 保留天數(shù)。比如日增原始數(shù)據(jù)100GBHDFS副本數(shù)3Parquet壓縮比0.3保留365天那么總存儲需求大約是100GB × 3 × 0.3 × 365 ≈ 32TB。這還不包括合并操作產(chǎn)生的臨時文件和舊snapshot占用的空間實際規(guī)劃時要留出30%到50%的余量。計算資源方面Flink寫入作業(yè)的資源需求主要取決于寫入吞吐和checkpoint的數(shù)據(jù)量。我們的經(jīng)驗值是每10MB/s的寫入吞吐需要大約4個CPU核心和8GB內(nèi)存。這個值會根據(jù)數(shù)據(jù)復雜度、序列化開銷、Iceberg提交開銷等因素浮動建議在實際壓測后確定。合并任務的資源需求取決于表的數(shù)據(jù)量和合并頻率。每天合并一次的話合并任務的處理能力建議是日增數(shù)據(jù)量的2到3倍確保能在低峰期內(nèi)完成合并。5.2 多表共用一個Flink作業(yè)的利弊分析為了節(jié)省資源我們一開始嘗試把多個Iceberg表的寫入放在同一個Flink作業(yè)里。好處是節(jié)省了TaskManager的資源減少了作業(yè)數(shù)量運維成本低。但壞處也很明顯故障隔離性差。一張表的寫入出現(xiàn)問題整個作業(yè)都會受影響所有表的數(shù)據(jù)寫入都會延遲。資源競爭。不同表的寫入吞吐不同有的表數(shù)據(jù)量大、有的表數(shù)據(jù)量小共用一個作業(yè)會導致資源分配不均數(shù)據(jù)量大的表可能搶不到足夠的資源。Checkpoint相互影響。一個作業(yè)的checkpoint是全局的如果某張表的Iceberg提交特別慢會拖慢整個checkpoint影響所有表。后來我們改成了按業(yè)務域拆分作業(yè)每個業(yè)務域的核心表放在一個作業(yè)里非核心表單獨跑。這樣既保證了核心表的穩(wěn)定性又控制了作業(yè)數(shù)量。5.3 數(shù)據(jù)回溯與重跑的正確姿勢數(shù)據(jù)回溯是數(shù)據(jù)平臺的剛需Iceberg在這方面提供了很好的支持。我們的回溯流程是第一步確定回溯范圍。通過時間旅行查詢確定要回溯到哪個snapshot以及需要重跑的時間段。第二步暫停下游消費。通知下游停止消費Iceberg表的數(shù)據(jù)避免讀到中間狀態(tài)的數(shù)據(jù)。第三步執(zhí)行回溯寫入。用Flink批作業(yè)或者Spark作業(yè)重新計算指定時間段的數(shù)據(jù)寫入Iceberg表。注意寫入時要指定新的分區(qū)或者使用INSERT OVERWRITE語義避免和現(xiàn)有數(shù)據(jù)沖突。第四步校驗數(shù)據(jù)?;厮萃瓿珊髮Ρ然厮萸昂蟮臄?shù)據(jù)量和關鍵指標確認數(shù)據(jù)正確。第五步恢復下游消費。通知下游恢復消費并告知回溯完成的時間點。實操心得回溯操作最好在低峰期執(zhí)行并且提前通知相關方。我們有一次在業(yè)務高峰期做回溯導致Iceberg表的寫入壓力驟增影響了實時鏈路的性能。后來規(guī)定所有回溯操作必須提前一天報備安排在凌晨執(zhí)行。5.4 從Iceberg 0.12到0.14的升級踩坑記錄Iceberg社區(qū)迭代很快我們后來從0.12升級到了0.14中間踩了一些坑記錄一下坑一Flink版本兼容性。Iceberg 0.14要求Flink 1.14及以上版本我們當時用的Flink 1.13.2不兼容需要先升級Flink。升級Flink又涉及到狀態(tài)兼容性問題需要做狀態(tài)遷移??佣嗀PI變更。Iceberg 0.14對Flink SQL的Connector參數(shù)做了一些調(diào)整比如write.upsert.enabled參數(shù)被廢棄改為通過主鍵定義自動識別。升級后需要修改建表語句。坑三元數(shù)據(jù)格式變更。Iceberg 0.14對元數(shù)據(jù)格式做了一些優(yōu)化升級后需要執(zhí)行一次元數(shù)據(jù)遷移操作。這個操作是不可逆的升級前一定要備份元數(shù)據(jù)??铀男阅鼙憩F(xiàn)差異。升級后發(fā)現(xiàn)寫入性能比0.12略有下降排查后發(fā)現(xiàn)是0.14默認開啟了更嚴格的元數(shù)據(jù)校驗。通過調(diào)整write.metadata.compression-codec參數(shù)把元數(shù)據(jù)壓縮算法從gzip改為zstd性能恢復到了升級前的水平。5.5 未來演進方向與擴展思路Iceberg和Flink的集成還在快速演進中我們也在持續(xù)關注幾個方向一是Flink CDC與Iceberg的深度集成。目前我們是從Kafka接binlog數(shù)據(jù)寫入Iceberg鏈路比較長。Flink CDC可以直接從數(shù)據(jù)庫抓取變更數(shù)據(jù)寫入Iceberg鏈路更短、延遲更低。我們正在測試這個方案初步效果不錯。二是Iceberg的Row-level Delete優(yōu)化。Iceberg 0.14引入了更高效的刪除文件格式upsert模式的寫入性能有明顯提升。我們計劃在下一個版本升級中驗證這個特性。三是多引擎共享Iceberg表。目前我們主要是Flink寫入、Flink和Spark讀取。未來計劃讓Trino、Presto等引擎也能直接查詢Iceberg表實現(xiàn)真正的多引擎共享。四是冷熱數(shù)據(jù)分層存儲。Iceberg支持自定義文件存儲路徑可以把冷數(shù)據(jù)放到更便宜的存儲介質上熱數(shù)據(jù)保留在高性能存儲上。這個特性對降低存儲成本很有幫助我們正在做方案設計。整體來看Flink加Iceberg的組合在同程藝龍的實踐是成功的。流批一體不是一句口號而是實實在在解決了我們數(shù)據(jù)口徑不一致、鏈路重復建設的問題。當然落地過程中遇到的坑也不少上面這些經(jīng)驗都是一個個問題踩出來的。如果你也在做類似的實踐希望這些內(nèi)容能幫你少走一些彎路。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
超碰97人妻在线| 伊人网高清| 国内外毛片在线观看| 亚洲精品无码少妇久久| 国产一区二区三区高清视频| 精品蜜乳AV免费观看| 3级毛片一二| 一区二区 日韩 欧美 国产 传媒| 天天肏天天干| 最新9久久久9免费视频| 一区 欧美 日韩 麻豆| 欧美日韩一二三| 国产亚洲精品农村妇女| 成人国产二区三区在线,男女精品。| 久啪| 色 婷97| 性爱久久| 亚洲AV免费在线| 天天躁日日躁成人字幕aⅴ| 熟妇人妻丰满久久久久久久无码| 色眯眯av| 亚州Av天美传媒| 91高跟美女在线播放| 亚欧精品久久久久久久久久久| 亚洲激情综合另类男同| 国产精品无码成人精品| 久久天堂| 9丨亚洲一区二区在线| 无码天天操| 国产成人自拍视频视频| 五月丁香综合啪啪| 久久久久久午夜男人的天堂| 男人兔费天堂| 色69大色97香蕉| 玖玖综合视频| 亚洲精品97久久| 思思热影视| 久久精品国产亚洲AV高级北京| 天天综合网日韩7799| 成人情色一区二区| 91美女在线视频| 狠狠夜色午夜久久综合在线| 国产精品探花视频| 射丝袜高跟鞋99| 91扒丝袜综合在线| 日韩无码极品| 婷婷视频在线免费观看| 四虎AV在线观看| 夜夜操一区二区| 久久国产99精品72福利| 精品国产国产AV| 天天干夜夜操一区二区| 久久精品国产亚洲AV片多多 | 人妻少妇一区二区| 免费视频一二三区| 欧美日日操| 国内三级自拍小视频在线观看| 久久婷婷五月天| 久久精品成人| 熟女丰满人妻一区| 男人的天堂三级| 操逼啊啊啊91| 69一区二区| 电影69乱码96| 成人97人人超碰人人| 久偷拍| 91欧美色| 91久久18禁| 欧美午夜视频免费观看| 99久久久| www超碰| 火箭成精品视频884必出精品| 日本狠狠干| 女人综合网| 二色av| 97在线免费观看视频| 日本丝袜美腿人妻九九| 国产亚洲色婷婷99精品91| 无码高清操逼| 中文字幕无码不卡啪啪| 五月天色图| 久久久久国产精品久久久| 综合网~91综合网| 屌逼麻豆| 午夜天堂啪啪| 欧美性爱中文字幕无线码| 亚洲综合有码| 中文精品少妇天堂| 免费成人在线熟妇网| 婷婷色五月激情| 热无码中文亚洲H一道本一区二区| 日韩97精| 天堂亚洲精品久久老牛| 亚洲狼狼干综合1| 欧美性爱日韩高清| 亚洲综合另类| 亚洲熟女av中文字幕| 国产精品久久久999| 日韩pv中文| 亚洲色图殴美色图激情乱伦| 97国产中文| 国模不卡一本二本三电影| 日本新免费二区三区| 狠狠综合网| 伊人97| 亚洲情色综合网| 日日夜夜青青草母狗| 大胆91| 91狠狠色丁香婷婷综合久久精品| 草草草草视频| 日韩熟女三十乱伦| 任你干在线视频| 99热色精品| 久久草草欧美精品| 精品免费1| 欧亚在线视频| 99热成人| 欧美一区二区情色| 曰本91情色| 欲射影视| 日韩成人小视频| 秋霞午夜视频一区二区| 精品国产乱码久久久兰草影视| 精品亚洲俞拍视频一区| 免费99精品国产自在在线| 欧美少妇一区二区三区| 久久曰曰| 欧美综合色图片| 啊啊啊啊操死我| 天天干天天燥| 99国产精品视频尤物| 加勒比伊人| 精品无码一区二区三区| 91蜜臀在线久久久久| 久久久草成人网站久久久草成人久久久草久久久 | 高潮综合网| 97在线欧| 91精品久久久久五月天精品| 六月丁香婷| 婷婷另类小说| 天堂v无码免费视频| 黑人无码一区二区| 99RE在线视频精品,这里只有精品| 操逼短片| 美女午夜福利免费视频| 国内黄色精品| 9丨久久九九九| 岛国在线一区二区三区| 欧美 传媒 麻豆 日韩 偷拍| 欧美性91| 欧美性爱五月天| 日日骚精品视频| 日韩三级在线观看网站| 国产91影院| 久久亚洲av成人无码国产| 婷婷丁香一区二区三区| 明星性猛交ⅹxxx乱大交| 超碰免费人人| 亚洲色性| 精品免费成人久久| 久久精品国产亚洲AV嘿嘿| 国产有码一区| 91伊人久| 无套内射性感少妇视频| 91男女| 伊人女女资源在线观看| 91在线色综合| 欧美日韩国产成人高清| 青女在线| 久9热| 99re28在线观看| 999久久久精品国产| 东北熟女91| 青青草自拍视频在线播放| 精品美女人人干| 日韩AV一起草| 人妻另类 专区 欧美 制服| 欧美在线色图| 亚洲欧美日韩夜夜| 亚洲欧美综合| 超碰是碰在线观看| 91neishe| 丝袜天堂| 91粉嫩萝控精品福利网站_精品影音先锋国 | 九九碰九九爱97超| 亚洲日产专区婷婷| 校园春色之综合网| 人人摸人人叼| 激情五月综合网| 免费看毛片操穴| yy少妇精品久久| 天天看少妇| 国产97视频免费观看| 日韩欧美亚欧在线视频| 亚洲男人天堂2017| 精品超碰中文在线| 粉嫩国产精品久久粉嫩| 婷婷五月天基地| 国产精品无码在线| 欧美另类精品xxxx| 国产日韩精品无码去免费专区国产| 九九九久久久W精品| 熟妇人妻一区二区三在线| 操91| 在线观看午夜婷婷久久久久清性观看| 亚洲drav色图| 大香蕉日韩| 久夜操| 天天干夜夜| 欧美色吧综合| 日夜精品| 精品视频一区二区| 中文字幕,人妻,日韩| 99亚洲精品| 国产精品午夜福利亚洲综合网| 国产400孕妇孕交群| 啊啊啊好大好深| 黄色不卡视频| 97在线观视频免费观看| 亚州国产成人精品女人久久 | 四虎影视国产精品| 91爱啪| 91色拍| 国语对白露脸XXXXXX| 欧美大香蕉久| 秋霞欧美性爰视频| 亚洲成人精品久久久| 五月天偷拍| 老鸭窝亚洲毛片| 久久久不能久久久久| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 久久久九九九九| 久久久96精品| 2023天天操夜夜操| 亚洲最大AV网| 日本免费不卡二区| 久久久久久裸体| 国产熟女无套内射| 97精品熟女少妇一区| 欧美日韩操逼嗦吊| 欧美AB在线观看| 老女人老91妇女老热女| 偷偷人人精品女女久久| 亚洲色图欧美色图日韩色图| 国产欧美第五页| 欧美国产成人在线| 四方色播| 色呦呦呦在线观看视频| 欧美拳交在线播放| 美女毛片999| 亚洲 欧美 日韩另类 麻豆| 大色综合| 日本岛国黄色网址| 激情小说亚洲视频| 国产在线观看一区二区三区| 九九探花视频在线观看| ,国产乱人伦精品一区二区三区| 97一区二区三区视频| 一区二区三区一亚洲中文字幕、综合区灬 | 欧美亚洲| 中文字幕视频一区视频二区| 日韩无码服务区| 自拍内地三级在线观看| 超碰91在线| 久久內射| 亚洲欧洲无码bt精品合集| 亚欧国产无码精品在线| 极品粉嫩少妇视频| 午夜精品久久一区二区| 澳门黄片一香蕉视频| 乱伦日本色图AⅤ| 日韩中文字幕熟妇人妻| 综合亚洲欧美| 欧美99热| 人妻夜爽夜夜爽| 国产精品久久久九九九| 曰韩人妻中文字幕在线| 懂色AV一区二区三区| 亚洲影视第一页| 日韩熟女乱伦中出| 激情亚洲天堂| 男人的天堂午夜av| 97干天天| 午夜一区二区三区国产| 中文字日本乱码| 另类图片天天影视| 久久人人妻| 中文字幕三四五区| 丁香五月影院| 欧美少妇色图| 亚洲成人碰碰| 7777奇米影视久久| 超碰在线97国产| 性videos欧美熟妇hdx| 日韩情色视频| 老熟女乱伦一区| 久久蜜色情在线视频xxx免费观看| 色欲Av人妻精品一区二| 久久亚洲熟妇在线视频| 国产一级特黄大片处女| 传媒免费一区二区三区| 久久久久久国产手机AV| 99色在线| 五月婷婷综合网| 少妇三p| 一区二区偷拍拍视频| 美女91AV| 99re8超碰| 午夜操逼不卡| 青青草AV色| 99精品在线观看| 欧美亚洲丝袜人妻制服中文99| 狠狠操狠狠| 84YTCOM性无码| 老师充足的奶水小说| 国产熟女完整版中字 | 午夜无遮挡男女啪啪视频| 久草热制服丝袜在线观看 | 欧美黑人91| 久久性爱城| 精品高潮| 成人久久久精品| 日韩性爱高清免费视频| 91情色| 欧美少妇性乱| 99无码| 天天夜躁日日躁狠狠2002| 97日视频| 尹人大香蕉视频在线| 在线视频亚洲无码| 午夜精品久久999热蜜桃介男人用| 97任你吞精| 久久超碰日韩精品| 欧美成人一区二区| 日本一区二区三区欧美日韩中文字幕| 岛国黄色短视频| 久热最新在线杭州| 热热色色综合| 色综合潮| 中文高清一区二区的| 伊人激情五月天一区二区| 日本熟妇人妻一区二区三区| 啊啊啊不要啊啊受不了了视频在线| 精品国产乱码久久久久久口爆网站| 久久久久久久精| 密臀AV在线| 少妇超碰在线| 亚洲欧洲日韩国产自在线| 亚洲在饯| 色色97爱| q2午夜理论片夜色av| 久久久不能久久久久| 五月天丁香网| 午夜电影在线观看无码专区| 国产又猛又粗又爽又黄| 欧美亚洲91| 久久久久久无码人妻中文字幕| 亚洲中文制服诱惑| 一二三四免费视频| 国产 丝袜 欧美中文 另类| 影音先锋日本乱伦| 日本阿v天堂在线观看| 青草伊人久久| 欧美亚洲国产日本在线,久久精品国产| 爱爱60秒免费视频| 亚洲成人免费在线| 日本在线不卡一二区| 欧美精品日韩久久久九| 国产91会所女技师在线观看| 强奸乱伦AV网址| 啊啊啊啊啊在线| 欧美色图另类图片| 精品美女少妇一区二区| 国产三级中文字幕粉嫩| 欧美在线综合| 欧美激情一| 九九九九97| 蜜桃臀一区二区aV| 欧美后入式| 中文字幕无码不卡啪啪| 欧洲色综合| 33044男人的天堂深夜备| 欧美色图91p| 国产精品国产| 亚洲日韩97| 2020天天色综合| 人人九九精| 亚洲欧美内射| 91欧美综合| 99re免费| 亚洲春色欧美激情自拍| 伦激情人妻另类人妻| 国产精品久久天天干| 69av一区二区三区| 无色无码| 夜夜嗨一区二区| 日韩女优在线| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 人妻无一区二区三区| 无码高清操逼网址| 欧美强奸乱能| 天天插天天插| 天天综合欧美综合| 中文久久96| 人妻精品一区一区三区蜜桃91| 久久国产精品视频| 99久久久无码国产精品性啊聊| 婷婷伊人五月| 福利伊人玖玖国产| 91丝袜美女国产| 97色插| 亚洲情色在线| 欧美日韩狠狠爱| 人人模人人看| 欧美视频中文字幕区| 人妻久久久久久久久久久久久久久| 97日本超碰综合| 欧亚成人在线视频| 啊啊啊久久| 久久亚州精品成人Av无| 干婷婷综合网| 久久不卡一区二区 | 在线啊v一区| 97色插| 国产一区二区三区久久久精品| α√在线| 精品v1区| 男人的天堂VA| 国产精品美女在线一区| 蜜臀久久99精品久久综合| 熟女欧美日韩综合婷婷| 97精品在线视频| 欧美αv.com| 天天干天天做| 综合大香蕉美。| 欧美性爱第一页久久| 亚洲日韩精品在线播放| 怡春苑东京热| 香蕉国产精品麻豆亚洲欧美日韩| 亚洲天堂7777| 国产精品suv一区| 夜夜欢天天干| 欧亚在线视频| 久久久九九| 成人小说另类在线| 丁香六月婷婷久久综合| 99国产精品久久久在线播放| 午夜性刺激视频免费观看| 日韩一级欧美一级在线观看| 天堂亚洲精品久久老牛| 乱伦一二三| 婷婷久热| 伊人四虎综合| 一级A片女人高潮叫床| 97 国产一区| 91肉片| 欧美|91色综合| 精品夜夜澡人妻无码AV| 久久东京国产精品视频| 欧美精品不卡一二三四在线91| 国产毛片久久久久久久| 中文字幕人乱码中文字的预防方法 | 午夜操逼不卡| 另类 综合 日韩 欧美 亚洲| 日韩熟女操逼| 亚洲揄拍网| 欧美人人曰人人操人人射射| 天美精品一区二区三区四区在线观看| 日韩一级久久毛片| 好色综合| 91在线限制级| 美女熟妇色| 亚洲人妻熟妇三十三区| 人人干黄色| 一区| 天天天天天天天天天天干美女| 青草园大香蕉| 1769精品一区二区三区| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 99热日| 国产亚洲中文不卡二区| 午夜精品久久久99热蜜桃的功能特点| 国产三区免费在线观看| 69综合网| 欧美国产伊人久久久久| 亚洲 日本 不卡| 国产欧美伊人| 无码精品久久| 热热色国产一二区AV| 亚洲中文字幕av| 青草一区二区| 超碰综合色| 亚洲国产精品成人无码久久久| 淫纸中9区| 啊啊啊好爽快点啊啊啊嗯嗯| 日本高清视频xxxx| 超碰久草| 男人天堂站| 日本一级婬片试看三分钟| 蜜桃AV天堂| 艳美熟妇先锋一二三区| 干干干天天| 97Ai亚洲| www.久久超碰| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 国产h小视频在线观看免费| 亚洲综合113页| 日韩人妻 中文字幕| 蜜区区视频79| 91总综合网| 香蕉婷婷| 国产精品婬乱一级毛片彝族| 色性综合| 国产日韩欧美中文在线播放| 精品九区| 日韩射图| 老鸭窝黄色视频网站| 天天天天干| 欧美少妇性爱网站| 26uuu最新| 国产蜜臀在线| 91草草草| 午夜性| 在线观看一卡二卡| 91动漫操逼视频| 精品无码一区二区三区色欲| 色网亚洲人| 亚洲大胆人体av| 中文字幕91综合| 国模吧 一区二区三区| 操婢日韩| 精品无码久久久久久久杏吧| 久久久无码精品人妻二区| a人欧美综合天堂麻豆| 久久精品小视频| 午夜理论片在线观看免费| 91看黄片| 免费av高清无码| 9118禁| a啊啊啊啊啊啊啊啊一区二区| 97在线青| 日韩综合97P| 亚州久久9| 人妻美腿丝袜制服诱惑综合天堂-| 久久香蕉影院| 亚洲色欲天天人妻无码系列专区| 国产精品婬乱一级毛片彝族| 国产成人精品无码久久| 欧美一级国产一级| 黄色电影在线播放综合网站 | 亚洲情色在线| 97亚洲欧美日韩| 蜜奶av| 日韩影片中文字幕一区二区三区| 国产女人高潮视频| www.欧精品| 清清一区二区三区四区不卡视频| 久久精品欧美一区蜜桃| 一本色道综合久久欧美日韩精品| 欧美日韩亚洲少妇寂寞影院正在播放 | 久久综合九九| 天天做天天爱| 97中文天堂| 亚洲色堂免费视频| 色爱综合网欧美| 男生女生啊啊啊啊| 天天操天天7| 精品制服美女中文一区二区三区| 国产精品白丝AV| 男女啊啊啊啊啊| 精品黄色电影| 国产精品午夜福利亚洲综合网| 欧美日韩性爱电影在线| 日本操大逼| 岛国成人av在线播放网址| 操一区| 日韩精品三区四区| 97精品久久久久中文字幕| 玖玖爱伊人玖玖爱| 久操免费观看| 午夜福利一区二区影院| 91精品人妻电影| 九九人人操| 国产精品久久发布| 久久人妻少妇| 91爱网| 欧美Aⅴ| 亚洲国产一区二区三区四区国产| 亚洲春色激情小说| 少妇99| 国产精品久久久久久久久久久久久久吹| 国产精品久久久久久久久久久久| 国产亚洲精品无码三区| 久草大| 欧美 亚洲 大香| 亚洲欧美天| 日韩电影在线观看网址| 国产av美女被艹的乱叫| 欧美制服网站美腿丝袜| 欧洲精品一二三在线| 色淫网站优优视频| 最新的亚洲无吗| 精品国产少妇高潮视频| 成人久久久精品| 日韩成年人性爱视频| a v网站在线播放| 国产视频一区二区在线| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 九九热精品在线| 操死我了啊啊啊| 国产免费一区2区3区| 久久AV无码网址| 中文字幕亚洲欧美在线不卡| 99久久99九九99九九九| 近亲乱伦一区二区| 你草精品在线视频| 91网站18| 丁香九月激情| 国产精品久久久久999| av亚欧| 亚洲一区二区麻豆影院| 性感美女啊啊啊在线| 免费一级欧美片片线观看| 精品一国2| 久久久工口| 日日日日日| 操死我了啊啊啊| 欧州一区二区三区四区| 99热伊人| 一区e区三| 午夜男人av| 亚洲淫乱骚妇AV| 日产操逼| 天美av在线观看| 三及片网站| 无码日韩网站| 人人操人人精品影片| 日本操逼视频导航| 91老熟女老女人国产老太| 国产v亚洲v日韩v欧美v片另类| 99自拍视频在线| 在线播放中文字幕| 国产精品免费视频不卡| 九九人妻| 小情侣高清国产在线视频| 曰韩香蕉97| 亚洲系列第一页| 九一性生活免费视频| 双插性欧美一二三区| 久久久久久9999| 尤物网址| 熟女久久久| 26uuu国产免费观看| 91网站在线播放| 国产人妻天天干精品| 亚洲图片偷拍欧美| 狠狠五月天| 五十路三区在线| 日本天堂网| 国产亚洲福利第一页丝袜| 91A欧美电影网站| 日本久久网| 欧美性暴力| 综合 青草 伊久久 影院 综合| 国产福利视频精品视频| 久久久久网站-538在线视频-欧美永久乱码 | 九九久精品| 五月综合久久| 欧美日韩国产成人高清| 亚洲视频小说| 亚洲操逼无码| 欧美激情1区| 91丝袜美女| 懂色av色欲av蜜臀av| 加勒比久久av| 欧美日韩国产传媒在线精品| 青青免费在线视频一区| 日韩中文9| 日韩免费人妻色情网站| 一级@啪啪视频| 女人18精品一区二区三区| 丁香五月成人| 日韩欧美成人综合在线| 玖玖无码超碰| 亚洲综合113页| 黄色av片三级三级三级免费看| 天堂网亚洲区手机版| 欧美亚男人的天堂| 亚洲操逼无码| 国产精品第一区第一页| 亚洲激情深爱文学小说网站| 天天综合~91入口| 综合五月婷婷亚洲一区| 97色在线视频| 日本天天干天天日一区| 久久久久久亚洲精品中文字幕人妻| 曰本人妻人人澡人人夹| 欧美超碰97| 亚洲影视第一页| 午夜欧美J进J出白浆流出久久久| 欧美中出1| 日韩综合成人免费视频| 亚洲天堂资源网| 九九免费影片| 无码视频一区二区| 97在线免费看| 五月丁香综合啪啪| 秋霞久久亚洲精品成人| 人人摸人人入| 91宗合网| 亚洲欧美天| 天天综合网AV91| 欧美亚洲激情| AV中文字幕三四五| 在线小视频| 亚洲限制级| 嗯嗯嗯啊啊啊操的我好爽| 婷婷五月天色| 丰满人妻一区二区三区大胸懂色| 人妻无一区二区三区| 色欧洲| 9九九国产| 日韩欧美中文字| 久草婷婷| 欧美 传媒 麻豆 日韩 偷拍| 看看小穴| 花野真衣| 日韩人妻少妇中文字幕| 天天插天天插| 91校园春色长篇| 91丨九色丨大屁股| 色墦五月丁香| 97色色色| 小泽玛利亚一二三| 色欧美天天| 偷拍 精品另类 凸凹了四区| 色色无码| 97超级久久强资源| 热久久91婷婷| 一个人在线看的黄色电影网站| 正在播放国产精品一区| 欧美日韩国产高清在线一二三区| 啊啊啊啊啊好大好舒服想要| 亚洲国男人的天堂| 嗯嗯啊啊视频在线看| 91色艳| 亚洲精品一区二区三区新线路| 日韩在线视频1234| www老逼91| 91人妻视频| 日韩精品操少妇| 曰韩少妇无码| 啊啊啊啊嗯嗯在线久久久| 欧中美三级一区二区三区| 欧美操逼录像国产黄色国产| 青青草一区二区高清无码视频| 日韩精品 欧美激情| 丰满人妻-区二区三区| 国产高清自拍| 99视频这有这里有精品| 国产理论视频在线播放| 日本在线激情一区二区三区| 大香蕉123| 很黄很污的免费网站| 97干天天| 国产精品对白自产拍| 天天拍夜夜| 欧美十八禁视频| 欧美日本国产日韩激情视频| 日本欧美国内在线| 青青草在线视频人人想人人上| 国产五码丝袜屁眼| 91天天综合在线观看| 好吊色综合| 乱理日韩中文| 91丝袜在线视频| 99AV| 国产又黄又爽又刺激久久久久久| 成年人性爱日韩| A V少妇特黄三级| 伊人网在线视频| 久久精品无码一区二区三区| 俺去啦俺来也久久综合| 亚洲图片偷拍视频区| 任我爽视频在线观看| 熟女露脸激情自拍视频| 97在线观看| 国产一级做a爰大片免费久久| 日本曲间由美性生活片| 精品无码一区二区人妻久久蜜桃| 91亚洲网| 人人操人人狠狠操| 欧美色图成人网一区二区| 婷婷国产精品一区二区| 18禁中文字幕| 男人天堂.AB| 中文字幕第7页| 国产日韩精品无码去免费专区国产| 91GD.COM| 亚洲综合射| 国内偷拍精品一区二区| 婷婷丁香久久| 亚洲精品不卡一二三区| 国产肏逼网站| 亚洲第一综合| 一级免费精品| 这里只有精品视频在线观看麻豆| 麻豆2区1区天美| 大香蕉手机在线| 国产精品久久99日日| 色鬼在线综合| 欧美宗合色| 亚洲国产欧美中日韩成人综合视频| 久久成年精品| 26uuu久久| 男人天堂久久精品| 夜夜高潮夜夜爽夜夜爱爱一区 | 内射黑人| 男人天堂网址| av天堂影视中文在字幕在线中文| 91成人亚洲色图| 欧美经典一区二区三区| 欧洲乱码视频| 青青操网| 爱欲AV| 久久久久久久强迫| 国产视频三区四区| 91在线欧美| 久久久人体| AV中亚| 国产乱码久久| 日韩97P| 男人的天堂,欧美亚洲另类国产日韩,日本高清一区二区 | 欧美熟女丝袜| 免费的很黄很污的全部视频| 91久久久视| 久久久久免费看少妇A片特黄| 乱码熟妇人妻久久久| 亚洲成人精品在线一区| 日本女厕偷拍| 操操逼视频| 亚洲一二三| 无码精品一区二区三区潘金莲| 久草精品一区 | 欧美日韩丝袜| 一级一性爱免费视频| 精品人妻一区二区三区-国产| 亚洲男人天堂网| 曰本精品久久久| 日韩性爱视频在线免费观看| 久热久| 五月天婷精品激情| 久久成人东京热人妻| 99精品在线观看| 综合网 欧美| 国产免费大片| 又粗又长又爽在线观看| 天天天操天天天爱| 丁香六月激情综合| 少妇被c 黄 免费观看| 亚洲蜜臀懂色| 久久久国产亚洲精品系列| 99热线麻豆 | 久久欧美激情| 熟女一区二区| 欧洲成人性爱视频| 欧美97网| 97硬碰| 啪一啪免费视频| 成人小电影网站tex| 欧美色图亚洲特色| 日韩,欧美,中文在线| 精品久9| 女人的天堂大香蕉网| 毛片电影一区二区三区| 超碰成人人人爽人人爽| 久久久男人的天堂| 91粉芽高清在线一区二区| 精品人妻一区二区三区四区石在线| 日韩精品人妻中文字有码在线 | 超碰91在线| 欧美一级专区免费大片| 99色综合| 操逼逼中文字幕| 鸥美中出| 啊啊啊啊啊啊啊啊要喷了| 乱精品一区字幕二区| 精品成人动漫一区二区| 美女91在线| 日韩淫色网| 国产13区| 开心五月天激情网| 天天综合网日韩7799| 男人天堂网址| 97网站在线观看| 久操在97| 成人AV素股で擦久久| 精品人人插人人操| 91伊人久| 97干97色| 小电影欧美91| 欧洲精品久久| 中文字幕av久久爽Av| 午夜天堂精品久久久久91| 99久久婷婷丁香| 欧美成熟性爱精品| 日韩小电影| 美女91网| 中文字幕色AV| 91色s| 97精品国产精品免费观看| 肥臀熟女福利视频一区二区| 大香蕉婷婷| WWW黄片COM| 99热99在线播放激情| 高清在线不卡一区二区 视频| 人人妻人人玩人人澡人人爽| 亚州高清AV| 久久人妻一区二区三区高清 | 九月激情婷婷| 日韩熟女操逼| 日韩一级久久毛片| 久久精品国产亚洲AV先锋| 超碰美国| 777超碰| 好爽视频在线观看| 欧美熟妇色| 啊啊啊慢点| 天天综合色图| 久操免费观看| 天天影视亚洲| 久久久久久久性爱| 亚洲色阁| 欧美一级A一级a爱片久久| 91视频在线观看18| 国产精品com| 亚洲国产丝袜熟女av| 亚洲精品久久久久毛片A片拉屎| 好属操| 福利视频香蕉免费一区二区在线| 91香蕉国产尤物视频| 青娱乐休闲视频在线观看| 97超碰人人模人人拍人人| 插入逼91| 国产久久成人| 最新的亚洲无吗| 在线精品福利免费播放| 日本肉体xxxx裸交| 九九热超碰| 久久久999网站| 91麻豆天美国产| 激情欧美日韩女同久久| 欧美亚洲宗合色性图| 碰人碰碰人人开房人肉| 亚洲丝袜二区在线| 免费视频一二三区| 国产亚洲深夜激情| 91在线视频观看国产| 亚洲免费人妻在| 婷婷五月天丁香| 亚洲中文人妻色| 无码人妻精品一区二区三区九九| 久久久久921| 国产又粗又长又大的视频| 蜜臀99久久精品久久久久| 国产成久久综合片| 亚洲情色中文字幕一区| 五月综合久久| 久久綜合很很很| 久久久久久久久久久精| 亚洲欧美色图片| 在线有码中文字幕| 日本中文字幕在线视频 | 成人av在线播放| 日韩一级片在线看| 久久久9视频| 天天操天天日青青草超碰av| 亚洲天天更新| 手机在线中文字幕国产| 五月天婷婷色色| 久操 高清| www.久久超碰| 最新av网站在线观看| 激情专区综合| 亚洲色图欧美色图制服丝袜| 国内成人圈中文字幕无码视频| 欧美性暴力| 中文操嬖片。| 成人AV素股で擦久久| 亚洲国产蜜臀系列在线观看| 天堂无码| 亚洲中文字幕三级在线| 国产污视频麻豆传媒一区二区| 91激情国产| 东京热视频网| 天天日少妇逼AV| 亚洲色情在线影视| 日韩成人高清一区二区| 女人高潮大叫一级毛片| 天天看特黄的免费网站| 亚洲性天堂| 强奸乱伦大香蕉网| 日日AV加勒比| 色综合加勒比| 丁香五月成人| 91欧美丝袜| 欧美伊人久久综合网| 中文字幕第页| 欧洲站一级二级三级h| 无码高清少妇久久| 天美传媒国产原创中文字幕亚洲欧美另类 | 亚洲综合有玛| 美女诱惑一区| 抽插一区二区视频| 黑人白女精品一区| 97人人中文网| 97色碰| 日韩欧美视频青青| 麻豆一区二区AV天美| 日韩黄色一区二区三区| 亚洲欧美日韩电影网站一区 | 黑丝内射一区二区三区| 欧美综合色| 色青青久久影视| 香蕉大久久久| 日韩成人性爱AV| 欧美少妇色综合| 天天操夜夜操狠很操| 天天舔九色婷婷| 色综合V| 久久久久久久久久久久黄色 | 欧洲精品网| 91精品久久久久五月天精品| 台湾大香蕉99热| 中文字幕日韩专区精品系列| 高清不卡视频| 久久久性| 蜜臀AV成人精品蜜臀AV久久| 国产一区二区三区高清视频| 午夜男人天堂| 成年无码动漫av片无尽在线| 蜜桃传媒一区二区亚洲| 在线免费观看高清无码视频| 久久久9视频| 国产亚洲精品精AV.| 久久久性爱视频| 国产成人午夜视频网址| 校园春色宗合网| 国产强奸超碰AV| 欧美黑人与女人91| 夜夜肏2021| 日本国产亚洲一区在线观看| 美骚妇av高清在线| 亚洲91在线播放影院| 青青伊人加勒比海| 亚洲天堂 视频你懂的| 欧美宗合网| 色一射色一射| 久久精品国产99精品亚洲蜜...| 9精品久久| 久久老子无码午夜伦不卡| 人妻精品一区二区| 麻豆久久久久久久久丝袜| 欧美日韩大黄片| 啊啊啊啊啊啊啊在线| 人妻av在线| 色色毛片| 免费草草草草草视频| 91九色精品熟女内射| 国产精品96| 性爱AV天堂| 色婷婷综合网站| 人人操,人人液| 97超碰免费生活| 丁香激情五月天| 内射老妇BBWX0C0CK| 久久久内射良家| 中亚av| 在线国产福利网址导航| 欧美色九九| 99re69| 婷婷色中文字幕| 国产亚洲深夜激情| 少好三P| 中文字幕丝袜美腿| 日本肏逼视频在线观看| 精品无码久久久久久久久果冻糖心| 二三四区精品| 欧美黑人猛交春色影视大全| 国产91精品福利在线| 亚洲加勒比久久日本道| 在线情色电影 91大| 男人亚洲91首页在线| 精品久久久久av影院| 国产深喉视频一区二区| 伊人96在线| 91视频观看网站| 亚洲操逼网| 人干人人人操人人摸| 97超碰色| 深爱伊人影院| 久久精品国产精品| 黄色成品网站| 五月丁香影院| 亚洲蜜桃V妇女| 日本性爱欧美性爱| 熟妇熟女亚洲天堂网| 盗摄女人妻在线| 国产精品不卡一区二区电影| 99999久久精| 男女性扦B| 欧美综合制服在线| 久久久99久9| 水澄无码AV| 一区二区三区精品久久| 免费黄色片。| 国产无码精品成人| 校园春色五月天| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 成人久久久精品| 青青草视频导航官网| 91在线美女| 精品国产乱码久久久久久久久1| 亚洲免费人妻在| 久久夜黄色无码A级大片| 欧美激情性久久久久久| 思思热一热婷婷热一热| 少妇高潮九九九九| 亚洲精品蜜桃久久久| 九九九精品色乱九九九| 91黑丝美女| 亚洲黄日韩无码专区| 日韩伦理视频| 九九久久首页| 青娱乐av在线| 1956日韩精品| 欧美另类色图片| 91oumei| 一二三四免费视频| 亚洲五月丁香花狠狠干一区二区三区 | 超碰国产在线| 丁香五月天堂网| 色婷婷亚洲婷婷| 婷婷99狠狠躁天天躁| 久久婷婷热| 色婷婷视频| 天天操狠狠日夜夜干超碰撸com视频在线观看| 中文字幕jul-617人妻熟女| 性做久久久久久免费观看软件| 欧美专区日本专区| 成人午夜视频免费播放| 中文字幕亚洲在线一区| 毛片电影一区二区三区| 九九色热| 电影69乱码96| 第四色色综合91| 青青草五月天| 豆1无夜无码| 啊啊啊慢点| 久久人妻|