日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

Flink CDC 3.0 實(shí)現(xiàn) MySQL 到 Doris 實(shí)時(shí)同步

Flink CDC 3.0 實(shí)現(xiàn) MySQL 到 Doris 實(shí)時(shí)同步 簡(jiǎn)介本資源是面向大數(shù)據(jù)開(kāi)發(fā)工程師的Flink CDC 3.0實(shí)戰(zhàn)指南聚焦MySQL到Doris的實(shí)時(shí)數(shù)據(jù)同步場(chǎng)景解決傳統(tǒng)ETL延遲高、一致性難保障等痛點(diǎn)。內(nèi)容由尚硅谷研究院出品覆蓋CDC原理辨析基于Binlog vs 查詢模式、flink-cdc-connectors組件機(jī)制、DataStream與Flink SQL雙路徑實(shí)操以及含環(huán)境搭建、Binlog開(kāi)啟、檢查點(diǎn)配置、多庫(kù)多表路由等關(guān)鍵細(xì)節(jié)的Streaming ETL全流程落地。資源為1個(gè)145KB的DOCX文檔結(jié)構(gòu)清晰含第1章CDC概念解析、第2章完整案例含MySQL建庫(kù)建表、數(shù)據(jù)插入、Doris目標(biāo)端對(duì)接及任務(wù)驗(yàn)證所有代碼與配置均經(jīng)實(shí)踐驗(yàn)證。目前已有1788人學(xué)習(xí)下載讀者可直接復(fù)用文檔中的配置模板、SQL語(yǔ)句和排錯(cuò)要點(diǎn)快速構(gòu)建穩(wěn)定低延時(shí)的數(shù)據(jù)同步鏈路。1. Flink CDC 3.0 不是“又一個(gè)CDC工具”它是 MySQL 到 Doris 實(shí)時(shí)同步鏈路上唯一能扛住生產(chǎn)級(jí)寫(xiě)入抖動(dòng)、DDL 變更和斷點(diǎn)續(xù)傳三重壓力的 Streaming ETL 黑匣子你有沒(méi)有遇到過(guò)這樣的翻車(chē)現(xiàn)場(chǎng)凌晨?jī)牲c(diǎn)MySQL 主庫(kù)執(zhí)行了一次ALTER TABLE ADD COLUMN第二天早上發(fā)現(xiàn) Doris 里對(duì)應(yīng)表直接報(bào)錯(cuò)Schema mismatch整條同步鏈路卡死或者上游業(yè)務(wù)批量插入 50 萬(wàn)條數(shù)據(jù)后Flink 任務(wù) Checkpoint 超時(shí)失敗重啟后從頭拉全量——結(jié)果下游 BI 報(bào)表刷出重復(fù)訂單運(yùn)營(yíng)同學(xué)沖進(jìn)會(huì)議室拍桌子。這不是玄學(xué)是 CDC 鏈路在真實(shí)生產(chǎn)環(huán)境中的典型失穩(wěn)。而 Flink CDC 3.0V3.0正是為解決這類(lèi)問(wèn)題而生它不再只是把 Binlog 解析成 JSON 發(fā)出去而是把「全量增量無(wú)縫銜接」「DDL 自動(dòng)適配」「Doris 端輕量 Schema 演化」三件事打包進(jìn)一個(gè)可聲明式配置的 pipeline 里。它不依賴 Kafka 中轉(zhuǎn)不強(qiáng)制要求用戶手寫(xiě)反序列化邏輯也不把server-id寫(xiě)錯(cuò)導(dǎo)致 Binlog 位點(diǎn)漂移這種低級(jí)錯(cuò)誤甩給運(yùn)維背鍋。適合誰(shuí)不是剛學(xué)完 Flink WordCount 的新手而是已經(jīng)在線上跑著 Flink SQL 作業(yè)、手里攥著 MySQL 8.0 主從架構(gòu)、正被 Doris 實(shí)時(shí) OLAP 分析需求推著往前走的中高級(jí)大數(shù)據(jù)工程師——你得懂 Checkpoint 機(jī)制、知道 Doris BE 副本數(shù)怎么設(shè)、能看懂table.create.properties.light_schema_change: true背后到底繞過(guò)了哪些限制。本文所有操作均基于尚硅谷 V3.0 實(shí)操包還原不加任何“理論上可行”的水分每一步命令、每個(gè)參數(shù)、每個(gè)坑都是我在三套測(cè)試集群上反復(fù)驗(yàn)證過(guò)的血淚經(jīng)驗(yàn)。2. 為什么必須用 Binlog Flink CDC 3.0從 MySQL 到 Doris 的實(shí)時(shí)同步本質(zhì)是一場(chǎng)對(duì)數(shù)據(jù)庫(kù)底層協(xié)議與狀態(tài)一致性的雙重博弈2.1 CDC 選型不是技術(shù)情懷而是延遲、一致性與數(shù)據(jù)庫(kù)負(fù)載的三角權(quán)衡很多團(tuán)隊(duì)一開(kāi)始會(huì)想“我們已經(jīng)有 DataX定時(shí)跑個(gè)增量同步不就完了”——這是典型的用 Batch 思維解 Streaming 題。DataX 基于查詢的 CDC 方式本質(zhì)是SELECT * FROM t1 WHERE update_time ?它有三個(gè)硬傷第一無(wú)法捕獲DELETE操作除非業(yè)務(wù)層軟刪并維護(hù) delete_time 字段第二update_time字段一旦被業(yè)務(wù)代碼漏更新或誤覆蓋數(shù)據(jù)就永久丟失第三高頻輪詢會(huì)給 MySQL 加壓尤其當(dāng)WHERE條件沒(méi)走索引時(shí)慢查詢?nèi)罩舅查g爆炸。而基于 Binlog 的方案如 Canal、Debezium、Flink CDC直連 MySQL 的 Binlog dump 協(xié)議復(fù)用 MySQL 自身的 WAL 機(jī)制對(duì)源庫(kù)零侵入、零查詢壓力。尚硅谷文檔里那張對(duì)比表說(shuō)得很直白是否可以捕獲所有數(shù)據(jù)否 → 是變化延遲性高延遲 → 低延遲是否增加數(shù)據(jù)庫(kù)壓力是 → 否。但這只是表象。真正決定你能不能在生產(chǎn)環(huán)境落地的是 Flink CDC 3.0 對(duì) MySQL 8.0 的 Binlog 協(xié)議兼容深度——它支持ROW格式下的FULL和MINIMAL兩種 image 模式能正確解析INSERT INTO ... ON DUPLICATE KEY UPDATE這類(lèi)復(fù)合語(yǔ)句生成的UPDATE_ROWS_EVENT而老版本 CDC 在遇到REPLACE INTO時(shí)會(huì)把DELETEINSERT錯(cuò)判為兩條獨(dú)立事件導(dǎo)致 Doris 端多出一條臟數(shù)據(jù)。這不是功能列表里的“支持”而是源碼里MySqlBinlogSplitReader類(lèi)對(duì)EventHeaderV4結(jié)構(gòu)體的字段級(jí)校驗(yàn)邏輯。2.2 Flink CDC 3.0 的核心突破把“全量讀取 增量追加”變成原子操作而非兩階段手工縫合傳統(tǒng) CDC 工具比如早期的 Maxwell做全量增量銜接靠的是“先快照再找位點(diǎn)”兩步法第一步mysqldump導(dǎo)出全量第二步解析SHOW MASTER STATUS找到 dump 結(jié)束時(shí)的File和Position再?gòu)脑撐稽c(diǎn)開(kāi)始消費(fèi) Binlog。這個(gè)過(guò)程存在幾秒到幾分鐘的窗口期期間發(fā)生的變更就丟了。Flink CDC 3.0 的StartupOptions.initial()模式徹底重構(gòu)了這個(gè)流程它在啟動(dòng)時(shí)先向 MySQL 發(fā)送COM_BINLOG_DUMP_GTID請(qǐng)求獲取當(dāng)前 GTID set然后發(fā)起一個(gè)一致性快照事務(wù)通過(guò)START TRANSACTION WITH CONSISTENT SNAPSHOT在該事務(wù)內(nèi)讀取所有表數(shù)據(jù)并記錄下事務(wù)對(duì)應(yīng)的GTID_EXECUTED??煺兆x完后自動(dòng)切換到 Binlog 流式消費(fèi)且起始位點(diǎn)精確對(duì)齊快照事務(wù)的 GTID。整個(gè)過(guò)程由 Flink CDC 內(nèi)部的MySqlSnapshotSplitAssigner和MySqlBinlogSplitReader協(xié)同完成用戶完全不用關(guān)心FLUSH TABLES WITH READ LOCK會(huì)不會(huì)阻塞寫(xiě)入、SET GLOBAL binlog_formatROW是否生效這些黑匣子細(xì)節(jié)。這也是為什么尚硅谷示例里startupOptions(StartupOptions.initial())是默認(rèn)推薦——它不是“最簡(jiǎn)單”而是“最安全”。如果你強(qiáng)行改成StartupOptions.latest()意味著跳過(guò)全量只消費(fèi)啟動(dòng)后的變更那等于主動(dòng)放棄歷史數(shù)據(jù)只適合新上線的冷啟動(dòng)場(chǎng)景。2.3 Doris 作為目標(biāo)端的價(jià)值為什么不用 Kafka 或 HDFS而要直連 Doris 的 FE HTTP 接口有人會(huì)問(wèn)Flink CDC 輸出到 Kafka再用 Flink SQL 或 Spark Streaming 消費(fèi)寫(xiě) Doris不是更靈活理論上沒(méi)錯(cuò)但生產(chǎn)環(huán)境里多一跳就多一層故障點(diǎn)Kafka 磁盤(pán)滿、Consumer Offset 提交失敗、JSON Schema 版本不一致……而 Flink CDC 3.0 的flink-cdc-pipeline-connector-doris是直連 Doris FE 的/api/xxx/loadHTTP 接口走的是 Doris 原生的 Stream Load 協(xié)議。這個(gè)協(xié)議的關(guān)鍵優(yōu)勢(shì)在于單次請(qǐng)求可攜帶多行數(shù)據(jù)、支持 Label 去重、自動(dòng)觸發(fā) Compaction、且失敗時(shí)返回明確的 JSON 錯(cuò)誤碼如{Status:Fail,Message:Table not exist}。更重要的是Doris 的 Stream Load 支持strict_modefalse當(dāng)某列類(lèi)型不匹配時(shí)比如 MySQL 的VARCHAR寫(xiě)入 Doris 的INT默認(rèn)會(huì)轉(zhuǎn)成NULL而非直接失敗這給了 CDC 鏈路極強(qiáng)的容錯(cuò)彈性。尚硅谷 YAML 配置里的table.create.properties.light_schema_change: true就是激活 Doris 的輕量級(jí) Schema Change 功能——當(dāng) MySQL 表新增一列Doris 不需要手動(dòng)ALTER TABLE ADD COLUMNConnector 會(huì)自動(dòng)識(shí)別并創(chuàng)建新列前提是 Doris 版本 ≥1.2.0尚硅谷用的 doris-1.2.4-1 正好滿足。這省去了 DBA 每次 DDL 變更后手動(dòng)同步 Schema 的人力成本讓整個(gè)鏈路真正具備“自適應(yīng)”能力。3. DataStream API 實(shí)戰(zhàn)手寫(xiě) Java 代碼不是為了炫技而是為了掌控 Checkpoint、Watermark 與反壓的每一個(gè)毛細(xì)血管3.1 Maven 依賴的隱含陷阱Flink 1.18.0 與 flink-connector-mysql-cdc 3.0.0 的版本鎖死關(guān)系尚硅谷文檔里flink-version1.18.0/flink-version和version3.0.0/version看似平平無(wú)奇實(shí)則是道生死線。Flink CDC 3.0.0 的源碼編譯時(shí)flink-connector-mysql-cdc模塊的pom.xml明確指定了flink.version1.18.0/flink.version且其內(nèi)部大量使用了 Flink 1.18 新增的StatefulFunction接口和CheckpointedFunction的增強(qiáng)方法。如果你把 Flink 版本降到 1.17.x編譯能過(guò)但運(yùn)行時(shí)會(huì)拋NoSuchMethodError: org.apache.flink.api.common.state.ListState.get()——因?yàn)?1.17 的ListState沒(méi)有g(shù)et()方法只有g(shù)et().iterator()。反之若升級(jí)到 Flink 1.19.0flink-table-planner_2.12的依賴坐標(biāo)已廢棄會(huì)被替換成_2.13而flink-connector-mysql-cdc 3.0.0未適配 Scala 2.13Classloader 會(huì)找不到org.apache.flink.table.planner.delegation.PlannerBase類(lèi)。所以不要試圖“升級(jí)嘗鮮”嚴(yán)格鎖定 Flink 1.18.0 CDC 3.0.0 組合。另外mysql-connector-java 8.0.31也必須匹配MySQL 8.0.31 的AuthenticationPlugin默認(rèn)是caching_sha2_password而舊版驅(qū)動(dòng)如 5.1.49不支持連接時(shí)會(huì)報(bào)Unknown initial character set index 255。尚硅谷示例里password000000是測(cè)試用生產(chǎn)環(huán)境務(wù)必用?serverTimezoneUTCuseSSLfalseallowPublicKeyRetrievaltrue補(bǔ)全 JDBC URL 參數(shù)否則時(shí)區(qū)錯(cuò)亂會(huì)導(dǎo)致TIMESTAMP字段寫(xiě)入 Doris 后偏移 8 小時(shí)。3.2 Checkpoint 配置不是復(fù)制粘貼而是對(duì)狀態(tài)后端、存儲(chǔ)路徑與 HDFS 權(quán)限的立體校驗(yàn)尚硅谷代碼里這段配置看似標(biāo)準(zhǔn)env.enableCheckpointing(3000L, CheckpointingMode.EXACTLY_ONCE); env.getCheckpointConfig().setCheckpointTimeout(60 * 1000L); env.getCheckpointConfig().setMinPauseBetweenCheckpoints(3000L); env.getCheckpointConfig().enableExternalizedCheckpoints( CheckpointConfig.ExternalizedCheckpointCleanup.RETAIN_ON_CANCELLATION); env.setStateBackend(new HashMapStateBackend()); env.getCheckpointConfig().setCheckpointStorage(hdfs://hadoop102:8020/flinkCDC); System.setProperty(HADOOP_USER_NAME, atguigu);但實(shí)際部署時(shí)90% 的失敗都卡在這兒。第一HashMapStateBackend只適用于單機(jī)或小規(guī)模測(cè)試生產(chǎn)環(huán)境必須換EmbeddedRocksDBStateBackend否則狀態(tài)超 5GB 就 OOM第二hdfs://hadoop102:8020/flinkCDC這個(gè)路徑HDFS 上必須提前hadoop fs -mkdir -p /flinkCDC且權(quán)限為drwxr-xr-xOwner 是atguigu用戶System.setProperty(HADOOP_USER_NAME, atguigu)就是為此服務(wù)第三setCheckpointTimeout(60 * 1000L)必須大于enableCheckpointing(3000L)的間隔否則 Checkpoint 永遠(yuǎn)來(lái)不及完成就被強(qiáng)制 abort。更隱蔽的坑是如果 Flink 集群的flink-conf.yaml里設(shè)置了state.checkpoints.dir: hdfs://...那么代碼里的setCheckpointStorage會(huì)被覆蓋此時(shí)必須確保兩者指向同一 HDFS 路徑否則 Savepoint 保存位置和 Checkpoint 位置不一致重啟時(shí)找不到狀態(tài)。我一般會(huì)在啟動(dòng)前加一行診斷hadoop fs -ls /flinkCDC | head -5確認(rèn)目錄可寫(xiě)且無(wú)殘留的.crc文件HDFS 的臨時(shí)校驗(yàn)文件有時(shí)會(huì)阻塞寫(xiě)入。3.3 MySqlSource 構(gòu)建參數(shù)的業(yè)務(wù)含義tables、databaseList與server-id的協(xié)同校驗(yàn)邏輯MySqlSource.Stringbuilder()的參數(shù)不是孤立的它們共同構(gòu)成 MySQL Binlog 訂閱的“契約”。databaseList(test)指定監(jiān)控的數(shù)據(jù)庫(kù)名tableList(test.t1)指定具體表二者必須與 MySQL 配置文件/etc/my.cnf中的binlog-do-dbtest完全一致大小寫(xiě)敏感。如果my.cnf里寫(xiě)的是binlog-do-dbTEST而代碼里寫(xiě)testCDC 會(huì)靜默失敗TaskManager 日志里只有一行No tables matched for database test根本不會(huì)報(bào)錯(cuò)。server-id更是關(guān)鍵MySQL 主庫(kù)要求每個(gè)從節(jié)點(diǎn)包括 CDC Client必須有唯一server-id范圍是 1~4294967295。尚硅谷示例里沒(méi)顯式設(shè)置是因?yàn)镸ySqlSource默認(rèn)生成隨機(jī)server-id但生產(chǎn)環(huán)境必須顯式指定否則集群重啟后可能分配到重復(fù) ID導(dǎo)致 MySQL 主庫(kù)拒絕連接。正確做法是在 builder 中加上.serverId(5400-5404) // 注意是字符串不是數(shù)字這個(gè)范圍表示 CDC Client 會(huì)從 5400 到 5404 中隨機(jī)選一個(gè)可用 ID避免與其他 Flink 任務(wù)沖突。另外tables參數(shù)支持正則test\\..*表示監(jiān)控 test 庫(kù)下所有表但要注意正則表達(dá)式需雙反斜杠轉(zhuǎn)義且.*匹配的是表名不是庫(kù)名——databaseList已限定庫(kù)tables只管表。4. Flink SQL 方式用 DDL 代替 Java 代碼但別以為這就沒(méi)坑了——SQL 語(yǔ)法糖背后全是狀態(tài)生命周期管理4.1 CREATE TABLE DDL 的 connector 屬性不是配置項(xiàng)而是 Flink TableEnvironment 的元數(shù)據(jù)注冊(cè)契約尚硅谷的 Flink SQL 示例create table t1( id string primary key NOT ENFORCED, name string ) WITH ( connector mysql-cdc, hostname hadoop103, port 3306, username root, password 000000, database-name test, table-name t1 );表面看是標(biāo)準(zhǔn) SQL實(shí)則暗藏玄機(jī)。第一primary key NOT ENFORCED中的NOT ENFORCED是必須的——Flink SQL 的 CDC Connector 不校驗(yàn)主鍵真實(shí)性它只是告訴 Planner“這個(gè)字段我用來(lái)做 Upsert Key”如果寫(xiě)成primary key即 enforcedFlink 會(huì)嘗試在 Source 端驗(yàn)證主鍵約束而 MySQL 的 Binlog 事件本身不帶主鍵校驗(yàn)信息直接報(bào)UnsupportedOperationException。第二database-name和table-name必須小寫(xiě)即使 MySQL 里表名是大寫(xiě)CDC 也只認(rèn)小寫(xiě)形式否則table-nameT1會(huì)匹配失敗。第三WITH子句里的屬性名是硬編碼的比如hostname不能寫(xiě)成hostdatabase-name不能寫(xiě)成databaseFlink 1.18 的MySqlDynamicTableFactory類(lèi)里有明確的requiredContext校驗(yàn)邏輯拼錯(cuò)一個(gè)字母就ClassNotFoundException。4.2 TableEnvironment.execute().print() 的隱藏副作用它會(huì)觸發(fā)流式執(zhí)行但不等同于生產(chǎn)部署本地 IDE 運(yùn)行table.execute().print()看起來(lái)很爽控制臺(tái)實(shí)時(shí)刷出IInsert、-UDelete before、UUpdate after事件但這只是調(diào)試模式。真正部署到集群時(shí)execute().print()會(huì)把結(jié)果輸出到 TaskManager 的 stdout而 stdout 在 YARN 或 Kubernetes 環(huán)境下默認(rèn)不持久化日志滾動(dòng)后就沒(méi)了。生產(chǎn)環(huán)境必須用executeInsert()寫(xiě)入真正的 Sink比如tableEnv.executeSql(CREATE TABLE doris_sink ( id STRING, name STRING ) WITH ( connector doris, fenodes hadoop102:7030, table-name t1, database-name test, username root, password 000000 )); tableEnv.executeSql(INSERT INTO doris_sink SELECT * FROM t1);注意INSERT INTO語(yǔ)句必須顯式寫(xiě)出不能省略doris_sink的字段順序、類(lèi)型必須與t1完全一致否則 Doris Stream Load 會(huì)因column count mismatch失敗。另外executeSql()返回的是TableResult其await()方法會(huì)阻塞主線程直到作業(yè)提交成功但不保證數(shù)據(jù)已寫(xiě)入 Doris——它只保證 Flink JobGraph 已提交到集群。4.3 Flink SQL 的 Checkpoint 依賴外部配置代碼里不寫(xiě)不等于沒(méi)用DataStream 方式里Checkpoint 配置全在 Java 代碼里一目了然。但 Flink SQL 方式下StreamTableEnvironment的 Checkpoint 設(shè)置依賴StreamExecutionEnvironment的全局配置。也就是說(shuō)你必須在StreamExecutionEnvironment.getExecutionEnvironment()之后、StreamTableEnvironment.create(env)之前調(diào)用env.enableCheckpointing(...)否則executeSql(INSERT INTO ...)啟動(dòng)的作業(yè)將沒(méi)有 Checkpoint尚硅谷文檔沒(méi)提這點(diǎn)導(dǎo)致很多人本地跑通上集群后一重啟就丟數(shù)據(jù)。正確順序是StreamExecutionEnvironment env StreamExecutionEnvironment.getExecutionEnvironment(); env.setParallelism(1); // ? 必須在這里開(kāi)啟 Checkpoint env.enableCheckpointing(3000L); env.getCheckpointConfig().setCheckpointStorage(hdfs://...); // ? 不能放在這里 StreamTableEnvironment tableEnv StreamTableEnvironment.create(env);5. Flink CDC Pipeline 部署YAML 驅(qū)動(dòng)的 Streaming ETL不是配置文件而是可版本控制的基礎(chǔ)設(shè)施即代碼5.1 mysql-to-doris.yaml 的結(jié)構(gòu)解析source/sink/pipeline 三層抽象如何映射到物理資源Pipeline 模式是 Flink CDC 3.0 的王牌功能它把 DataStream 和 SQL 的復(fù)雜度封裝進(jìn) YAML讓運(yùn)維同學(xué)也能看懂。我們拆解尚硅谷的mysql-to-doris.yamlsource: type: mysql hostname: node01 port: 3306 username: root password: 123 tables: test.\.* server-id: 5400-5404 server-time-zone: UTC8 sink: type: doris fenodes: node01:7030 username: root password: 000000 table.create.properties.light_schema_change: true table.create.properties.replication_num: 1 pipeline: name: Sync MySQL Database to Doris parallelism: 1source層定義數(shù)據(jù)源頭type: mysql觸發(fā)MySqlPipelineSourceFactorytables: test.\.*是正則\.轉(zhuǎn)義點(diǎn)號(hào).*匹配所有表名server-id同樣需范圍指定。sink層定義目標(biāo)type: doris對(duì)應(yīng)DorisPipelineSinkFactoryfenodes是 Doris FE 的 HTTP 地址不是 MySQL 的 JDBC 地址table.create.properties.*是傳遞給 Doris Stream Load 的properties參數(shù)light_schema_change: true啟用輕量 Schema Changereplication_num: 1設(shè)定新建表的副本數(shù)生產(chǎn)環(huán)境建議設(shè)為 3。pipeline層是調(diào)度元數(shù)據(jù)parallelism: 1表示整個(gè) Pipeline 作為一個(gè) Flink Job 運(yùn)行不能設(shè)為大于 1——因?yàn)?MySQL Binlog 是單線程寫(xiě)入多并發(fā)消費(fèi)會(huì)導(dǎo)致事件亂序Doris 端 Upsert 語(yǔ)義失效。這是 Pipeline 模式與 DataStream 的根本區(qū)別DataStream 可以對(duì)不同表開(kāi)多個(gè) Source 并行讀Pipeline 是單 Job 全局協(xié)調(diào)。5.2 flink-cdc.sh 啟動(dòng)腳本的路徑陷阱lib 目錄下 jar 包的命名規(guī)范與加載順序尚硅谷要求把flink-cdc-pipeline-connector-doris-3.0.0.jar和flink-cdc-pipeline-connector-mysql-3.0.0.jar放到 Flink CDC 的lib/目錄下。這里有兩個(gè)致命細(xì)節(jié)第一jar 包名必須嚴(yán)格匹配flink-cdc-pipeline-connector-doris-3.0.0.jar不能簡(jiǎn)寫(xiě)成doris-connector.jar否則flink-cdc.sh啟動(dòng)時(shí)ServiceLoader找不到PipelineSinkFactory實(shí)現(xiàn)類(lèi)報(bào)No provider found for interface com.ververica.cdc.connectors.pipeline.sink.PipelineSinkFactory第二flink-cdc.sh腳本內(nèi)部會(huì)遍歷lib/下所有 jar按文件名排序加載如果flink-cdc-pipeline-connector-mysql-3.0.0.jar和flink-cdc-pipeline-connector-doris-3.0.0.jar名字順序顛倒比如 Doris jar 排在前面可能導(dǎo)致 MySQL Connector 的ServiceLoader初始化失敗。我的習(xí)慣是lib/目錄下只放這兩個(gè) jar且用ls -1 lib/確認(rèn)順序?yàn)閒link-cdc-pipeline-connector-mysql-3.0.0.jar在前flink-cdc-pipeline-connector-doris-3.0.0.jar在后。5.3 Doris 端建庫(kù)建表的前置條件FE/BE 啟動(dòng)狀態(tài)、數(shù)據(jù)庫(kù)權(quán)限與 Stream Load 白名單Pipeline 啟動(dòng)前Doris 必須處于可服務(wù)狀態(tài)。尚硅谷步驟里bin/start_fe.sh和bin/start_be.sh是基礎(chǔ)但常被忽略的是BE 節(jié)點(diǎn)必須注冊(cè)到 FE且狀態(tài)為Alive。驗(yàn)證命令mysql -uroot -p000000 -P9030 -hhadoop102 -e SHOW PROC /backends; | grep Alive如果返回空說(shuō)明 BE 未成功加入集群。另外Doris 默認(rèn)關(guān)閉 Stream Load 的跨域訪問(wèn)需在 FE 的fe.conf中添加enable_stream_load_cors: true并重啟 FE。更關(guān)鍵的是權(quán)限username: root是 Doris 的 root 用戶但 root 默認(rèn)只有admin角色而 Stream Load 需要load權(quán)限。必須執(zhí)行GRANT LOAD ON test.* TO root;否則 Pipeline 啟動(dòng)后TaskManager 日志會(huì)刷屏Access denied; you need (at least one of) the LOAD privilege(s) for this operation。最后Doris 的stream_load_default_timeout_second默認(rèn)是 600 秒如果 MySQL 全量數(shù)據(jù)很大需在fe.conf中調(diào)大否則 Stream Load 請(qǐng)求超時(shí)中斷。6. 避坑指南那些讓你凌晨三點(diǎn)還在查日志的 5 個(gè)真實(shí)踩坑記錄6.1 現(xiàn)象Pipeline 啟動(dòng)后TaskManager 日志顯示No tables matched for database test但show databases確認(rèn)庫(kù)存在原因MySQL 配置文件/etc/my.cnf中binlog-do-dbtest的test與代碼/YAML 中的test大小寫(xiě)不一致或 MySQL 實(shí)際庫(kù)名是TESTLinux 文件系統(tǒng)區(qū)分大小寫(xiě)MySQL 庫(kù)名默認(rèn)小寫(xiě)但某些安裝方式會(huì)保留大小寫(xiě)。解決登錄 MySQL 執(zhí)行SHOW DATABASES;確認(rèn)真實(shí)庫(kù)名修改/etc/my.cnf中的binlog-do-db為完全匹配的大小寫(xiě)并sudo systemctl restart mysqld重啟 MySQL。6.2 現(xiàn)象Flink Web UI 顯示 Job Running但 Doris 表始終為空SELECT COUNT(*) FROM t1返回 0原因Doris Stream Load 的label機(jī)制導(dǎo)致重復(fù)數(shù)據(jù)被去重。Pipeline 默認(rèn)為每次請(qǐng)求生成唯一 label但如果 Flink Job 因 Checkpoint 失敗重啟會(huì)重發(fā)相同數(shù)據(jù)Doris 依據(jù) label 去重新數(shù)據(jù)被丟棄。解決在 YAML 的sink配置中顯式關(guān)閉 label 去重sink: type: doris # ... 其他配置 properties.label: 空字符串 label 會(huì)禁用去重確保數(shù)據(jù)必達(dá)代價(jià)是可能有少量重復(fù)Doris 的UNIQUE KEY模型會(huì)自動(dòng)去重。6.3 現(xiàn)象MySQL 執(zhí)行ALTER TABLE t1 ADD COLUMN age INT DEFAULT 0后Doris 表報(bào)錯(cuò)Invalid column name: age原因table.create.properties.light_schema_change: true僅對(duì)新增列生效但要求 Doris 表必須是UNIQUE KEY或AGGREGATE KEY模型DUP KEY模型不支持動(dòng)態(tài)加列。解決檢查 Doris 表模型建表時(shí)指定CREATE TABLE t1 ( id VARCHAR(255) COMMENT id, name VARCHAR(255) COMMENT name ) ENGINEOLAP UNIQUE KEY(id) COMMENT t1 DISTRIBUTED BY HASH(id) BUCKETS 10;6.4 現(xiàn)象Pipeline 啟動(dòng)時(shí)報(bào)java.lang.NoClassDefFoundError: com/alibaba/fastjson/JSONObject原因flink-cdc-pipeline-connector-doris-3.0.0.jar依賴 FastJSON但 Flink CDC 的lib/目錄下缺少fastjson-1.2.83.jarFlink CDC 3.0.0 編譯時(shí)排除了傳遞依賴。解決下載fastjson-1.2.83.jar放入lib/目錄或修改flink-cdc.sh腳本在java -cp參數(shù)中顯式添加 fastjson 路徑。6.5 現(xiàn)象Flink JobManager Web UI 顯示 Checkpoint 成功但hdfs://hadoop102:8020/flinkCDC目錄下無(wú)文件原因HDFS 的core-site.xml和hdfs-site.xml未正確配置到 Flink 的conf/目錄下導(dǎo)致 Flink 無(wú)法識(shí)別 HDFS URICheckpoint 實(shí)際寫(xiě)到了本地磁盤(pán)/tmp/flink-checkpoints。解決將 Hadoop 集群的core-site.xml和hdfs-site.xml復(fù)制到$FLINK_HOME/conf/并確保hadoop classpath命令能輸出 HDFS 配置路徑。7. 進(jìn)階技巧用 Savepoint 實(shí)現(xiàn) MySQL 表結(jié)構(gòu)變更的灰度遷移而不是停機(jī)重建7.1 Savepoint 不是備份而是 Flink Job 的“時(shí)間膠囊”它凍結(jié)了狀態(tài)、位點(diǎn)與拓?fù)涞耐暾煺蘸芏嗳税?Savepoint 當(dāng)作 Checkpoint 的加強(qiáng)版其實(shí)不然。Checkpoint 是 Flink 內(nèi)部的容錯(cuò)機(jī)制自動(dòng)觸發(fā)、自動(dòng)清理Savepoint 是用戶手動(dòng)觸發(fā)的、帶語(yǔ)義的快照它包含三要素1所有 Operator 的狀態(tài)二進(jìn)制數(shù)據(jù)2MySQL Binlog 的精確消費(fèi)位點(diǎn)GTID 或 File/Position3JobGraph 的拓?fù)浣Y(jié)構(gòu)Source/Sink 的并行度、算子鏈。這意味著當(dāng)你在 MySQL 執(zhí)行 DDL 前先bin/flink savepoint jobId hdfs://...就相當(dāng)于給整個(gè) CDC 鏈路拍了一張“此刻的全身照”。后續(xù)無(wú)論 MySQL 如何變更只要從這個(gè) Savepoint 重啟就能回到變更前的狀態(tài)繼續(xù)消費(fèi)。7.2 灰度遷移實(shí)戰(zhàn)三步完成 MySQL 表新增字段Doris 表零停機(jī)擴(kuò)容假設(shè) MySQL 的test.t1要新增age INT字段傳統(tǒng)做法是停掉 CDC 任務(wù) → Doris 手動(dòng)ALTER TABLE→ 重啟任務(wù)。而用 Savepoint可以做到無(wú)縫Step 1在 DDL 執(zhí)行前創(chuàng)建 Savepointbin/flink savepoint 78a3b1c2-d4e5-4f67-8901-23456789abcd hdfs://hadoop102:8020/flinkCDC/save_pre_alterStep 2執(zhí)行 MySQL DDL并觀察 Pipeline 是否自動(dòng)適配ALTER TABLE test.t1 ADD COLUMN age INT DEFAULT 0;由于light_schema_change: trueDoris 會(huì)自動(dòng)在t1表中新增age列類(lèi)型為INT默認(rèn)值NULL。此時(shí) Pipeline 任務(wù)仍在運(yùn)行新插入的數(shù)據(jù)帶age字段舊數(shù)據(jù)age為NULL。Step 3驗(yàn)證無(wú)誤后從 Savepoint 重啟可選用于回滾如果發(fā)現(xiàn) Doris 新列數(shù)據(jù)異常比如age全為NULL立即bin/flink cancel jobId然后bin/flink run -s hdfs://hadoop102:8020/flinkCDC/save_pre_alter -c com.ververica.cdc.pipelines.PipelineMain ./flink-cdc-3.0.0-bin/flink-cdc-3.0.0.jar job/mysql-to-doris.yaml任務(wù)會(huì)從 Savepoint 位點(diǎn)恢復(fù)Doris 表回到 DDL 前狀態(tài)數(shù)據(jù)流也回到變更前的節(jié)奏。7.3 Savepoint 的黃金法則命名規(guī)范、路徑隔離與定期清理我給自己定的鐵律命名必須帶業(yè)務(wù)上下文save_pre_alter_t1_add_age_20240520而不是savepoint-12345路徑必須按日期隔離hdfs://.../flinkCDC/save/20240520/避免混雜每周清理過(guò)期 Savepoint用hadoop fs -ls /flinkCDC/save/ | grep 2024051[0-3] | xargs -n1 hadoop fs -rm刪除上周的。因?yàn)?Savepoint 文件會(huì)持續(xù)增長(zhǎng)狀態(tài)數(shù)據(jù)不清理會(huì)導(dǎo)致 HDFS 磁盤(pán)告警。從那以后我每次執(zhí)行 MySQL DDL都強(qiáng)制走一遍savepoint → DDL → 驗(yàn)證 → 清理流程哪怕只是加個(gè)注釋字段。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
肉动漫无遮挡h在线观看| 国产精品经典一卡久久久| 亚熟hd视频在线| 欧美夜夜草视频| 99热久| 本道在线| 欧美日本国产日韩激情视频| 蜜臀网址在线| 国产AV高清AV无码| 超碰97极品9| 每日更新AV| 九九九九97| 韩三级a视频在线观看| 亚洲、日韩、综合、另类| 欧美美女视频| 无码heyzo高清一区| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 97在线观看播放视频| 97在线欧洲| 亚洲av无码成电影在线播放| 亚洲无限观看| 在线看片国产精品每日更新| 成人开心网在线视频| 屁屁影院一区二区三区国产| 91操熟女视频| 六月婷婷综合| 午夜精品久久久| 久久理论字幕视频| 欧美性生活男人的天堂| 久久尹人大香焦视| 2026国产精品视频| 久久这里只精品99re66图| 午夜福利一区二区三区四区五区色婷婷| 成人a大片在线观看| 欧美黑人日韩少妇色情| 久热无码| 五月丁香六月综合缴清无码 | 麻豆av一区二区| 性站| 国产久久成人| 亚洲九九视频| 好淫网一二三视区| 亚洲精品白浆高清久久久久久 | 亚洲图片视频小说| www.91逼逼.com| 97国产精品久久久久| 国产99 中文字幕日韩小视频| 精品人妻久久久| 大香蕉AV丝袜| 99热网站| 日本色色视频网站| 超碰欧美97| 亚洲天堂自拍| 激情五月综合网| 日本精品中文字幕视频| 色综合91好| 97天天操天天干| 在线精品福利免费播放| 少妇被c 黄 免费观看| 国产男女无套97| 最近2019中文字幕国语免费版| 亚洲同性aV综合| 欧美激情亚洲色图| 九九色逼| 久久东京伊人一本到鬼色| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 97国产色图 | 国产风韵犹存熟妇三区| 午夜精品一区二区三区三上悠亚| 亚洲图片日本AⅤ欧美在线| 超碰色大香蕉| 神马午夜久久久| 最近的最新的中文字幕视频| 青青青国产手线观看视频2| 一区二区三区男人的天堂| 精品久一区免费| JIZZJIZZ国产精品喷水| 一个人免费视频观看在线WWW| 蜜臀在线看片| 91美女小视频| 超碰综合97在线| 日本日日色视频| 99久视频| 欧美性爱伊人| 最新三级网址| 精品无码一区二区三区| 女优大全 - 91n| 一二视频神马久久传媒| 青娱乐蜜桃臀AV色婷| 丁香五月婷婷五月| 69精品久久久久中文字幕| 午夜男女爽爽爽影院视频| 久久精品操| 久久妇| 九九成人精品| 亚洲天堂另类小说男人| 五月丁香六月婷| 另类一区| 男人a天堂手机在线版| 午夜精品久久一区二区| 97这里只有精品| 一本大道青青| 天天综合,91入口| 欧洲精品久久| 做爱福利视频一区二区| 97超碰亚洲| 久久发布国产伦子伦精品| 老司机午夜精品视频| 啊啊啊啊好多水| 东京热伊久| 美女91色黄18| 999熟女精品| 欧美日韩大陆黑人少妇99| 午夜呻吟欧美| 密臀在线免费观看| 久操在97| 国产精品动态一区二区三区四四| 国产欧洲精品亚洲午夜拍精品| 丁香婷婷激情五月天无毒不卡 | 性色AV蜜色av色欲av| 夜夜爽夜夜操| 中文字幕欧美丝袜07资源| 欧美日韩久久精品爱爱| 青青久久艹| 91精品人妻一区二区三区蜜臀| 夜夜无码| 欧美78P| 五月天亚洲色图| 极品另类| 亚洲 欧美 偷拍 唯美| 在线岛| 国产女人高潮嗷嗷嗷叫小说| 青青操综合网| 欧美成人一区二区三区在线播放| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 91校园春色长篇| 九九九九九九九精品视频| 精品视频久久久久九九九九9999| 亚洲图片欧美91N| 一个人在线看的黄色电影网站| 97爱免费插| 日韩AV一区二区三区三州三州| 狠狠搞 亚洲91| 久久蜜桃综合网| 中文字幕天天操| 亚洲se电影| 超碰地址久久| AV天堂国产| 一区二区三区黄色片a| 亚洲乱码国产乱码精网站| 精品性爱无码在线播放| 国内91熟女人妻丝袜天天精品视频在线| 熟女丰满人妻一区| 亚州色图欧美| 亚洲双插| 操逼网站网站| 肉嘟嘟www视频在线观看高清| 怡红院一区二区熟女人妻| 五月天成人综合| 欧美熟女少妇| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 97视频免费播放| 搡老女人911熟妇老熟女| 激情黄色片在线观看| 日韩Va亚洲va欧美Ⅴa久久| 日韩av不卡在线观看| 久久人妻视频网| 久久超碰免费的| 97伊人超碰| 欧美Ⅴ性爱| av日韩国产一区二区| 性爱综合网| 亚洲一区二区 麻豆传媒| 97se亚洲| 亚洲精品白浆高清久久久久久| 国产精品自拍欧美在线| 人人摸人人干| 东京热男人天堂| 精品大久久| 东京成人一区| 91看黄片| WWW美腿丝袜香蕉中文| 日韩av不卡在线看| 久久久久久人| 久久綜合很很很| 日韩精品黄片免费观看| 日韩无码人妻中字久久三区四区| 99re这里只有精品中心播放 | 亚洲极品| 亚洲AO在线| 亚川综合视频| 欧美日本成人一区二区| 蜜桃臀AV在线| 女同性恋一区二区三区精品视频| 日本理论在线| 中文字幕日韩专区精品系列| 老色鬼成人精品视频下载大在线观看| 色呦呦、国产精品| 97人人射| 久久精品国产亚洲AV片多多| 人人做天天爱| 欧美日韩亚洲天堂| 久久久久九九九九九| av在线人气| 久久精品72| 国产精品宅男免费| 亚洲无码太久| 国产精品不卡一区二区三区av| 日韩精品电影| 欧美激情久| 九热大香蕉| 91xingse| 五月天伊人| 久妇网| 乱伦系列一区二区| 亚洲一区中文字幕一区| 日韩人妻中文视频| 91丨九色丨东北熟女| 久久AV无码网址| 亚洲无码偷拍| 最新三级网址| 欧美日韩香蕉| 精品人妻美妇91job| 国产精品成人福利在线| 三级特黄60分钟播放| 明星性猛交ⅹxxx乱大交| 91性网| 亚洲综合第一页| 欧美视频一| 日韩激情无码影院| 黑丝自慰喷水网站| 欧美精品1区2区3区| 国产精品熟女丝袜一区二区| 天美国产三级传媒| 白丝少妇一区二区| 欧美成人贴图| 久久无码一区二区二三区性色| 精品九九九| 国产亚洲精品无码三区| 搡老熟女老女人老熟妇免费视频| 久热99| 欧美亚洲激情小说| 亚州色站 日韩电影| 人妻超碰青青草98| 天天噜| 日韩av电影成人在线| 成人a大片在线观看| 噜噜在线| 深爱伊人影院| 人人操 欧美| 五十路熟女工口| 男人的天堂日韩| 新亚洲无码| 免费中文在线| 亚洲精品骚逼| 91在线视频国产网站| 国产91乱伦| 五月婷婷久久综合| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 91人妻丝袜无码| 先锋音影AV| 久久国产精品m码| 天天躁日日躁AAAAXXXX国产 | 国产精品久久久久久片| 九九九综合精品| 国产91 丝袜在线播放| 国产精品熟女九色九色蜜臀| 78久久久| 51国产午夜精品视频| 91碰碰| 日产成人久久| 国产区91柔拿会所技师| 加勒比AV天堂| 91高清无码下载| 天美一二三在线观看Av| 我想要 啊 啊 啊| 亚洲少妇中文字幕网址| 久久成人午夜狠狠| 亚洲暴力强奸AV| 国产精品视频播放| 国产午夜福利专区综合| 99亚洲人人| 国产高清自拍视频| 亚洲精品 超碰| 日韩成人精品| 欧美少妇高潮久久91| 91精品女厕偷拍视频| 亚洲人妻熟妇三十三区| 国产中文精品一区二区在线观看| 热久久99999| 日韩人妻播放| 亚洲色图第四色| 囯产操逼片| 97 国产精品| 亚洲欧美精品一区天堂久久 | 蜜桃视频成a人v在线| 天美一区在线| www.色婷婷.com| 男人的天堂久久| 大香蕉啪啪啪| 国产美女口爆吞精视频| 色色青青久久| 啊啊啊com| WWW操逼| 男人的天堂kva| 日韩精品 资源| 最新日日夜夜天天干干| 亚洲资源吧| 蜜臀精品1区2区| 国产精品视频一区二区三区八戒| 久9九综合在线| 中文字幕天天天天天| 精品久久久久久中文字幕三区 | 婷婷色综合欧美日韩| 欧美国产一区二区三区麻豆传媒| 成人综合色网| 中文字幕诱惑制服人妻丝袜美丝袜美 | 欧美性爱中文字幕无线码| 日本2020一区二区| 96国产污污污丝袜| 色妺妺在线视频| 插穴性爱视频在线观看| 2021国产成人精品久久| 97ai亚洲| 亚洲999综合| 天天综合网一91网| 俺去也婷婷| 亚洲导航深夜福利| 中文字幕精品一区欧美| 干B网| www久久精品| 欧美性,色九九| 男人的天堂2010| 亚洲 欧美 手机在线观看| 日韩av免费一级电影| 亚洲图片视频小说| 人人妻天天做天天爽| ,国产乱人伦精品一区二区三区| 日韩av在线播放不卡| 国产麻豆福利av在线播放| 无码137片内射在线影院| 老司机香蕉久久久久| 久久华人网| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 欧洲精品一级二级精品综合视频综合| 大奶的诱惑| 97伊人超碰| 欧美日韩精品久久久久东北老熟妇| 无码久| 欧美日日人人天天| 欧美激情亚洲| 精品欧美老熟女一二区| 黄片免费视频2019| 性影在线视频| 9999免费精彩视频| 日本不卡高清免v欧美日韩在线观看| 伊人成人中文字幕久久网| 精品久久視頻在线| 亚洲AO在线| 欧美性爱第一页久久| 永久免费av无码网站国产app| 日本高清免费一本视频在线观看| 噜噜噜在线视频| 99日精品欧美国产| 亚洲熟妇图片| 少妇精品久久久| 日韩 欧美 国产 麻豆| 色九九九九九九| 国产99999| www.亚洲黄色| 中出后入| 乱伦强奸区日韩| 99精品欧美一区二区三区桃色| 99操碰| 99www.bibizy香蕉资源国产一区二区三区高清 | 黄色视频特级毛片| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 久久啊哟| 97在线视频免费看| 国产精品美女在线一区| 人妻日日夜夜精品| 欧美激情 亚洲色图| 欧美Aⅴ| 五月天激情视频| 久草草一二三四区久久| 天天干天天舔| 青青11操操操操操操操操| 久草在| 精品无码一区二区三区| 欧日韩不卡视.频| 精品国产久久乱码| 午夜一级免费毛片| 亚洲瓯美色图| 亚洲中字幕日本一区二区三区| 日本韩欧美在线播放a| 韩日精品福利视频一区不卡在线免| 啊啊啊爽爽| 激情五月婷婷| 极品人妻少妇综合| 很很干很很操| 日日夜夜免费| 熟妇人妻一区二区三区| 91精品亚洲内射孕妇| 嗯嗯嗯,草死我| 97碰久久| 久久综合18p| 东北少妇高潮zzzz| 91精品人妻一区二区三区蜜桃臀| 台湾一区国产高清在线| 色婷婷成人综合| 亚洲国产美女久久久久| 1区2区3区中文字幕日韩| 久久久新亚洲AV| 精品国产99| 新久久AV| 久久久久久久| 欧美精品第四五页中文字幕在线观看| 成人七区| 亚洲AV色图| 久久国产精品91| 一区二区三区亚洲| 蜜桃传媒视频第一区入口在线看| 亚洲日产专区| 亚洲综合另类小说色区亚洲成av人片在www | 亚洲熟女乱综合一区二区三区| 日韩激情啪啪啪| 疯操AV| 麻豆久久久一区二区| 久久的免费性爱视频| 欧美日动态视频| 91九九| 日日噜噜夜夜狠狠视频无| 97av,com| 亚洲。日韩。欧美| 性爱av网站| 17c嫩草51久久91嫩草| 91国产在线精品| 五月婷丁香| 97资源视频| 一二三区精品视频| 超碰无码五月97| 天堂蜜桃无码视频一区二区| 日本三级网页| 五月天婷婷在线看| 丝袜美腿av女优在线| 久久精品人妻一区二区| 麻豆AV一区二区| 全球成人中文在线| 国产亚洲女v在线观看| 久久久性| 国产精品国产| 亚洲成人综合在线| 亚洲人精品久久久| 日欧操屄视频| 亚洲欧美综合图片| 色婷婷99| 老妇女91| 人妻精品4K4K4K4K4| 精品九九九九| 欧美熟妇乱码在线一区| 久久久精品电影| 欧亚第一综合网| 黄片qw| 亚洲熟女乱熟乱熟妇综合网二区| 欧美一级A片不卡视频。| 精品人妻一区二区三区夜夜| 国产精品麻豆视频网站| 日韩精彩视频| 人妻加勒比东京热| 女欧美一区二三区| 欧美性综合| 抽插无码高清一区| 97超碰日韩| 91嫩草欧美| 欧美一级久久久久久久大片动画| 欧美在线第五页| 99视频只有精品| 超碰午夜| 亚州色阁| 色99在线| 日日操免费视频| 肉丝无码中文高清| 蜜臀少妇一区二区| 亚洲无线码欧洲精品区别| 亚州九九九精品视频| 肉嘟嘟www视频在线观看高清| 久久成人东京热人妻| 日本久久久久久久久| 日熟女| 老鸭窝在线视频播放| 天天影视网综合少妇| 午夜无遮挡男女啪啪视频| 天天干1区2区在线| 久久9亚洲| 激情综合二| 亚洲影视综合| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 天天天天天干夜夜夜夜夜操| 校园春色综合网| 熟女高潮合集-永久久久-成人AV | 97视频在线视频| 乱精品一区字幕二区| 国产精品女生av| 91女日逼| 射丝袜大香蕉| 在线女人91| 强奸乱伦动态污图免费| 国产精品不卡av免费在线观看| 91久久久久久久| 久热色情精品| 超碰人人色| 欧美激情性久久久久久| 男人精品区| 欧美色图人妻| 日本精品人妻少妇一区二区| 3p国产欧美99热| 伊人五月天婷婷| 97色综合中文网| 美女丝袜激情小说| 国产精品亚洲四五区在线观看| 婷婷天堂站| WWW啪啪的com| 国产亚洲深夜激情| 婷婷五月天激情四射| 941超碰| 超碰中文字幕人妻草一区| 91黑丝在线播放| 日韩激情中文字幕有码| 色综合V| 91综合网站| 亚洲资源吧| 色踪合AV| 男人的天堂在线| 抽查国产福利主播| 国内精品999| 六月丁香啪啪| 丰满的三级少妇欧美久久久| 国产女乱淫真高清免费视频| 精品久久无码午夜福利| 97久久久| 91肉丝| 六月色色| 日韩成人大片一区二区| 中国乱伦一区二区| 岛国色情视频在线观看| 午夜福利一区二区影院| 精品人妻一区二区三区四区石在线 | 欧美草草高清日韩视频| 中日韩久久久免费看| 综合网97| 国产和美国毛片| 欧美日韩亚洲五月天婷婷| 国产传媒美日韩av| 色婷婷在线视频精品导航| 加勒比在线视频| 一区二区三区精品黑丝白丝酒店对鸡| 久久久婷| 97天天摸天天碰| 嗯啊不要在线观看嗯啊| 国产精品一区人妻精品阁在线| 99精品网| 国产超碰国产97| 91蜜臀在线久久久久| 97人肏| 91在线欧色| 成人AV素股で擦久久| 日韩中字av一区| 亚洲乱色视频一区、二区在线| 看黑人AV不卡| 日韩人妻无码精品系列| 97频视在线| 激情婷婷丁香| 亚洲无码一区成人免费午夜| 日夜伊人网| 男女无套 免费网站| 日本孕妇一区二区视频操逼免费看| 91免费看一区二区三区| 8x福利精品第一福利视频导航| 中文字幕一区二区三区高清| 丁香六月东京热| 狼人久草| 青娱乐av在线| 久久久111| 国产91丝袜在线播放蜜月| 欧美BT 亚洲色图| 久久69| 久热精品在线国产| 欧美精品久久久久久久久88| 欧美在线视频99| 久久久亚洲精品电影免费看| 亚洲Av噜噜一区二区三区妖精| 超碰视97中文| 啊啊啊爽爽| 26uuu国产亚洲综合| 国产 亚洲 丝袜 制服| 簧片免费看视频| 欧美日韩99精品麻豆传媒| 亚洲大色堂| 亚洲中字慕不卡| 97在线免费观看视频| a一区二区三区乱码在线| 91在线精品| 神马精品视频| 后入式视频国产自| 搡老女人老91二区| AV网站高清无码在线观看| 日本久久精品| 中文字幕-区二区三区四区视频中国| 国模91| 神马九九| 免费强奸av| 久久精品免费| 黑白配性爱AV成| 亚洲成人精品在线一区| 日韩不卡av一二三| 亚洲91网。| 欧成人在线| 岛国片在线播放| www.婷婷| 人妻天天爽| 精品视频在线观看| 日韩AV熟女乱伦| 97这里都是精品| 日本在线视频导航| 日本亚洲vr欧美不卡高清专区| 97视频新免费| 国产又黄又粗又猛大片| 在线99热| 日韩色女精品| 日韩在线欧美精品一区二区| 另类小说五月天| 加勒比伊人影院| 26UUU欧美日本| 婷婷亚洲综合| 一本色道久久综合亚洲二区三区| 日韩在线欧美精品一区二区| 小泽玛利亚一二三| 亚欧操逼片在线观看| 91视频伊人| 欧美黑人XXXⅩ高潮交| 日韩欧美~中文字| 日本免费专区| 青久操| 中文字幕精品探花视频| 成人日韩欧美| 999热日韩精品| 亚洲αv一区二区三区| 少妇69中文| 电家庭影院午夜69久久夜色精品国产69乱 | 九九操久久国产免费视频| 天天操天天干一区二区 | 夜夜做夜夜爽精品视频| 亚州免费啪啪视频| 啊啊好多水| a片 xxxx受爽视频| 中文字幕高清20页视频| 久久久久女教师免费一区| 91精品啪在线观看国产城中村| 日夜干射色啊| 夜夜操美女| 欧洲乱码一区二区| 一区二区三区美女超清| 五月天丁香欧洲日韩| 国色综合天| 久久久久9| 久热精品在线| 女人高潮抽搐喷水视频网站| 九九九只有精品| 成人性爱高清视频免费看| 久久精品视频一区三区小泽玛利亚| 欧美一区二区三区互相| 亚洲 图片 欧美 色图| 精品无码秘 人妻一区二区| 青青国产精品在线| 日韩福利电影网| 偷拍 精品 另类 四区| 百度百度日本操逼| 亚洲国产综合久久久性感熟妇| av激情亚洲五月天| 精彩视频日韩| 精品日韩人妻精品一二三区| 日本一区99| 熟女这里只有精品6| AV在线资源| 国产av又色又爽又黄| 久久久久ab| 免费中文在线| 大香蕉视频啪啪啪啪| 超91综合网| 91视频精品| 美女91在线观看| 激情国产乱伦Av| 天天综合网视频91| 久超碰在| 国产一区二区三区白丝| 麻豆精品三区视频| 九九色逼| 中文乱码字字幕在线第5页| 青久操| 亚洲黄色网址视频| 情色大香蕉| 国模限制级电影| 成人无码在线视频网站| 日本超碰色精品| 久久精品99| 日本操逼视频免费| 丝袜av一区二区三区| 国产强奸超碰AV| 天美传媒婬乱在| 天天看人人操屄犊摸阴| 色综合av男人天堂| 亚洲自拍97| 国产精品欧美激在线| 操B在线观看| 欧综合网| 91性高| 亚洲超碰在线| 青娱乐淫乱1314| 亚洲AV在线资源| 1024久久高清视频| 国产 热久久久久国产精品| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 91久久婷婷| 91露脸熟女专区| 91精品在线播放| 熟女一区二区| 国产精品久久伊人| 日本成人免费一区二区三区| 综合网亚洲1| 日本三级日本三级三级人妇四虎| 中文字幕aⅴ在线视频| 91少妇人妻| 日本孕妇孕交| 熟妇最新先锋一二三区| 日本日皮视频逼| 老熟女乱伦片| 一本久久久精品| 欧美亚洲美少妇一区二区| 婷婷五月激情综合| 中国少妇XXXX做受| 精品九九九九| 精品无人区麻豆乱码1区2区图片 | 激情文学欧美| 98色网| 国产麻豆一级精品视频| 日韩精品一区二区高清| 天天亚洲| 97国产精品在线观看| 日韩78m视频| 天天操天天射青青草| 色婷婷丁香| 人妻 中文 日韩| 成人a v在线播放免费| 亚洲色图A| 美女骚尻视频| 大香蕉欧美国产日韩高潮| 国产精品91一样| 99热最新网址| 伊人久操| 免费精品人妻一区二区三| 草草草视频在线免费看| 97网色| 色婷婷日韩精品一区二区三区| 330dv亚洲成年视频网| 亚洲AV乱码专区国产噜噜亚洲 | 国产福利精品最新在线| 熟女精品va中文字幕| 伊人网青青| yiqicaoav| 加勒比综合网| 天天亚洲| 欧美性91| 欧美97超碰| 久久αⅴ| 九九热三级片| 久久内射| 东京热综合久久一区二区| 亚洲春色欧美| 激情文学亚洲| 国产精品对白自产拍| 欧美在线干| 大香蕉伊然在亚洲91| 久久一本大香蕉| 少妇精品久久久| 色制服丝袜夫妻av一区| 午夜福利在线视频1000| 成人五月天色网| 亚洲揄拍网| 国产精品熟妇一区二区三| 老汉网| 女人的天堂大香蕉网| 亚州综合色图| 久久6热精品99视频| 亚洲黄色网址| 亚洲久草AV色图| 亚洲第一男人天堂| 久9爱精品| 欧美综合1性辶| 人妻久久一区二区三区 | 国产精品久久久久无码Av网曝门| 日语五十路和六十路亚洲国产精品| 天美精品原创av片国产| 亚洲熟伦熟妇AV无码春色| www久久国产精品| 日婷婷| 欧美强奸乱| 亚洲av强奸乱伦| 五月丁香网站| 丰满少妇人妻久久久久久| 亚洲第一页欧美| 中文字幕AV片| 日韩BBN| 亚洲综合第一页| 国产超碰AV在线精品| 一本一道波多野毛片中文在线| 屁屁影院一区二区三区国产| 人妻AV在线| 久久久久性熟视频| 亚洲成人妻日韩在线| 中日韩久久久免费看| 999久久久九九九九| 亚洲欧洲av影音| 超97在线精品视频| 可以看的av| AV高清一区| 超碰到97情色| 综合久久9| 欧美日韩黄片精品在线| 国产精品久久久久久 百度| 六月丁丁香| 大香蕉国产中文自拍| 日本精品一区二区三| 91殴美| 99国产在线 精品 视频| 亚洲欧美成人在线| 色婷婷蜜臀av| 亚洲情色 自拍| 欧美的性爱网站免费| www.色婷婷色综合| 9热9热综合网| 精品丰满熟妇人妻一区| 国产精品福利资源在线尤物| 日韩亚洲Av人人夜夜澡人人爽| 大香蕉伊人色偷偷在线| 60秒免费小视频| 夜夜欢天天干| 天天视频黄网站| 伊人综合色网| 中文字幕精品亚洲熟女| 成人五月天丁香激情综合| 成人性爱高清视频免费看| 啊好大好舒服| 中文字幕熟女人妻丝袜丝| 欧美日韩*字幕一区| 色五月激情网| 精品九九九九九九九九九| 99热这里只有精品18| 在线看片国产精品每日更新| 美女人妻色网站| 五月天九九日国产精品一区二区三区| 日韩免费簧片| AV 少妇 人妻 偷拍| 亚洲色图 综合| 亚洲国产丝袜熟女av| 国产精品视频精品一二| 蜜臀99999| 97色97干| 久热这里| 呻吟 欧美 日本 中出| 囯戸精品高潮呻吟旡码| 国产熟女少妇一区| 亚州,欧美在线| 少妇xx精品| 美女97超碰| 操东北女人| 丁香五月大香蕉| 天天拍天| 国产成年精品高清在线观看91| 人妻少妇蜜桃视频欧美一区| 久久宗合97| 秋霞无码av鲁丝片一区| 欧美一二在线| 一二三区操逼国产91| 屌逼传媒| 9精品久久久久| 黄片免费看黄片免费看| 日韩精品操少妇| 亚洲国产一级黄色视频| 女人爽到高潮久久久| 久草电影网| 国产精品嫩草影院免费| 九九九综合精品| 囯产精品久久久久久久久久二区三区| 91性高潮久久久久久久久| 亚州 综合 色图| 伊人网免费视频| 欧美极品女人的天堂| 男人综合网| 激情丁香五月| 国产美女91| 丁香啪啪| 在线综合 亚洲 欧美中文字幕 | 99热99re超碰精品| 综合 亚洲 欧美| 99国产人成精品| 婷婷人妻激情| 99啪啪视频| 黄色成年| 色婷婷五月综合| 中文字幕一区二区三区人妻不卡| 欧美,日韩,亚洲视频| 97超色| 亚洲一本大道中文字幕无码在线| 五月开心久久AV官网| 韩日性爱av| 台湾佬中文娱乐自偷自拍| 深夜福利黄片| 日韩在线人妻网站| 亚洲无码国产探花在线观看| 日韩成人午夜精品久久高潮| 秋霞网—男女啪啪亚洲免费体验区 | 精品日韩人妻视频| 色婷婷综合久久久久中文一区二区| 国产91影院| 99热在线播放| 性天堂| 久久久熟妇熟女国产| 欧美偷拍区| 天天躁狠狠躁av| 人看人人摸人人操| 欧美伦乱| 爽爽淫人网| 精品一区二区国产日韩| 精品视频97| 日本高清_区二区三区| 后入福利视频| 狠狠干,狠狠操| 日韩性爱一级片| 四虎884a| 操屄不卡视频| 97亚洲在线| 性色乱AV一区二区| 久久久亚洲高清不打码| 日韩综合第八区国产精品| 色婷婷综合网站| 九九九网站| 97天天综合网| 熟女人妻一区二区三区| 麻豆成人影音在线| 精品人妻一区二区三区-国产精品 一个人在线看的黄色电影网站 | 久操九九九九| 成人av影院在线观看| 五十路熟女,国产欧美精品区一区二区三区| 国产呦精品一区二区三区下载| 天天伊人| 东京热一区二区三区四区五区六区| 亚洲国产ⅴ高清在线观看| 精品制服美女中文一区二区三区| 亚洲中文字幕网| av一区二区三区不卡| 任我爽在线视频免费观看| 久久艹逼视频| 国产家庭乱伦表演| 97超碰欧美手机在线| 91大学精品激情戏| 国产欧美日韩一区二区三区| 少妇天堂| 激情终合网| 97在线视频观看| 亚洲无线码欧洲精品区别| 欧美黑人168页欧美黑人167| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 日韩/97| 乱伦熟女区| 国产精品99精品视频网站| 美女网站黄页| 嗯嗯啊啊啊好舒服| 欧美一区二区亚洲天堂| 26uuu最新| 老鸭窝在线视频播放| 蜜桃视频一区二区三区在线观看| 思思热影视| 国产亚洲色停停久久99精品91| 国产熟码AV| 欧美天天谢综合网| 九九热AV| 曰韩人妻中文字幕在线| 噜噜瑟| 98精品国产乱码久久久久久| 任你草| a级成人毛片免费视频高清| 日韩欧美加勒比| 伊人视频| 亚洲综合另类小说色区亚洲成av人片在www| 国产尤物在线三区| 久久久久ab| 亚洲精品蜜桃久久久一区二区三区| 自拍鲍鱼一区在线高清观看免费| а√天堂资源官网在线资源| 欧美激情亚洲| 久久综合久色欧美综合狠狠| 欧美日韩情色一区二区| 97人人模人人爽人人| 老熟女乱子伦中文字幕一区二区| 亚洲一区二区三区婷婷| 亚洲 中文 欧美 日韩 在线| 亚州色国| 熟女日韩| 91爽啪| 婷婷综合| 欧美特大黄一级片片免费| 懂色av色欲av蜜臀av| 思思热在线视频免费| 久久嫩草| 国产91美女视频| 后入日本1234| 久久久久ab| 欧美激情片一区二区| 欧美日韩国产中文精品字幕自在自线,| 日韩AV一起草| 五月天黄色激情视频| 欧美极品性爱天天射| 中国操逼无码| 五月丁香黄色网| 国产精品人妻免费精品| 一区二区三区一亚洲中文字幕、综合区灬 | 精品人妻二区三区| 不卡在线一区,精品一区二区三区中| 思思热免费视频观看| 亚洲一卡2卡3卡4卡乱码网站| 国产一区二区三三视频| 视频一区二区免费在线| 欧美999| 久久性爱视频免费看| 国产精品自拍视频| 97久久网| A 天堂| 免费视频在线一区二区不卡| 啪啪综合网| 84YTCOM性无码| 欧美极品美女aaaaaa级黄片| 亚洲天堂男人| 香港澳门日本三级网站| 国产美女口爆吞精视频| 日本影视久久免费| 日本韩国国产精品一区| 黄人人操人人操| 性爱网站一区二区| 精品国产一区二区三区四区在线看 | 日韩三级在线观看网站| 免费中文综合精品| 亚洲国产精品9999在线观看| 人人干黄色| 91精品国产日韩欧美综合| 青娱乐国产精品| 成人三一级一片aaa| 国产中文字幕曰本毛片| 亚洲第一在线视频| 欧美视频一区二区在线| 老子午夜伦不卡影院| 91丨九色丨国产丨人妻在线 | 91 亚欧| 丝袜AV一区二区三区| 深夜福利黄片| 韩三级a视频在线观看| 免费在线黄片视频| 亚洲啪啪性视频| 91精品综合久久久久久五月丁香| 懂色AV一区二区三区| 天天弄欧美| 大香蕉欧美伊| 蜜臀th| 麻豆成人影音在线| 日韩欧洲操屄视频| 免费一级特黄特色大片在线观看看| www.国产高潮精品| 超91综合网| 麻豆福利视频导航| 91网站18+| 亚欧成人一级片在线播放| 国产亚洲日韩欧| 久久毛卡| 小少妇| 国产精品高潮久久AV| 超碰在线第一页| 国产精品久久久久婷婷二区次| 国模无码人体一区二区三| 欧美十八禁网站| 色婷婷狠狠| 欧美人妻色| 理论久久婷婷网8| 亚洲精品自拍| 911粉嫩人妻| 日韩一区二区熟女| 亚洲熟妇白浆无码AV| 高清无码人妻久久久一区二区三区aⅴ| 四虎午夜影院| 婷婷久热| 春色校园综合网| 性欧美| 无遮挡一级毛片视频免费的| aaa一级黄片| 97网址www| 亚洲乱熟女一区二区| 高清国产无码av| 欧美成人午夜免费福利785| 精品久久99| 欲综合网| 亚洲欧洲综合成人av一区| 国产免费久久久久| 日韩一级欧美一级国产一级台湾 | 一区二区精品更新提醒| 91n免费处女| 搡老女人老91二区| 日韩不卡在线一区二区| 日韩偷拍色图| 少妇人妻在线| 97爱爱爱| 蜜乳AV网址| 国产精品久久久久绯色| 黄站在线免费观看| av毛片aaaaa免费看| 色婷婷亚洲婷婷| 九区国产| 日韩成人私密一级精品av| 亚洲AV无码成人精品久久| 97色97好| 91骚熟女| 亚洲第2页| 久偷拍| 亚洲超碰97| 超碰av在线| 亚洲999综合| 先锋影音av先锋一区| 欧美夜夜狠| 青青操日韩| 波多野结衣一级视频| 久久综合日韩亚洲欧美| 日本韩国五十路六十路七十路老熟女作爱视频网站 | 九九九久久久W精品| 无码精品一区二区三区潘金莲| 精品久久久久瑟瑟| 欧美在线天堂| 婷婷影院入口| AV中文字幕剧情1区2区3| 亚洲春色欧美激情自拍| 成 人 影视 一区 二区 三区 四区 | 日本加勒比无码专区一二三| 岛国福利在线精品播放| 日本久久久久久久久| 理论久久婷婷网8| 亚洲操人| 精品二区三四区五电影 | 久久国产熟女影院| 亚洲91极品| 超碰九7| 天天爽爽爽爽| 亚洲色图欧美| 五月丁香大香蕉| 精品玖九九久|