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

ARTICLE DETAIL

資訊詳情

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

基于Hadoop和Spark的信貸風(fēng)控系統(tǒng)架構(gòu)與落地實(shí)踐

基于Hadoop和Spark的信貸風(fēng)控系統(tǒng)架構(gòu)與落地實(shí)踐 簡(jiǎn)介面向大數(shù)據(jù)金融信貸風(fēng)控領(lǐng)域?qū)W習(xí)者和畢業(yè)設(shè)計(jì)開發(fā)者的完整項(xiàng)目源碼包基于Hadoop與Spark技術(shù)棧實(shí)現(xiàn)信貸風(fēng)險(xiǎn)控制系統(tǒng)覆蓋數(shù)據(jù)接入、流式處理、風(fēng)控邏輯及可視化等環(huán)節(jié)適合課程設(shè)計(jì)、畢設(shè)或項(xiàng)目初期演示。壓縮包內(nèi)共69個(gè)文件以36個(gè)Java源碼、8個(gè)Scala源碼為主配合12個(gè)XML配置、5個(gè)properties屬性文件、SQL腳本及H5前端JS等整體約58KB工程結(jié)構(gòu)清晰便于按功能模塊查閱。已有325人學(xué)習(xí)下載代碼均測(cè)試運(yùn)行成功答辯平均分達(dá)96分并提供遠(yuǎn)程教學(xué)支持。參考README與數(shù)據(jù)庫(kù)腳本即可快速搭建環(huán)境重點(diǎn)理解Spark Streaming實(shí)時(shí)數(shù)據(jù)接入、MyBatis映射配置以及風(fēng)控流程設(shè)計(jì)等實(shí)踐要點(diǎn)下載后可直接導(dǎo)入IDE運(yùn)行調(diào)試便于二次開發(fā)。1. 基于Hadoop、Spark的信貸風(fēng)控系統(tǒng)在解決什么先看清它要扛下的數(shù)據(jù)量做信貸業(yè)務(wù)的同學(xué)都熟悉這個(gè)畫面一天涌入幾十萬(wàn)筆申請(qǐng)每筆申請(qǐng)背后是用戶基本信息、多頭借貸記錄、設(shè)備指紋、APP行為軌跡、第三方黑名單光原始字段就上百個(gè)。傳統(tǒng)MySQL單庫(kù)撐死幾千QPS十幾張表做一次join直接超時(shí)更別提把一年甚至三年的歷史數(shù)據(jù)拉出來(lái)做特征回溯?;贖adoop、Spark的大數(shù)據(jù)金融信貸風(fēng)控系統(tǒng)核心就是把數(shù)據(jù)存儲(chǔ)和特征計(jì)算搬到分布式框架上HDFS承接海量明細(xì)數(shù)據(jù)Spark跑離線特征工程、批量評(píng)分和模型訓(xùn)練再配合規(guī)則引擎處理實(shí)時(shí)審批決策。它解決的是三個(gè)具體問題——數(shù)據(jù)存不下、特征算不動(dòng)、風(fēng)險(xiǎn)評(píng)分出不來(lái)。適合正在做信貸技術(shù)選型的工程師也適合高校大數(shù)據(jù)方向拿一個(gè)完整項(xiàng)目做課程設(shè)計(jì)的同學(xué)。你先搞清楚這套系統(tǒng)的數(shù)據(jù)鏈路和關(guān)鍵取舍再去看源碼和文檔效率會(huì)高很多。2. 架構(gòu)設(shè)計(jì)與技術(shù)選型為什么是Hadoop加Spark而不是其他組合2.1 先做減法哪些方案被排除理由是什么常見的第一反應(yīng)是用MySQL加定時(shí)任務(wù)搞定一切。但在信貸風(fēng)控場(chǎng)景里原始數(shù)據(jù)里有用戶授權(quán)讀取的運(yùn)營(yíng)商通話詳單、電商消費(fèi)記錄、社保公積金流水單用戶每月產(chǎn)生的明細(xì)記錄就有幾百條百萬(wàn)用戶就是幾億行。MySQL單表過億之后即使加了索引復(fù)雜的聚合查詢也要幾十秒甚至分鐘級(jí)根本撐不住風(fēng)控調(diào)參時(shí)反反復(fù)復(fù)的特征回溯。純Flink流處理方案也是一個(gè)選擇但風(fēng)控場(chǎng)景里真正耗費(fèi)算力的不是實(shí)時(shí)計(jì)算本身而是全量數(shù)據(jù)的批量特征計(jì)算、模型訓(xùn)練和離線回測(cè)。Flink擅長(zhǎng)的是秒級(jí)窗口內(nèi)的實(shí)時(shí)計(jì)算把這部分任務(wù)硬塞給Flink集群成本會(huì)翻很多倍而且Flink對(duì)狀態(tài)后端的管理也比Spark的批處理模型復(fù)雜。Hadoop加Spark是更成熟的配合方式HDFS做分布式存儲(chǔ)底座Spark跑內(nèi)存計(jì)算MapReduce留作極重的歷史回溯兜底任務(wù)。這套組合在金融行業(yè)被驗(yàn)證了超過十年招聘市場(chǎng)上也確實(shí)大量崗位要求這兩項(xiàng)技術(shù)。2.2 總體架構(gòu)五層數(shù)據(jù)流和一個(gè)核心整套系統(tǒng)的數(shù)據(jù)流可以拆成五個(gè)層級(jí)采集層Flume采集服務(wù)器日志Kafka承接業(yè)務(wù)系統(tǒng)實(shí)時(shí)推送的申請(qǐng)事件兩份數(shù)據(jù)最終都落到HDFS。存儲(chǔ)層HDFS存放原始日志和數(shù)倉(cāng)各層明細(xì)數(shù)據(jù)HBase用來(lái)存實(shí)時(shí)特征結(jié)果和反欺詐名單支持毫秒級(jí)查詢。計(jì)算層Spark負(fù)責(zé)離線批處理、特征工程、模型訓(xùn)練Hadoop MapReduce處理極端耗時(shí)的全量回溯任務(wù)。服務(wù)層規(guī)則引擎加載黑名單、硬性規(guī)則進(jìn)行第一輪攔截評(píng)分模型對(duì)通過規(guī)則的申請(qǐng)輸出信用評(píng)分封裝成REST接口。展示層運(yùn)營(yíng)后臺(tái)和大屏展示每日申請(qǐng)量、通過率、逾期率、評(píng)分分布等核心指標(biāo)。整個(gè)架構(gòu)的核心是中間那層特征寬表和評(píng)分模型。沒有特征寬表Spark的算力無(wú)處安放沒有評(píng)分模型前面的存儲(chǔ)和計(jì)算只是存了一堆用不上的數(shù)據(jù)。這也是后面兩章要重點(diǎn)展開的部分。2.3 集群部署起點(diǎn)偽分布式搭建、HA 架構(gòu)和生產(chǎn)集群規(guī)劃學(xué)習(xí)階段不建議一上來(lái)就搞多節(jié)點(diǎn)集群。先在單機(jī)做Hadoop偽分布式搭建把HDFS的NameNode和DataNode、YARN的ResourceManager和NodeManager之間的關(guān)系跑明白再用Spark的local模式提交幾個(gè)作業(yè)理解存儲(chǔ)和計(jì)算的協(xié)作邏輯。集群里還有一個(gè)關(guān)鍵組件是ZookeeperHadoop和Zookeeper整合實(shí)戰(zhàn)解決的核心問題是HA模式下NameNode的自動(dòng)故障切換——主NameNode掛了備用節(jié)點(diǎn)要能自動(dòng)頂上否則整個(gè)HDFS就癱了。生產(chǎn)環(huán)境必須上HA架構(gòu)這一點(diǎn)沒有任何商量余地。NameNode是HDFS的單點(diǎn)元數(shù)據(jù)都在它內(nèi)存里一掛全掛。Zookeeper負(fù)責(zé)協(xié)調(diào)兩個(gè)NameNode的主備狀態(tài)JournalNode負(fù)責(zé)同步編輯日志。生產(chǎn)集群的規(guī)模按數(shù)據(jù)量倒推1000萬(wàn)級(jí)注冊(cè)用戶每天新增日志約200GBKeep一個(gè)50個(gè)節(jié)點(diǎn)左右的集群存儲(chǔ)和計(jì)算基本夠用。節(jié)點(diǎn)規(guī)格建議是每臺(tái)32GB內(nèi)存、8核CPU、4塊4TB硬盤這樣的配置在大多數(shù)信貸業(yè)務(wù)里能從業(yè)務(wù)初期撐到中期。規(guī)模再大的話要考慮的是Spark任務(wù)的資源隔離而不是繼續(xù)無(wú)限加節(jié)點(diǎn)。3. 數(shù)據(jù)接入與存儲(chǔ)從原始JSON到可查詢的特征寬表3.1 Spark中讀取JSON日志的兩種姿勢(shì)和一個(gè)關(guān)鍵坑業(yè)務(wù)系統(tǒng)上報(bào)的日志絕大多數(shù)是JSON格式每條申請(qǐng)記錄一個(gè)JSON文件或者一行一個(gè)JSON。Spark讀取JSON最常見的錯(cuò)誤是讓Spark自己推斷schema數(shù)據(jù)量大時(shí)這個(gè)推斷過程會(huì)觸發(fā)額外的掃描而且碰到包含多種字段形態(tài)的數(shù)據(jù)時(shí)推斷結(jié)果經(jīng)常和你預(yù)期不符——比如金額字段有時(shí)是字符串有時(shí)是數(shù)字Spark默認(rèn)推斷成string或bigint取出來(lái)才發(fā)現(xiàn)類型不對(duì)。我一般會(huì)直接在讀取時(shí)顯式指定schema代價(jià)是維護(hù)一個(gè)schema定義但換來(lái)的是穩(wěn)定性和可預(yù)測(cè)性。典型的讀取代碼長(zhǎng)這樣from pyspark.sql import SparkSession from pyspark.sql.types import StructType, StructField, StringType, LongType, DoubleType, TimestampType spark SparkSession.builder \ .appName(credit_json_etl) \ .config(spark.sql.shuffle.partitions, 200) \ .enableHiveSupport() \ .getOrCreate() # 顯式定義schema避免Spark自己推導(dǎo)導(dǎo)致的類型漂移 schema StructType([ StructField(user_id, StringType(), True), StructField(apply_time, TimestampType(), True), StructField(loan_amount, DoubleType(), True), StructField(device_id, StringType(), True), StructField(channel, StringType(), True), StructField(extra_info, StringType(), True) # 原始字段先保留后續(xù)解析 ]) # 讀取HDFS上的原始JSON目錄按天分區(qū) raw_df spark.read \ .option(multiline, false) \ .schema(schema) \ .json(/data/raw/credit_apply/dt2024-01-01/) raw_df.printSchema() raw_df.show(5, truncateFalse)這段代碼里multiline參數(shù)要按實(shí)際數(shù)據(jù)格式設(shè)置。每行一個(gè)JSON對(duì)象時(shí)設(shè)為false整個(gè)文件是一個(gè)大JSON數(shù)組時(shí)設(shè)為true。shuffle.partitions設(shè)置成200是一個(gè)比較保守的起步值它控制了Spark執(zhí)行shuffle操作時(shí)的分區(qū)數(shù)量數(shù)據(jù)量大的時(shí)候這個(gè)值設(shè)置得太小單個(gè)任務(wù)處理的數(shù)據(jù)過多很容易撐爆executor內(nèi)存。3.2 數(shù)倉(cāng)分層ODS、DWD、ADS三層的建模思路原始數(shù)據(jù)直接拿來(lái)算特征是不現(xiàn)實(shí)的JSON里嵌套的字段解析要消耗大量計(jì)算資源而且重復(fù)解析會(huì)有一致性問題。標(biāo)準(zhǔn)做法是建立三層數(shù)倉(cāng)ODS層原樣保留原始JSONDWD層做清洗、脫敏、解析字段ADS層做特征寬表。ODS層就是上面讀取的原始數(shù)據(jù)不做任何加工只按天分區(qū)。DWD層用Spark SQL做清洗和解析典型做法是用get_json_object把JSON里的嵌套字段提取出來(lái)同時(shí)對(duì)身份證號(hào)、手機(jī)號(hào)做脫敏處理。這一步很關(guān)鍵信貸數(shù)據(jù)涉及個(gè)人敏感信息審計(jì)時(shí)會(huì)要求你證明原始數(shù)據(jù)沒有直接暴露在計(jì)算鏈路里。DWD層建表語(yǔ)句參考CREATE EXTERNAL TABLE IF NOT EXISTS dwd_credit_apply ( user_id STRING COMMENT 用戶ID, apply_time TIMESTAMP COMMENT 申請(qǐng)時(shí)間, loan_amount DOUBLE COMMENT 申請(qǐng)金額, loan_term INT COMMENT 申請(qǐng)期限月, device_brand STRING COMMENT 設(shè)備品牌, channel_code STRING COMMENT 渠道編碼, city_level INT COMMENT 城市等級(jí) 1-5, -- 脫敏后的手機(jī)號(hào)只保留前3后4 mobile_masked STRING COMMENT 脫敏手機(jī)號(hào) ) PARTITIONED BY (dt STRING) STORED AS PARQUET LOCATION /warehouse/dwd/credit_apply; -- 按天覆蓋寫入分區(qū) INSERT OVERWRITE TABLE dwd_credit_apply PARTITION (dt2024-01-01) SELECT user_id, apply_time, CAST(loan_amount AS DOUBLE), CAST(loan_term AS INT), get_json_object(extra_info, $.device_brand) AS device_brand, get_json_object(extra_info, $.channel_code) AS channel_code, get_json_object(extra_info, $.city_level) AS city_level, concat(substr(mobile, 1, 3), ****, substr(mobile, 8, 4)) AS mobile_masked FROM /data/raw/credit_apply/dt2024-01-01;建表時(shí)用STORED AS PARQUET的列式存儲(chǔ)查詢時(shí)只讀取需要的列IO量可以降一半以上對(duì)特征計(jì)算階段的多列讀取特別友好。INSERT OVERWRITE的寫法保證分區(qū)內(nèi)數(shù)據(jù)是冪等的重跑任務(wù)不會(huì)產(chǎn)生重復(fù)數(shù)據(jù)。3.3 特征寬表為什么要寬以及怎么join才不翻車特征計(jì)算階段最忌諱的是每次評(píng)分都去臨時(shí)join十幾張表。業(yè)界標(biāo)準(zhǔn)做法是預(yù)先算好一張?zhí)卣鲗挶怼恳恍惺且粋€(gè)用戶每一列是一個(gè)特征。寬表的好處在于訓(xùn)練模型時(shí)直接把這張表喂給機(jī)器學(xué)習(xí)算法不需要再處理join邏輯實(shí)時(shí)評(píng)分時(shí)查詢一次就能拿到一個(gè)用戶的全部特征。構(gòu)建寬表最常見的坑是join數(shù)據(jù)傾斜。比如用用戶維度join授信記錄某幾個(gè)用戶借款次數(shù)上千次會(huì)導(dǎo)致對(duì)應(yīng)reduce任務(wù)數(shù)據(jù)量遠(yuǎn)大于其他任務(wù)表現(xiàn)為整體任務(wù)卡在99%。緩解手段有三個(gè)先把用戶維度的數(shù)據(jù)做聚合壓到每用戶一條對(duì)join key做加鹽處理分散熱點(diǎn)或者干脆把低頻維度做成廣播變量。第三個(gè)手段在Spark里操作最簡(jiǎn)單核心代碼如下from pyspark.sql import functions as F # 用戶基本信息表數(shù)據(jù)量在幾十萬(wàn)量級(jí)可以廣播 user_info spark.table(dwd_user_info) user_features spark.table(dwd_credit_apply).groupBy(user_id).agg( F.count(user_id).alias(apply_cnt), F.avg(loan_amount).alias(avg_loan_amount), F.max(loan_amount).alias(max_loan_amount) ) # 廣播小表避免shuffle user_features_with_info user_features.join( broadcast(user_info), onuser_id, howleft ) # 覆蓋寫入ADS特征寬表按天全量刷新 user_features_with_info.write \ .mode(overwrite) \ .format(parquet) \ .save(/warehouse/ads/user_feature_wide_table)這段代碼里broadcast會(huì)把小表分發(fā)到每個(gè)executor的內(nèi)存中join時(shí)不需要做shuffle這是Spark里最廉價(jià)的性能優(yōu)化手段之一。寬表的刷新策略按業(yè)務(wù)容忍度來(lái)定信貸場(chǎng)景通常T1刷新就行——當(dāng)天凌晨用前一天的數(shù)據(jù)重算全量寬表第二天白天做實(shí)時(shí)查詢時(shí)讀的就是最新版本。4. 特征工程與風(fēng)險(xiǎn)模型把Spark算力變成授信分4.1 特征計(jì)算與清洗Spark DataFrame的標(biāo)準(zhǔn)化數(shù)據(jù)處理特征寬表建好之后下一步是特征工程——把原始字段變成模型能用的數(shù)值特征。信貸風(fēng)控常見的特征類型包括用戶基本屬性年齡、城市等級(jí)、職業(yè)類別、借款行為申請(qǐng)次數(shù)、平均借款金額、借貸間隔、設(shè)備信息設(shè)備使用時(shí)長(zhǎng)、越獄/root標(biāo)記、外部征信數(shù)據(jù)逾期次數(shù)、查詢次數(shù)。這些特征不能直接進(jìn)模型要做三類處理缺失值填充、異常值截?cái)?、?shù)值標(biāo)準(zhǔn)化。Spark DataFrame做這套處理非常順手代碼示例如下from pyspark.sql import functions as F from pyspark.sql.functions import col # 讀取特征寬表 feature_df spark.read.parquet(/warehouse/ads/user_feature_wide_table) # 填充缺失值數(shù)值列用中位數(shù)類別列用unknown stat feature_df.select( F.expr(percentile_approx(age, 0.5)).alias(age_median) ).collect()[0] feature_df feature_df.fillna({ age: stat[age_median], city_level: 3, # 缺失城市等級(jí)默認(rèn)按三線城市處理 device_use_days: 0, channel_code: unknown }) # 異常值截?cái)喑^99分位數(shù)的值直接截?cái)喾乐箻O端值拉偏模型 quantile_age feature_df.approxQuantile(age, [0.99], 0.01)[0] quantile_amount feature_df.approxQuantile(loan_amount, [0.99], 0.01)[0] feature_df feature_df.withColumn( age, F.least(col(age), F.lit(quantile_age)) ).withColumn( loan_amount, F.least(col(loan_amount), F.lit(quantile_amount)) ) # 標(biāo)準(zhǔn)化Z-score讓不同量綱的特征處于同一尺度 mu_age, std_age feature_df.select( F.mean(age).alias(mu), F.stddev(age).alias(std) ).collect()[0] feature_df feature_df.withColumn( age_zscore, (col(age) - mu_age) / std_age )approxQuantile是Spark提供的近似分位數(shù)計(jì)算它不需要全量排序用抽樣估算對(duì)于分位數(shù)這種統(tǒng)計(jì)量精度完全夠。標(biāo)準(zhǔn)化用的是Z-score對(duì)于邏輯回歸這類線性模型是必須的不標(biāo)準(zhǔn)化的話數(shù)值大的特征會(huì)在梯度計(jì)算中占主導(dǎo)地位。對(duì)于樹模型標(biāo)準(zhǔn)化非必需但做了也沒有副作用所以我一般統(tǒng)一做掉。4.2 規(guī)則引擎和評(píng)分卡模型怎么配合有了特征接下來(lái)是關(guān)鍵問題規(guī)則引擎和評(píng)分卡模型怎么分工。規(guī)則引擎處理那些一刀切的硬性風(fēng)險(xiǎn)——命中黑名單直接拒、申請(qǐng)金額超過限額直接拒、同一設(shè)備一天申請(qǐng)超過5次直接拒。規(guī)則引擎速度快、可解釋性強(qiáng)、修改即時(shí)生效適合做第一道攔截。評(píng)分卡模型則處理那些介于中間的申請(qǐng)用一個(gè)分?jǐn)?shù)來(lái)度量違約概率。評(píng)分卡最底層的模型通常是邏輯回歸因?yàn)榫€性模型天然具備可解釋性。在實(shí)際落地中為了更好處理非線性關(guān)系會(huì)先對(duì)連續(xù)特征做WOE分箱。這里用pyspark.ml.feature里的相關(guān)組件來(lái)實(shí)現(xiàn)from pyspark.ml.feature import QuantileDiscretizer # 對(duì)連續(xù)特征做分箱讓模型學(xué)習(xí)非線性關(guān)系 discretizer QuantileDiscretizer( numBuckets10, inputColage, outputColage_bucket ) # 分箱結(jié)果轉(zhuǎn)成OneHot編碼后輸入邏輯回歸 from pyspark.ml.feature import OneHotEncoder ohe OneHotEncoder( inputCols[age_bucket, city_level_bucket], outputCols[age_ohe, city_ohe] ) # 組裝特征向量并訓(xùn)練邏輯回歸 from pyspark.ml.classification import LogisticRegression from pyspark.ml.feature import VectorAssembler assembler VectorAssembler( inputCols[age_ohe, city_ohe, apply_cnt, avg_loan_amount], outputColfeatures_vector ) lr LogisticRegression( featuresColfeatures_vector, labelColis_default, maxIter100, regParam0.01 )訓(xùn)練做完之后把模型的系數(shù)換算成分?jǐn)?shù)每個(gè)分箱對(duì)應(yīng)一個(gè)分?jǐn)?shù)加總后映射到300-900分的信用分區(qū)間。分?jǐn)?shù)越高違約概率越低。這個(gè)分?jǐn)?shù)段業(yè)內(nèi)默認(rèn)是300分以下堅(jiān)決拒、650分以上直接放、中間走人工復(fù)核。模型訓(xùn)練迭代的次數(shù)不用追求太多信貸場(chǎng)景里模型更新周期通常是季度級(jí)別特征是主導(dǎo)模型算法排第二。4.3 讓評(píng)分接口算得快Spark內(nèi)存參數(shù)與提交配置評(píng)分模型落地到線上服務(wù)常見的方式是把模型跑在Spark Streaming或者Structured Streaming上接Kafka里的申請(qǐng)事件流式計(jì)算實(shí)時(shí)給分。這時(shí)候性能參數(shù)的重要性不亞于模型本身的準(zhǔn)確率。Spark Streaming消費(fèi)Kafka數(shù)據(jù)做評(píng)分的典型配置參數(shù)如下from pyspark.sql import SparkSession spark SparkSession.builder \ .appName(credit_scoring_streaming) \ .config(spark.executor.memory, 4g) \ .config(spark.executor.cores, 4) \ .config(spark.sql.shuffle.partitions, 400) \ .config(spark.streaming.kafka.maxRatePerPartition, 1000) \ .config(spark.sql.streaming.checkpointLocation, /warehouse/checkpoint/credit_scoring) \ .getOrCreate()spark.executor.memory決定了每個(gè)executor的JVM堆內(nèi)存4g是生產(chǎn)環(huán)境的保守起步值別忘了堆外內(nèi)存實(shí)際申請(qǐng)的物理內(nèi)存要比這個(gè)值多20%左右。maxRatePerPartition限制每個(gè)Kafka分區(qū)每秒最多消費(fèi)1000條防止流量突增直接把集群打爆。checkpointLocation一定要配流式任務(wù)的進(jìn)度元數(shù)據(jù)全部存在這里不配的話任務(wù)重啟后會(huì)丟數(shù)據(jù)或者重復(fù)消費(fèi)。提交作業(yè)的方式也要配套。推薦用spark-submit提交到Y(jié)ARN集群而不是直接spark-submit跑在本地模式。提交命令參考spark-submit \ --master yarn \ --deploy-mode cluster \ --executor-memory 4g \ --executor-cores 4 \ --num-executors 30 \ --conf spark.sql.shuffle.partitions400 \ --packages org.apache.spark:spark-sql-kafka-0-10_2.12:3.2.0 \ credit_scoring_streaming.pynum-executors乘上之前配置的核數(shù)控制著整個(gè)作業(yè)的并行度。核數(shù)從4往上加收益會(huì)快速遞減因?yàn)閠ask調(diào)度和網(wǎng)絡(luò)通信的開銷也在增長(zhǎng)。對(duì)大部分信貸數(shù)據(jù)量級(jí)來(lái)說30個(gè)executor已經(jīng)能滿足秒級(jí)評(píng)分的要求。如果評(píng)分延遲還是壓不下來(lái)先看特征寬表有沒有觸發(fā)不必要的shuffle再考慮加資源這兩者的順序千萬(wàn)別搞反。5. 避坑清單Hadoop和Spark集群落地最常見的5個(gè)翻車現(xiàn)場(chǎng)5.1 數(shù)據(jù)傾斜導(dǎo)致某個(gè)executor內(nèi)存溢出現(xiàn)象Spark作業(yè)卡在某個(gè)stage 99%不動(dòng)日志刷出Container killed on request. Exit code is 143或者直接拋OOM。界面上看有一部分task執(zhí)行時(shí)間異常長(zhǎng)大部分task早就跑完了。原因特征寬表或者中間結(jié)果里某個(gè)key的數(shù)據(jù)量遠(yuǎn)大于其他key。信貸數(shù)據(jù)里最常見的傾斜源是user_id——部分高頻用戶或者渠道商賬號(hào)對(duì)應(yīng)的數(shù)據(jù)量是普通用戶的幾百倍這些數(shù)據(jù)全部落到同一個(gè)分區(qū)把對(duì)應(yīng)的executor打爆。解決優(yōu)先對(duì)傾斜key做過濾或單獨(dú)處理比如單獨(dú)處理借款次數(shù)超過100的用戶如果傾斜程度可控給Spark配置加spark.sql.adaptive.enabledtrue和spark.sql.adaptive.skewJoin.enabledtrueSpark3.0以上的版本開啟后會(huì)自動(dòng)拆分傾斜分區(qū)最后的手段才是加內(nèi)存。這一步的排查速度決定了你的加班時(shí)長(zhǎng)我一般會(huì)把傾斜前后的數(shù)據(jù)量打出來(lái)對(duì)比五分鐘定位。5.2 讓Spark自己推斷JSON的schema慢到懷疑人生現(xiàn)象讀取一個(gè)幾十GB的JSON目錄Spark作業(yè)在讀取階段卡了很久日志顯示一直在掃描文件。原因Spark為了推斷出所有字段的類型需要先完整掃描一遍數(shù)據(jù)然后再真正讀取一遍總共兩遍IO。目錄里文件數(shù)量多、嵌套層級(jí)深的時(shí)候時(shí)間成本非常可觀。另一個(gè)副作用是推斷結(jié)果不穩(wěn)定數(shù)據(jù)形態(tài)稍微一變字段類型就跟著漂。解決第3章已經(jīng)寫過讀取JSON時(shí)用.schema()顯式指定。維護(hù)schema確實(shí)麻煩但比每次任務(wù)跑兩遍要值得多。如果JSON里字段特別多可以先跑一次小樣本推斷出schema然后微調(diào)類型固化到代碼里當(dāng)常量。5.3 小文件過多把NameNode壓垮現(xiàn)象集群沒跑什么大任務(wù)但HDFS的NameNode頻繁告警RPC響應(yīng)延遲飆到幾秒甚至幾十秒。原因上游采集任務(wù)每個(gè)批次只寫幾十MB一天下來(lái)在HDFS上生成了上萬(wàn)個(gè)小文件。NameNode把每個(gè)文件、每個(gè)block的元數(shù)據(jù)都放在內(nèi)存里文件數(shù)量一多內(nèi)存占用上去讀寫請(qǐng)求的響應(yīng)性能直線下降。Spark寫特征寬表時(shí)如果分區(qū)設(shè)置過多且數(shù)據(jù)量不大也會(huì)產(chǎn)生同樣的問題。解決一是上游把小塊數(shù)據(jù)合并成大文件再上傳控制單文件在128MB以上二是對(duì)已有的小文件跑一次合并任務(wù)。Spark側(cè)的設(shè)置是控制輸出分區(qū)數(shù)核心代碼是這樣# 寫特征寬表前先重分區(qū)控制輸出文件數(shù)量 from pyspark.sql import functions as F feature_df \ .repartition(50) \ .write \ .mode(overwrite) \ .format(parquet) \ .save(/warehouse/ads/user_feature_wide_table)repartition(50)把輸出分片收縮到50個(gè)左右每個(gè)文件大約128MB這是一個(gè)平衡NameNode壓力和后續(xù)讀取并行度的折中值。文件太大讀取并行度會(huì)下降太小元數(shù)據(jù)壓力又上來(lái)。5.4 Zookeeper超時(shí)導(dǎo)致HA主備反復(fù)切換現(xiàn)象集群狀態(tài)不穩(wěn)定NameNode頻繁自動(dòng)切換甚至出現(xiàn)雙主或同時(shí)無(wú)人服務(wù)的情況業(yè)務(wù)端隔幾分鐘就報(bào)一次HDFS連接失敗。原因Hadoop和Zookeeper整合實(shí)戰(zhàn)里最常見的一個(gè)坑——NameNode和Zookeeper之間的心跳超時(shí)設(shè)置過短。Zookeeper需要同時(shí)維護(hù)NameNode元數(shù)據(jù)、HBase協(xié)調(diào)、Kafka協(xié)調(diào)多個(gè)角色的會(huì)話任何一次GC暫?;蛘呔W(wǎng)絡(luò)抖動(dòng)超過超時(shí)閾值Zookeeper就會(huì)判定NameNode失聯(lián)觸發(fā)自動(dòng)切換。切換本身又是高開銷操作元數(shù)據(jù)加載需要時(shí)間于是形成切換-搶主-再切換的惡性循環(huán)。解決把zookeeper.session.timeout從默認(rèn)的10秒左右調(diào)大到30秒dfs.namenode.avoid.read.stale.datanode加上讓NameNode對(duì)DataNode的陳舊狀態(tài)容忍度高一些。調(diào)參后的自檢方法是殺掉active節(jié)點(diǎn)的進(jìn)程觀察standby節(jié)點(diǎn)能否在1分鐘內(nèi)接管然后恢復(fù)服務(wù)。這個(gè)動(dòng)作要在業(yè)務(wù)低峰期做不然一個(gè)誤判就直接影響線上審批鏈路。5.5 物理內(nèi)存和容器內(nèi)存對(duì)不上任務(wù)被莫名殺掉現(xiàn)象Spark任務(wù)運(yùn)行到一半executor被YARN強(qiáng)制殺掉錯(cuò)誤日志只有一行Container killed by YARN for exceeding memory limits。明明executor-memory配的不高怎么還被殺。原因Spark申請(qǐng)的內(nèi)存默認(rèn)只算JVM堆內(nèi)內(nèi)存但實(shí)際運(yùn)行時(shí)還有堆外內(nèi)存、線程棧、網(wǎng)絡(luò)緩沖、Python進(jìn)程如果用PySpark占用的內(nèi)存。YARN限制的是整個(gè)容器進(jìn)程的物理內(nèi)存上限。申請(qǐng)4g的時(shí)候?qū)嶋H使用可能已經(jīng)超過5g超過容器上限直接被kill。解決申請(qǐng)內(nèi)存時(shí)預(yù)留20%-30%的buffer給堆外和Python進(jìn)程比如需要4g的堆內(nèi)就配spark.executor.memory4g的同時(shí)配spark.executor.memoryOverhead2g。YARN側(cè)還要開啟內(nèi)存檢測(cè)的寬松模式設(shè)置yarn.nodemanager.vmem-check-enabledfalse只檢查物理內(nèi)存不查虛擬內(nèi)存。這套配置在很多博客里都語(yǔ)焉不詳屬于那種你以為配好了實(shí)際上沒配的玄學(xué)參數(shù)。6. 拿到源代碼和文檔后怎么用先跑通最小閉環(huán)再改出你自己的風(fēng)控系統(tǒng)拿到這套基于Hadoop、Spark的信貸風(fēng)控系統(tǒng)源代碼我建議你按三條線往下推不要上來(lái)就翻模型代碼。第一條線是跑通數(shù)據(jù)鏈路——把生產(chǎn)環(huán)境的數(shù)據(jù)源換成你自己的樣本數(shù)據(jù)哪怕是模擬的100萬(wàn)條先跟著文檔把ODS到DWD的清洗任務(wù)跑完確認(rèn)HDFS上能看到正確的分區(qū)數(shù)據(jù)。第二條線是跑通Spark作業(yè)——把特征寬表的生成腳本執(zhí)行一遍看輸出和文檔里截圖的數(shù)量級(jí)是否對(duì)得上這一步最好在偽分布式或單機(jī)測(cè)試集群上做。第三條線才是模型——用訓(xùn)練腳本跑一遍邏輯回歸打開生成的模型報(bào)告確認(rèn)覆蓋率、區(qū)分度指標(biāo)在合理范圍。我最常踩的坑是把源碼里寫死的HDFS路徑直接拿來(lái)用。文檔里可能是/data/raw/credit_apply你的集群目錄結(jié)構(gòu)不一定一樣而且建表的LOCATION權(quán)限、Hive的warehouse路徑、Spark的checkpoint目錄每一處都要按實(shí)際環(huán)境改一遍。改完之后用一個(gè)小技巧驗(yàn)證完整性跑一次數(shù)據(jù)抽樣統(tǒng)計(jì)對(duì)比源文件的行數(shù)、字段數(shù)、空值率全部對(duì)上再繼續(xù)下一步。至少先斬釘截鐵跑通這個(gè)最小閉環(huán)你一晚上就能把整個(gè)系統(tǒng)的骨架摸清楚剩下的就是把規(guī)則閾值、模型參數(shù)按你的業(yè)務(wù)數(shù)據(jù)重新調(diào)一輪。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
精品成人动漫一区二区| 91AV入口| 中文一区二区婷婷视频| 婷婷久久五月| 亚洲日韩美女中文字幕乱| 九久9精品| 少妇熟女视频一二三区| 久久夜嗨| julia在线观看久久| h在线看免费版在线看| 强奸乱伦Av网| 在线观看成人性爱免费小视频| 人人操人人操人妻人| 精品十三区| 精品国产污一区二区三区| 人人妻人人狠人人| 艹少妇网站| 久久黄色视频一区二区三区| 在线a亚洲视频播放在线| 欧美在线综合| 少好三P| 观看视频图片一区二区三区| 欧美亚洲丝袜美女电影| 中文啪啪视频| 嗯嗯啊中文字幕| 综合色图区| 亚洲无码一二三区| 亚洲日韩美国人妻| 激情啪啪拍91| 日本99视频| 欧美日韩国产色图在线| 欧美人妻一区| 无码抄逼网| 日本日皮视频逼| 日本操逼视频导航| 久久免费精品视频免一| 激情五月天色播| 日韩pv中文| 囯产精品久久久久久久久久梁医生| 人人爽夜夜操| 五十路熟女,国产欧美精品区一区二区三区| 欧美成人贴图| 天天精品| 少妇高潮喷水无套久久久久久| 一区二区中文| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 青木玲在线不卡| 国产资源中文字幕在线| 国产精彩女在线观看视频| 国产精品一区二区校花| 青青草原av| 91精品国产91久久青草| 亚洲黄色| 日本操BAV| 中文字幕精品三级久久久| 日日嗷| 免费a v| 蜜臀亚洲中文| 97er欧美性| 九九黄色视频在线观看| 久久性爱城| 亚洲av综合色| 日韩中文字幕国产| 亚洲 自拍偷拍 欧美| 舔足天天操天天射| 人人操人人93| 激情网色| 日本在线不卡一二区| 久久鲁干| 爱我干综合| 国产成人一级av88| 午夜精品五区| 国产亚洲精品第一最新| 人人人人人人少妇| 人妻精品综合中文字幕在线| 国产亚洲日本| 国产日韩怡红院| 97超碰人人操人人操| 日韩欧美成人午夜福利| 黑人黄片在线免费观看| 99国产精品人妻人伦| 97免费免费视频网| 亚洲国产日韩精品久久久| 中文字幕人妻资源在线| 久操凹凸视频| 亚洲视频一二区| 亚洲日韩乱码中文无码蜜桃臀网站| 伊人精品国产| 国产午夜精品理论片a大结局| 国产无码高清操逼视频| 操老熟女AV| 囯产精品久久久久久久久久梁医生| 曰韩操B| 日韩字幕一区| 黄片qw| 免费在线观看AV无码网站| 麻豆人妻少妇在线免费观看| 亚洲日韩人妻中文字幕一区| 天天综合91在线| 欧美视频中文字幕区| 亚洲黄色a级片| 天天操夜夜操狠很操| 免费无码婬片AAAA片直播色戒| 欧美综合1性辶| 久一区久久蜜桃| 欧美综合91| 七月丁香婷婷| 人人摸.人人色| 欧美日韩另类在线播放| 影音先锋乱| 日本在线激情一区二区三区| 五月天色色网站| 欧美淫穴| 色女免费在线观看视频网址| 天天操天天干美女网址导航| 欧美性爱第1 页| 无码137片内射在线影院| 眼镜人妻101.com| 亚洲精品第一| 天天干天天日天天射黄色大片| 国精品一区二区三| 亚州图片第一页| 97资源久久| 变态乱伦伪娘灌肠一区二区| 韩国一级做A片免费的| www.色五月| 色眯眯av| 久久久久9久久久久| 久久精品国内Av熟女高清| 日本一区二区不卡| 深夜国产一区二区三区在线看| 日韩欧美成人性爱在线| 999精品女人| 97丝袜亚洲在线播放| 欧美日韩性感| 日韩女模中文造逼| 深夜激情| 欧美不卡在线一区二区| 亚洲五码一区二区三区| 中文字幕人妻色偷偷久久皮 | 激情熟女12P| 激情视屏国产乱伦强奸| 国产精品久久久777| 97久久国产精品女不卡| 日韩中文字幕二区| 加勒比少妇AV婷婷六月天超碰超碰| 男人天堂电影院| 成人精品在线观看| 日韩青久久| 久久直播国产| 96精品一区| 亚欧成人中文字幕一区| 91超碰碰在线| a天堂视频| 蜜臀在线看片| 一起草av| 欧美91在线| 中文字幕乱码人妻一区二区三区,99精品| 国产精品不卡少妇白| 91丨九色丨大屁股| 91成人18| 884t在线| 簧片免费看视频| 中国91AV| 美女淫穴| 黄色免费网页无码| 骚货操死你| 亚 欧 美 综合| 欧美熟妇成人一区二区| 五月丁香六月激情| 99色骚| 无码78| 人妻AV 中文字幕的| 试看60秒| 久久在肏| 日韩国产乱子伦App| 亚州综合色| 99久久无色码| 91九九| 五月天亚洲网| 久久久久99999| 国产午夜激片Av毛片不卡| 黄色免费网| 久久夜色一区二区| 91啦人妻| 日韩国产在线观看av| 中文字幕三四五区| 国产十八禁视频| 国产一区二区三区中文字幕| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 探花精品 一区二区| 日本免费一区二区不卡 | 天天干2019| 色九区| 国产一级黄色片在线观看| 人人人干干人人干| 欧美亚洲激情| 亚洲国产精品成人久久蜜臀| 四虎影视国产精品| 破处bbq| 青青草日韩免费观看高清在线| 欧洲Au麻豆| 97干色天堂| 曰本熟女视频| 超碰精品| 性性久久| 亚洲中亚日激情视频| se,,,亚洲欧美| 噜噜噜久久亚洲精品色情| 色噜噜人妻丝袜AV资源| 国产传媒美日韩av| 91美女看B| 亚洲性综合| 97久久精品不卡| 人人妻人人色一区二区三区| 天天摸天天插天天日| 97在线看| 人妻丰满熟妇av无码区蜜桃| 日韩大香蕉AV影片| 91精品导航| 亚洲精品成人| 加勒比性爱成人在线| 成人性爱AV在线免费观看| 萌白酱自拍视频| 久久精品国产精品亚洲艾通辽熟妇 | 色丁香五月婷婷| 久久久久久久78| 青青草大香蕉视频| 91高跟美女在线播放| 嫩草美女久久| 天天日天天爽| 亚洲影视高清三级-草1024榴社区入口-品爱AV| 欧美97网| 亚洲国产ⅴ高清在线观看| 亚洲欧美国产va在线播放频| 操逼天美3区| 国产97色在线| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 99少妇| 日韩激情毛片一级久久久| 国产美女自拍视频| 激情另类激情| 吉川爱美亚洲二区在线| 欧美乱色| 久久成人精品| 曰韩中文人妻视频| 日本性爰一道本| 不卡啪啪视频| 久久久久久夜夜夜夜夜| 超碰碰激情97+久| 亚洲色图日韩丝袜制服一区二区五月在线| 超碰久超碰久| 色综合久久av| 日韩精彩免费| 欧美在线亚洲| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 天美av在线观看| 天天综合网久久ww| 欧美亚洲手机在线| 免费精品人妻一区二区三| 中文字幕狠狠玩| 宅男午夜在线视频| 2020中文字幕在线观看| 艹我哪美一区无码| 97久久久久久久久久| 国产精品内射婷婷一级二| 国产强奸超碰AV| 九九久久首页| V A在线| 日韩人妻 中文字幕| 国产精品 亚洲情色| 欧美色图在线视频少妇| 久草视频观看视频在线| 少妇极品熟妇人妻无码| 国产色图乱伦| 天天操av懂色| 久久久人妻| 熟女被操视频网址| 尤物视频偷拍免费| 色五天伊人| 婷婷色香| 欧美福利视频啊啊啊啊| 亚洲欧美一区二区三区在钱蜜桃| 好爽视频在线观看| 午夜人妻精品综合在线| 啊啊啊慢点| 色色色99| 一本色道熟妇| 日本精品人妻少妇一区二区| 另类TS人妖一区二区三区| 欧美中文字幕男人天堂久久精品| 搡老女人老熟女91老熟女综合网| 欧美99热| 人人操人人肉久久精品| 人妻激情偷乱视频一区二区三区| 99re黄 | 伊人 俄罗斯 a v| 人人操人人爽人人操人人| 91女在线观看| 欧美一级黄色免费专区| 搞中出视频在线观看| 国产极品粉嫩馒头一线天av| 一级黄碟在线观看| www.伪伪| 日韩91网站| 亚洲.欧美.丝袜.中文.综合| 91狠狠| 天天弄欧美| 国产精品原创巨作?v网站| 亚洲天堂自拍| 伊人黄色视频免费观看| 校园春色AV天堂| 国产精品交换一区二区| 成人一二| 国产熟女自拍| 五月天丁香欧洲日韩| 午夜舔阴达高潮视频免费看| 亚洲欧美日韩中文久久自慰| 免费看日产一区二区三区| 中文三一区| 亚洲AV免费在线观看| 天天谢天天干| 中文字幕一区二区三区人妻不卡 | 成人美女av| 精久久久| 尤物av网站| 欧美性爱三区二区| 天天做天天爱| 果冻传媒A片一二三区| 日本人妻A片成人免费看片| 天天拍夜夜| 性老妇一区二区三区| 91强热人妻| 亚洲国产熟妇综合色专区| 亚洲污一污二| 婷婷五月天福利| 蜜乳中文字幕a在线| 天堂精品| 99国产精品久久久在线播放| 99热综合| 亚洲第2页| 亚洲欧美另类图片| julia国产在线 | 欧美综合天堂| 精品人妻高清麻豆av| 97在线国产精品| 亚洲图片偷拍视频区| 在线日韩精品一区二区三区| 97精品一区| 国产黄色动态精品| 精品久久久av| 五月天色综合| 日本免费亚洲欧美| 亚洲一区二区中文字幕| www..com操老师| 亚洲国产综合图区中文字幕| 综合网亚洲在线| 亚洲在高跟鞋自慰久久在色线| 婷婷色婷婷| 亚洲免费人妻在| 老熟女搡BBBB搡BBBB视频| 风韵犹存大大大大香蕉 | 国产精品午夜福利亚洲综合网| 婷婷8月天青娱乐| 六月婷婷一区二区三区| 啊啊啊啊啊好大好舒服想要| 久久av色| 国产嫩草精品A88AV在线| 国产玖玖| 白嫩嫩一区| 五月婷婷激情综合| 久操视频免费在线观看| 大香蕉在线视频15| 欧美综合97www| 激情五月天网站| 国产激情久久| 成人精品在线| 午夜大香蕉| 日本福利二区视频| 99操碰| 国产区性爱在线视频秋霞豆| 久久东京伊人一本到鬼色| 中文字幕一区二区三区四区在线视频| 青娱乐福利99| 大屁股人妻女教师撅着屁股| 84YTCOM性无码| 色汉综合| 在线人成亚洲视频免费观看| 色狠狠 - 百度| 国产精品久久久久综合| 综合色色网| 大地资源在线观看中文第二页| 男人的天堂一区三区| 日韩乱伦视频| 91青视频| 青青草五月天| 精品一区二区三区18| 亚洲图片欧美| 男女激烈网站最新| 亚洲欧洲网站免费观看| 九九热男人天堂| 99操| 欧美淫乱视频| 97日韩| 日韩性爱小视频| 亚洲免费成人在线高清无码视频| 三级三久久线久久99久目本WW| 久热大香蕉| 日韩欧美视频青青| 做爱福利视频一区二区| www欧美91| 麻豆国产97在线| 蜜伊人色综合97| 少妇人妻无码| 天天色综合影视网| 欧美18 在线观看| 东京热男人的天堂精品| 日韩一级二级| 9999久久久久| 白丝AV| 色噜噜精品一区二区三| 色噜噜人妻av 中文字幕| 好好的日:com久久九九| 囯产精品久久久久久久久久二区三区| 九九干| 调教熟妇 久久久久久| 色五月69夫妻| 肥佬影院91| 操逼大黄片| 日本三级韩国三级99| 日本东京热大香蕉a片| 日韩精品亚洲一二三| 先锋影音av先锋一区| av国产无码| 久久大线蕉一区| 欧美日韩亚洲天堂| 亚洲偷拍自拍在线视频| 99re这里只有精品3| 91插B网站| 久久亚州精品成人Av无| 偷拍 精品另类 凸凹了四区| 天天在线91| 免费无码国产精品v片在线观看| 久久久中文| 91精品久久久久久77777| 国产精品九九九| 九久9精品| 97碰碰日本乱偷人妻中文的| 精品无码秘 人妻一区二区| 亚洲 欧美 手机在线观看| 精品人妻二区三区| 亚洲在线| 97超碰69| 中欧人妻丝袜中文字幕| 亚洲精品视频在线| 亚洲女优有码无码高清| 婷婷视频在线免费观看| 97爱碰| 中文字幕一区电影在线观看| 色偷偷色偷偷欧美日韩| 久久久久久电影| 日韩av色图综合| 中文字幕人妻资源在线| 国产一区麻豆免费观看| 欧美AAAA黄片| 精品美女在线视频| 成人自拍三级在线观看| 欧美三级免费伊人| 国产午夜福利专区综合| 宗合情欲网| 亚洲欧美高清无码| 欧美亚洲一区二区久久久婷精品大包诱| 国产精品久久久久久久久久久久久久| 婷婷激情四射| 久久久久久久9| 欧美操逼一二三区| 女人综合网| 99中出在线| 自拍偷拍第26| 日韩欧亚中文在线| 久久久久成人亚洲国产| 黑人性欧美| 91视频国品一二三区| 91啪啪| 爱欲AV| 久久久久久国产手机AV| 激情婷婷黑人91| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 91精品免费| 久久久成人国产精品无码| 九九九只有精品| 色色婷婷丁香| 久久狠狠色噜噜狠狠狠狠97| 欧洲精品网| hd成人一区二区在线| 青女偷拍网| 欧美1727免费观看视频| 精品久久久久久无码| 97视频新免费| 伊人影院中文字幕| 亚洲色系另类精品国产| 99rre在线精品99re8| 97久精品| 欧美日本国产日韩激情视频| 97 色综合| m欧洲一级午老| 九九性爱网| 秋霞色色影院| 成人AV在线网站| 九一屌逼| 韩国黄色片精品久久久| 乱操乱伦AV| 成人九九| 超碰97在线中文| 日本91白丝| 欧美操逼熟女| 国产毛片片精品天天看视频| 偷拍亚洲情色| 男人网站婷婷| 久久本道| 99热网站| 国产精品岛国片在线观看| 久久精品国产亚洲5555| 国产精品69久久久久久久| 视频在线观看一二三区| 人人爱操| 欧美疯狂做爰xxxx| 久久久久久久久久久免费精品| 老熟乱一区二区三区四区| 国产精品。| 天天添天天干电影| 亚欧韩av| 国产成人精品日本视频| 新久久AV| 国产亚洲精品A在线观看下载| 国产在线激情| 精品女同一区| 性欧美精| 天天摸夜夜操视频| 老熟女熟妇| 丝袜熟女2P| 婷婷五月天激情四射| 欧美强奸乱能| 天天综合网日韩7799| 欧美大波激情xxxx| 黄色免费网| 精品九九九| 啊啊啊啊操死我| 999热日韩精品| 色综合 加勒比| 亚洲诱惑天堂| 久久后入制服| 久久成人东京热人妻| wuyechaopeng| 精品久操| 欧美激情高清性猛交| 日韩本不卡视频在线观看 | 久久精品国产精品一区| 欧美第一页| 激情综合五月婷婷| 五月丁香综合| 欧美日韩超碰在线| 97干在线看| 中文字幕加勒比海高清无码免费视频| 爱射综合| 青草香蕉网| 好屌色综合| 91熟女.com| 中文字幕一品色图| 欧美精品庄| 蜜桃av色偷偷av老熟女| 一级性爱视频免费在线| 国产精品爽爽v| 人人射人人操人人摸| 国产精品成人无码av| 五月天开心网| 打av高清| 91在线国产后入风骚翘臀美女素人| 香蕉国产97| 诱惑网综合| 亚洲一区中文精品| 日本操大逼| 伊人久久大香大香线蕉中文 | 国内毛片四区| 日韩一级欧美一级国产一级台湾| 无码精品久久| 综合一区中亚洲国产成人综合精品 | 国内精品999| 中文字幕久久精视频久久大全| 91美女视频在线免费观看| 久草毛片| 成人免费视瓶| 大香蕉五月天| 91久久堂| 国产精品久久久久久久久久久久久久吹| 国产在线综合福利网站| 国产福利小视频高清在线观看| 五月丁香激情啪啪| 久久久久久中文版| 男人的天堂免费| 欧洲欧美视频一区二区| 久久XX| 新97国产超碰| 中文字幕乱码在线| 国产一区二区三区导航| 免费农村成人少妇人妻Aa一区二区视频 | 午夜视频久久久| 日韩一级久久毛片| 91操碰| 亚洲精品 欧美精品| 天天拍夜夜| 美国aaaaa一级黄片| 超碰人人乐97| 亚洲丨在线| 亚洲无码免费看| 91亚洲不卡一区| 欧美91网| 在线观看黄色电话| 99xav| 91狠狠| A久久| chaopen97久久| 逼操网站| 夜夜综合| 亚洲欧美日韩制服另类| 屌色在线97视频| 新怡红院| 亚洲啪啪性视频| 欧洲亚洲综合| 国产高清在线观看欧美| 美日韩在线不卡人妻| 亚洲欧洲成人在线电影| av中文字幕在线熟女| 久热在线精品免费观看| AV天天在线观看| 97鸡把在线视频| 欧美丰满熟妇XXXX性ppX人交| 天天超级碰碰碰| 精品成人亚洲午夜电影| 欧美另类自拍 | #NAME?| 福利操逼| 2026国产精品视频| 秋霞久久亚洲精品成人| 久草精品一区 | 五月婷色| 好吊色综合| 天天综合在线4| 97亚洲精品| 国产怡红院| 亚洲欧美日韩制服另类| 情色五月天久久久| 免费一级黄色录像影片| 国产25页| 亚洲色图殴美色图激情乱伦| 日韩电影免费网站麻豆视频| 国产精品亚洲美女久久久久| 久久久啊啊啊| 日本不卡卡一区| 黑人精品XXX一区一二区| 欧美综合制服在线| 人人摸人人干人人拍97| 欧美色图99| 婷婷色一区| 欧美一区二区三区四区综合| 日本熟妇精品九九| 热九九精品| 欧美第一页| 神马久久69| 女人高潮抽搐喷水视频网站| 人妻少妇精品久久久久久久| 久久久18禁| hd成人一区二区在线| 亚洲中文丝袜美腿诱惑字幕| 国产精品一区二区在钱播放| 久久久久免费看少妇A片特黄| 精品欧美日韩在线观看| 五月天婷婷色| 国产一级137片内射麻豆| 精品女同一区| 日本不卡码黄色| 91成人精品在线播放| 精品对白久久不卡| 天天日天天屌天天操| 99热精品在线播放| 日韩熟女操逼| 欧美第五页| 欧美色九九九| 91麻豆va国产精品| 女欧美一区二三区| 蜜桃传媒视频第一区入口在线看| 久久久不能久久久久| 日韩人成网站在线播放| 成·人免费午夜在线观看| 东方亚洲在线操逼天堂| 亚洲熟女国产综合另类| 亚洲国产麻豆一区二区三区| 百度百度日本操逼| 国产精品另类一区大香蕉| 大香蕉99热| 99热这里| juliaann丝袜| 九九在线视频| 无码视频一区二区| 亚洲色 国产 欧美 日韩| 日韩内| 这里是精品| 国产在线精品偷| 亚洲97成人在线观看| 女同性恋中文字幕| 亚洲熟女综合| 丁香五月激情综合| 一线黄色免费性爱片| 欧美另类丝袜熟女| 97超碰免费人人性爱| 久久久久大香青草精品综合| 午夜高清成人在线视频| 人人妻碰人人免费| 久久久久白虎| 亚洲欧美日韩国产丝袜自拍中文| 免费看毛片操穴| 最新国产亚洲精品精品国产亚洲综合| 一起草三级AV电影在线观看 | 最新中文字幕av| Julia在线播放亚洲久久| 成年人黄色小视频网站| 午夜舔阴达高潮视频免费看| 欧美的精品的视频| 色眯眯av| 欧美伦乱爱| 中文字幕一二三区| 久久久无码国精品无码三区三区| 亚洲综合中文字幕有码| 亚洲色系另类精品国产| 操国产逼| 丰满人妻aA一区二区三区| 亚州综| 清纯唯美综合亚洲| 少妇高潮喷水无套久久久久久| 97超碰久久色| 亚州欧美总和| chaopen97久久| 色欧美在线| 精品97精品97| 久久综合18p| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 欧美亚洲国产91在线| 91丝袜美女视频| 好爽视频在线观看视频| 色香天天| 日韩三级伊人| 欧美精品精品一区二区| 日韩三级在线观看网站| 日韩av免费一级电影| 肏逼福利网站| 色黄污美女啪啪啪免费网站| 先锋激情∨在线视频播放| 色五天伊人| 免费av大片| 亚洲综合色婷婷| 国产999精品久久久久久| 97超碰国产亚洲精品资源| 久久国色天香香蕉| 超碰综合色| 久久久久96| 亚洲97在线| 三级日韩一区二区三区| 狠狠操夜夜| 9l视频自拍9l九色成人| 日韩情色视频| 国产久久久久影院老熟女| 欧美,日韩,中文,另类| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 国产熟女无套内射| 黄色成人网久久久久久| 中文字幕中文字幕一区二区| 综合色99| 久久超碰免费的| 91碰碰| 国产精品第一页国产大屁股视频免费区| 久久天堂| 色色色天美视频| 极品五月天噜噜| 久啪| 日本久久超碰| 久久九九视频九九视频| 日产狠狠干| 美女黑人91神马| 蜜臀AV午夜精品久| 搡老女人老妇女AAA一VU麻豆| 国产成人网站在线观看| 熟女自慰久久久| 色与欲影视天天看综合网| JIZZJIZZ亚洲女人被躁| 亚洲AV无码国产精品久久久久| 玖玖97综合| 久久久久久久综合,国产| 国产综合色精品在线观看| 一级黄色牲爱A级片| 女人妻一区| 香港久久久| 国产成人亚洲精品无码古代早漏男| 天天干天天做| 91精品操美女| 无码操逼网| 精品国产72| 久久色网| 天天日少妇逼AV| 偷拍亚洲情色| 无码高清国产AV| 91美乳| 免费A片三p视频| 色色国产| 九九热精品| 五月丁香婷婷综合网| 亚洲AV人人澡人人爱| 在线综合 亚洲 欧美中文字幕| 情色大香蕉| 人人操人人插人人摸人人干| 欧洲中文字幕| 精品无码秘 人妻一区二区| 日本九九九九| 久久超碰天天| 久草福利在线资源站| 久操在97| www.av在线视频| 国产乱码精品久久久久久 | 天天日日本| 成人免费性爱视视| 中文一区二区婷婷视频| 91麻豆天美| 神马久久久久眼| 精品视频一区二区| 久久9亚洲| 天堂69亚洲精品中文字| 爱干爱射网啊啊啊| 一级人妻性爱视频| 玖玖资源中文字幕制服丝袜| 蜜乳AV.COM| 亚洲国内精品成人不卡| 亚洲成人一区二区精品| 九九免费影片| 五月丁香激情综合| 色噜噜狠狠色综无码久久合欧美| 玖玖综合.com| 国产 日韩 欧美一区| 夜夜夜夜夜夜夜夜夜狠狠狠狠狠狠狠 | 日韩激情中文字幕有码| 国产精品第一页国产大屁股视频免费区i | 顶级少妇BT天堂| 岛国在线国产| 国产欧美成人精品| 黄色欧美性爱视频| 校园春色第一页| 95精品在线| 欧美亚洲国产91在线| 亚洲男人天堂2016| 国产精品无码论坛| 国产AV中文| 国产av青草| 成人麻豆av电影网站| 久久是精品| 人妻熟女字幕一区二区| 欧美gv在线观看| 超碰久久综合| 天天看综合网| jk白丝没脱就开始啪啪| 亚洲国产97在线精品一区| 丝袜美腿欧美| 成人精品一区二区91毛片不卡| 亚洲久草AV色图| 久久久精品国产亚洲伊人| 国产Av超碰| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 禁止观看美女黄| 青青操综合网| 97精品久久| 天堂亚洲精品久久老牛| 丁香五月激情网| 日本1区2区不卡视频| 97操97干| 欧美72网页| 天天日天天爽| 家庭乱伦性爱av| 亚洲日韩电影| 夜夜青青无码影院| 97爱爱爱综合| 无码抄逼网| 被男人吃奶很爽的毛片| 无套后入双马尾| 色www精品视频在线观看| 久久天堂婷婷网| 成人三一级一片aaa| 夜夜爽夜夜爽| 中日韩久久久免费看| 亚洲AO在线| 久久五月综合| 多毛小伙内射老太婆| 91亚洲色图| 热久久无毒不卡| 啊啊啊不要啊啊受不了了视频在线 | 日韩丝袜高跟制服在线观看| 欧洲综合视频| 婷婷九月| 凸凹视频在线观看| 亚洲一区二区久久久久| 亚洲av性爱电影| 啊啊啊啊免费视频| 激情文学小说一区二区 | 国内毛片热久久思思热| 欧美成人精品欧美一级乱黄一区二…| 97网址97| 亚洲综合骚逼| 干B| 亚洲少妇在线影音| 怡红院怡春院| 天美av在线观看| 97人人草| 欧美色五月| 色999亚洲人成色| 婷婷五月天影院| WWW黄片COM| 911粉嫩人妻| 8050午夜少妇无码| 在线综合色| www.99中文字幕| 欧美性爱第一区| 亚欧性爱无码| 国产精品亚洲天堂网址| 久久欲| 亚洲第一免费视频| 可以在线观看的黄色网址| 1级午夜影院费免区| 少妇厨房愉情理伦片bd在线观看| 亚洲色图91| 曰韩中文人妻视频| 日产操逼| 影音先锋日本乱伦| 手机看片日韩人妻| 18禁免费视频| 国模无码一区二区三区在线| 强奸乱伦大香蕉网| 无遮挡h肉动漫在线观看| 成年女人18级毛片毛片免费观看| 亚洲AV无码乱码在线观看性色| 5月婷婷6月六月丁香| 日本黄 R色 成 人网站| 亚洲色五月| 婷婷国产精品九区| 午夜小电影在线插入淫高潮 | 超碰三级秋霞| 日本裸体久久色噜噜| 亚洲色图加勒比| 人人澡人人弄| 国产欧美日产一区二区三区 - 国产欧美日 | 精品999999| 欧美色www亚洲国产阿娇要播| 18禁无码永久免费无限制| 四虎国产精品永久地址入口| 18禁超污无遮挡无码免费网| 五月丁香综合激情| 久久久久久久 九九九九九九九| 9 7超碰在线免费观看| 欧美 亚洲 综合 制服 另类| 清纯唯美第一页| 另类图片综合| 日本无码1| 婷婷五月天小说| 午夜天堂精品久久| 97亚洲国产| 白丝AV| 五十路三级片| 亚洲欧美精品一区天堂久久 | 日韩欧美偷拍美女视频| 日韩精品人妻中文字幕不卡乱码| 国产传媒日韩| 风流老熟女一区二区三区l| 婷婷中文字幕| 久日91在线| 欧美美女视频| 亚洲啪啪视频一区二区| 日韩欧美视频青青| 性爱欧美五月| juliaann丝袜| 日日噜噜夜夜狠狠视频无| 五月激情视频| 欧美成人综合| 亚州男人天堂| 欧美操逼熟女| 综合色图,成人综合网| 亚洲素人网| 97日韩欧美| 国模少妇一区二区三区| 日韩二级| 欧美春色| 国产亚洲精品美女久久久m| 天天透伊人| 久久精品女同亚洲女同13| 思思热在线视频在线| 亚洲激情av| 天天摸天天舔天天操| 亚洲成a人v欧美综合天堂下载 | 色妇91| 电家庭影院午夜69久久夜色精品国产69乱| 黄片色区软件| 麻豆福利视频导航| 久9精品| 国产中文字幕曰本毛片| 中文字幕在线观看AV| 久久婷婷一区| 乱伦日本色图AⅤ| 九九拍拍精品视频在线播放 | 久久露脸国产老熟女| 97超级欧美| 日产操逼| 炮色五月| 火箭成精品视频884必出精品| 欧美性爱另类综合| 国产精品一级二级在线| 久久亚洲欧美中文字幕国语| 丰满少妇一区二区三区专区| 99久草| 狠狠色婷婷777| 中文字幕无码不卡啪啪| 国产精品无套内谢| 玖玖爱一区在线| 夜草网站| 中文字幕国产精品1区| 欧美亚洲丝袜人妻制服中文99| 日本色色的视频| 久久华人网| 国产麻豆一级精品视频| 夜夜夜夜爽| 国产精品岛国片在线观看| 99热日| 日韩成人大片在线观看| 激情久久日韩精品中文字幕麻豆| 老司机老司机午夜影院| 国产热av| 欧美日韩性爱精品| 老司机香蕉| 日本超碰在线国产一区| 熟妇色99| 美女人妻色网站| TS人妖另类精品视频系列| 啊好爽受不了无码| 亚洲欧洲自拍图片专区满春格| 国产久久视频| 成人一级性爱| 青青青草伊人精品| 丁香五月激情综合国产| 九九九偷拍| 日韩一级二级| 丝袜人妻av一区二区| 91在线丝袜视频| 久久精品国产亚洲AV片多多 | AV无码久久久精品| 丝袜美腿操av| 性欧美另类高清| 午夜亚洲WWW湿好大| 国产视频第2页| 日韩精品一区二区三区色欲 | 色综合一区二区三巨| 久久国产AⅤ| 亚洲综合一| 亚洲超碰在线| 日本国产欧美一区三区二区| 青青草大香蕉在线视频| 欧美强奸乱| 欧美 亚洲| 啊啊啊在线观看免费视频| 国产精品自在线发布| 日韩十八禁| 大香蕉国产中文自拍| 国产尤物AV尤物在线观看不卡| 99re视频在线播放青草| 亚洲熟妇熟在线电影视频| 国人欧美精品一区二区| 好吊色综合| 91丝袜在线视频| 久久人妻精品| 亚洲图片激情综合另类| 国产人妻久久精品一区二区三区| 久热色情精品| 日韩av一级黄片| 男女一进一出视频久久| 大香蕉伊然在亚洲91| 中文字幕老熟妇黄色视频| 一级黄色性爱A级片| 一区二区三区不卡视频| 亚洲综合情色| 小草精彩毛片| 青娱乐日韩无码| 一二三四视频中文字幕在线看| 欧美日韩色| 欧美少妇高潮久久91| 欧美BT 亚洲色图| 爱欲AV| 91粉芽高清在线一区二区| 巨爆乳一区二区爆乳区| 午夜在线播放| 东京热99999| 青青草视频久久久久| 中文字幕成人| 欧美亚洲另类在线蜜桃| 26UUU欧美日本| 熟女熟妇一区二区三四区| 亚洲综合贴图91 | 女人与公拘交酡2020视频| 午夜亚洲| 日本道日本道中文字幕日本道最新日本道在线观看 | 欧美 日韩 婷婷 五月| 欧州色图区| 簧片免费看视频| 91碰超| se吧提供国产乱老熟视频胖女人| 91亚洲欧美激情| 舔舔啊| 婷婷久草| 久久精品夜色国产亚洲AV| xxx亚洲午夜天堂| 婷婷五月天补不补| www久久99| 国内自拍 日韩激情 99| 久久社区一区二区三区| 亚洲高清无毛一区二区| 精品人妻中文字幕高清| 蜜臀网 一区| 九九九国产| 免费视频观看60秒| 亚洲狠狠入| 后入精品| 揉揉揉夜夜| 亚洲黄色电影| 欧洲亚洲人妻无码高清久久三区四区| 欧洲大香蕉| 亚洲精品黑丝| 青青草华人在线欧美在线| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 午夜情侣自拍网站| 午夜精品人妻二区三区| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 成人无码在线超碰网| 日韩无码视频黄色| 一区二区三区美女超清| 在线视频 亚洲精品| 国产偷拍网站| 91一区二区三区蜜桃| 大香蕉免费3| 日韩高清黄片| 久久久久亚洲AV无码专区少妇| 欧美亚洲第一页| 婬女免费一二三区A片| 5月婷婷6月六月丁香| 无码少妇精品一区二区60岁老人| 女人午夜视频777| 欧美性爱五月天| 亚州少妇| 久插综合| 伊人久日|