精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Spark 在供應鏈核算中的應用總結

開發 架構
核算業務的特征比較偏向數據和規則的處理,大數據引擎的引入有助于整體業務的交付效率提升和成本降低。我們對Spark的認知主要在完成數據處理邏輯開發及日常的調優上,隨著運行實例的增多以及業務的不斷發展,當前的技術方案也會不斷的迭代演進。

一、業務背景

(會計)核算是使用會計語言與方法,對產品業務的結果進行登記與反映,從而為利益相關者提供直觀、準確、有價值的信息,主要服務對象是財務、審計、外部監管、合規以及管理層,同時核算也是資金管理風險防范的其中一個手段。整體流程可以概括為基于核算規則從業務事件(采購入庫、退供、TOC確認收貨、開票等)關聯單據中提取業務要素(采購/銷售主體、業務時間、客商、金額等)轉換為會計語言表達的數據(會計分錄,會計要素主要包括OU/收益部門/預算部門/往來段/明細段/行業段/成本中心等),供應鏈核算主要鏈路如下圖所示:

從上圖可以看到供應鏈核算一腳在業務(計費/結算可以理解為財務視角的業務),一腳在財務,職責上既要滿足核算團隊月結出賬的訴求,又要提供業財對賬的能力,基于此我們將數據處理統一為如下流程:

二、離線 SQL 模式存在的問題

從第1章節圖2可以看到,核算的流程就是ETL的過程,在早期的方案中通過離線+在線的實現方式,其中離線完成原始憑證的加工,業務接入的邏輯通過SQL實現,在線系統完成記賬+拋賬,同時由于在線系統處理能力有限,在原始憑證加工中進行了業務單據的聚合,此種實現方式主要存在以下問題。

1.對賬問題定位困難,核算小二主要通過下載分錄及對應的業務單據匯總數據進行對賬,如果某一分錄和業務數據有出入,只能逐一業務要素分析,由于缺乏通過分錄精確追溯到關聯業務單據的下鉆能力,問題定位耗時較長,造成這一問題的主要原因在于通過離線SQL實現的原始加工邏輯無法精確的建立業務單據和原始憑證的關聯關系。

2.日常運維困難,隨著業務的不斷發展,業務接入離線任務在不斷的膨脹,最終成為一個橫跨4個項目空間,150+離線任務、100+離線表的工程,任一節點的錯誤都會造成月結數據出錯。

3.行業實施效率較低,每次新接入行業都需要開發小二新建一套離線表+離線任務,相應的也造成運維問題的持續惡化。

三、為什么選擇Spark

1.核心訴求

在核算主版本的建設中,我們希望能夠通過打造穩定可復用的產品能力最大程度的解決上述問題,核心訴求如下

1)核算規則(業務接入/記賬/拋賬)可配、可視,不存在黑盒的加工邏輯,加工流程對核算小二全透明(提升實施+對賬效率)

2)建立整個核算鏈路單據維度的關聯關系(業務單據<->原始憑證<->記賬憑證<->拋賬憑證),具備雙向的單據追溯能力(提升對賬效率)

基于以上訴求,我們抽象了標準的規則模型,滿足用戶多場景下各個鏈路(業務接入、記賬、拋賬)的加工邏輯配置(規則相關設計方案不再此文展開),與之配套的會計引擎完成基于核算規則的數據處理,另外在主版本的設計中,原始憑證需要1V1還原業務單據,每月原始憑證數據量達到了10億級別,為了滿足月結時效性的要求,我們需要采用高性能、支持大數據量、且編程友好(便于建立單據關系)的計算引擎。

2.Spark VS MapReduce

基于上述訴求,我們重點調研了Spark和MapReduce兩款計算引擎,差異如下所示:

引擎

MapReduce

Spark

編程友好

一般,支持Map/Reduce兩種算子

較好,支持的算子豐富(map/filter/reduce/aggregate等)

性能

一般,中間態數據需要落盤,計算邏輯相對復雜時,MapReduce會涉及到多MapReduce任務執行(多次shuffle),每次shuffle也會涉及到大量的磁盤IO

較好,基于內存計算,基于DAG可以構建RDD的血緣關系,在調度過程中可以避免大量無效的磁盤IO,另外rdd共享機制可以降低網絡IO的開銷

集團生態

較好,odps提供MapReduce計算框架支持,可以通過LogView查看日志

較好,odps提供Spark計算引擎支持,可以通過LogView查看日志,目前提供了stand-alone、集群及client三種模式的支持

比較形象的對比(并不是說spark不會落盤,在基于DAG圖拆分stage時,也會涉及到shuffle,但整體的磁盤IO消耗比MapReduce要低)。

3.編程模式優勢: RDD + DataFrame 的編程模式

如上面和MapReduce的比較中看到 Spark 在編程友好性上比MapReduce好一些,比較適合后端開發人員。

import org.apache.spark.sql.Row
import org.apache.spark.sql.types._
// Create an RDD
val peopleRDD = spark.sparkContext.textFile("examples/src/main/resources/people.txt")
// The schema is encoded in a string
val schemaString = "name age"
// Generate the schema based on the string of schema
val fields = schemaString.split(" ")
.map(fieldName => StructField(fieldName, StringType, nullable = true))
val schema = StructType(fields)
// Convert records of the RDD (people) to Rows
val rowRDD = peopleRDD
.map(_.split(","))
.map(attributes => Row(attributes(0), attributes(1).trim))
// Apply the schema to the RDD
val peopleDF = spark.createDataFrame(rowRDD, schema)
// Creates a temporary view using the DataFrame
peopleDF.createOrReplaceTempView("people")
// SQL can be run over a temporary view created using DataFrames
val results = spark.sql("SELECT name FROM people")

上面是一個官方的例子,在schema控制,可編程性和 sql 操作等能較好的結合,邏輯比較類同后端開發。

基于上述spark特點及優勢,我們最終選擇spark實現會計引擎邏輯。

四、spark基礎介紹

1.基礎概念

  • Rdd(Resilient distributed dataset):不可變的彈性分布式數據集(不可變性似于docker中的只讀鏡像層),只能通過其他的transformation算子創建新的RDD。
  • Operations:算子,spark包括兩類算子,transformation(轉換算子,通過對前置rdd的處理生成新的rdd)/action(觸發spark job的拆分及執行,負責將rdd輸出)。
  • Task:執行器執行的任務單元,一般基于當前rdd的分區數量拆分。
  • Job:包含多個task的集合,基于Action算子拆分。
  • Stage:基于當前rdd處理邏輯的寬窄依賴拆分,spark中非常重要的概念,stage的切換會涉及到IO。
  • Narrow/Wide dependencies:參考下圖,區分的重要依據在于父節點是否會被多個子節點使用。

2.Spark on MaxCompute(ODPS)

我們在實踐中,主要基于spark on odps提供的client模式實現,client模式的詳細介紹可以參考相關文檔。

  • Spark 有很多的后端的 Runtime,例如其商業化公司的Databricks Runtime, 彈內我們使用的是 AliSpark,是集團的適配MaxComputer,同時在離線交互是使用了 Cupid-SDK 的 Client模式,這個模式不是獨立集群的模式,類Serveless模式,整體的成本上比獨立集群要低,當然資源保障上沒有獨立集群好。

Client模式原理參考相關文檔,比調度模式有更好的應用交互性。

  • 集團client模式將spark session作為服務提供,可以方便地與在線系統交互,包括任務的提交、關閉、實例的關閉等;
  • 在使用集團提供的spark能力時,比較麻煩的在于如何方便的查看日志,從我們的實踐看主要有以下2個路徑。

申請odps對應項目空間的logview權限,可以直接在https://logview.alibaba-inc.com/中基于sparkInstanceId定位到具體的日志;

借助odps client+提交spark任務時返回的實例ID獲取log地址,代碼參考如下

//instanceIdd對應odps client中的lookupName
Account account = new AliyunAccount(sparkSessionConfig.getAccessId(), sparkSessionConfig.getAccessKey());
Odps odps = new Odps(account);
odps.setEndpoint(sparkSessionConfig.getEndPoint());
odps.setDefaultProject(sparkSessionConfig.getNamespace());
//日志地址目前設定有效期為7*24小時
try {
return odps.logview().generateLogView(odps.instances().get(sparkInstanceId), 7 * 24L);
} catch (OdpsException e) {
LOGGER.error("生成logView地址失敗,config:{},instanceId:{},e:{}", sparkSessionConfig, sparkInstanceId, e);
}

五、技術方案

1.整體方案

spark作為大數據處理引擎,在實例數量較少的情況下采用odps任務目前的運維方式來管理的話成本并不高,但是在供應鏈核算的場景下,需要支持每天將近600+(行業*核算場景)數量的實例運行,且需滿足核算完整性、準確性、及時性的要求,另外由于目前我們的spark任務(cupid)與odps任務共享項目空間資源,意味著我們需要在有限的資源下支持核算的業務,基于以上背景及訴求,供應鏈核算整體的應用架構設計如下:

其中ascp-finance-accounting負責任務調度,組件交互如下

  • spark任務管理:負責spark任務相關生命周期的管理,承接核算任務和spark session之間的交互;
  • spark session管理:負責spark實例的創建、銷毀、job提交等,另外針對不同類型的session,支持自定義所需資源,包括實例worker數量、分區大小等,主要與spark on odps交互;
  • 核算任務管理:負責業務接入、記賬、拋賬等核算任務的生命周期管理;
  • spark job版本管理:spark任務所需jar包會不斷的迭代,針對不同的核算場景可以定制所需的job版本。

ascp-finance-accounting-spark負責spark job的開發維護,spark on odps client模式下需要基于服務上傳jar包,若jar包較大,性能較差,所以基于client模式下提供的resource管理能力,我們將項目module拆分如下:

包名

作用

accounting-spark-client

對外提供spark任務的啟動、查詢及終止服務

accounting-spark-common

公共包,包括常量、工具類等

accounting-spark-job

spark任務包,封裝了任務接入和記賬兩個任務的實現

accounting-spark-dependency

spark任務包依賴的二方包,client模式下若job包過大,會造成上傳失敗的問題,所以部分job依賴的二方包可以放在dependency中,單獨打包,手工在datawork中上傳,通過resources傳遞參數

2.數據處理流程

核算接入、記賬、拋賬等主流程的spark處理邏輯如下所示:

六、運維及調優

基于spark的特性,完成數據處理邏輯的編寫對我們來說并不困難,問題主要集中在如何用盡可能低的成本滿足業務需求,特別是在目前控制成本的背景下,在供應鏈核算的落地過程中,我們主要采用了以下優化方式。

1.數據量評估

spark任務的運行效率很大程度上受到分區數量的影響,spark提供了如下手段來進行分區數量的調整(部分為spark on odps能力),供應鏈核算在實現過程中主要用到了odps離線表和lindorm兩種數據源。

1)spark.hadoop.odps.input.split.size:用于設置spark讀取odps離線表的分區大小,默認為256M,在實踐過程中需要結合當前分區的大小進行調整,比如當前分區大小為1GB,那么默認情況下會拆分為4個分區;

2)spark讀寫lindorm(類hbase)的分區數主要受到region數量的影響,在供應鏈核算系統的實踐中,由于初始region數量較少,導致分區數量很少,spark執行效率很差,針對此問題我們實踐了兩種處理策略;

  • 進行重分區(repartition算子):針對數據傾斜進行重新分區,但是會拆分stage,觸發shuffle,增加額外的IO成本
  • lindorm進行預分區,比如預分區為128個region,但此種實現方案需要結合rowkey的設計一起使用,會影響到scan的效率。

2.代碼邏輯相關job/stage/task評估

除了六中所述數據量以外,數據處理邏輯的實現方法也會影響到任務的執行效率,spark比mapreduce執行效率高的一個原因就在于spark會先基于處理流程構建DAG,這樣可以有效評估每個stage是否需要落盤(IO成本),在邏輯實現過程中我們在保證數據處理無誤的情況下需要盡可能得降低IO(減少shuffle),比如可以執行以下策略

  • 慎用效率角度的算子,比如groupBy
  • 盡量減少stage數量

3.計算存儲資源評估

計算存儲資源同樣是spark執行效率優化的關鍵,spark也提供了多種手段來調整資源的使用情況;

  • spark.executor.instances executor:設置當前實例的worker數量;
  • spark.executor.cores:核數,每個Executor中的可同時運行的task數目;
  • spark.executor.memory:executor內存。

4.其他參數

odps.cupid.clientmode.heartbeat.timeout 此配置用來調節cupid(spark on odps) client模式下的心跳超時時間,默認為30分鐘,若任務執行較長,需要進行調整。

hbase.client.write.buffer:用來調節lindorm的flush磁盤的buffer大小,lindorm mput數量限制為100(經咨詢為全局限制,無法調整),所以在spark寫lindorm時我們主要采用此配置項調節批量寫入的數量,這點比較坑。

spark.hadoop.odps.cupid.job.priority:用于調節任務資源獲取的優先級。

5.Spark UI

spark 本身的 UI 中有整體的job/stage/task的可視化分析數據,比較方便的查詢到對應的執行過程,如下圖:

通過SparkUI 可以看到任務的驅動步驟和對應的執行的日志。通過分析可以針對性的優化提升。

6.交互式開發測試

ODPS 有一個非常好的所見所得的 dataworks 平臺,大大提升了開發的效率,spark 當前在dataworks沒有直接的交互的IDE,需要通過 zeppelin 來實現。zeppelin在數據技術棧中的定位如下:

Web-based notebook that enables data-driven,interactive data analytics and collaborative documents with SQL, Scala, Python, R and more.

可以在交互中實現結果的快速反饋。

支持 scala 的 UDF 驗證等,提升了測試驗證效率。

7.效果

經過以上優化,在2500萬數據量60worker數的場景,接入+記賬+拋賬流程由之前的2小時提效至10分鐘,同時在編程模式上更加匹配服務端技術的研發模式,提升了研發效率。

七、總結

核算業務的特征比較偏向數據和規則的處理,大數據引擎的引入有助于整體業務的交付效率提升和成本降低。目前我們對Spark的認知主要在完成數據處理邏輯開發及日常的調優上,隨著運行實例的增多以及業務的不斷發展,當前的技術方案也會不斷的迭代演進。

參考文檔

通過spark訪問lindorm:https://help.aliyun.com/document_detail/174657.html

責任編輯:武曉燕 來源: 阿里技術
相關推薦

2023-03-22 11:17:04

ChatGPT供應鏈人工智能

2022-01-20 11:12:00

區塊鏈金融應用

2025-04-08 05:00:00

AI人工智能供應鏈

2023-02-23 07:52:20

2019-07-08 10:16:30

物聯網區塊鏈大數據

2024-09-24 20:29:05

2022-01-22 00:29:36

區塊鏈食品技術

2023-03-07 16:00:16

自動化人工智能

2024-09-03 16:55:01

2020-12-02 10:29:41

物聯網供應鏈IOT

2023-03-03 14:46:03

物聯網供應鏈

2022-03-02 14:08:35

區塊鏈供應鏈技術

2017-01-23 11:18:16

戴爾

2022-04-26 10:47:15

智能供應鏈供應鏈

2022-01-10 14:09:47

供應鏈安全分析技術網絡安全

2023-12-25 16:43:04

區塊鏈CAGR自動化

2018-04-13 17:55:03

區塊鏈供應鏈金融

2022-12-06 14:34:28

2020-04-26 14:34:47

新冠病毒物聯網技術供應鏈

2023-07-05 14:44:46

點贊
收藏

51CTO技術棧公眾號

久久电影视频| 亚洲婷婷久久综合| 日韩av资源网| 日本韩国精品在线| 欧美日韩中文字幕在线播放| 少妇荡乳情欲办公室456视频| 亚洲在线黄色| 日韩在线观看高清| 漂亮人妻被黑人久久精品| 国产精品字幕| 亚洲高清免费一级二级三级| 欧美黑人xxxxx| 国产欧美久久久精品免费| 伊人久久亚洲热| 中文字幕亚洲一区二区三区| 中文字幕人妻一区| 四虎国产精品成人免费影视| 日韩欧美精品在线观看| 在线观看av的网址| 91美女视频在线| av成人免费在线观看| 91精品综合视频| 成人公开免费视频| 在线观看视频日韩| 欧美不卡视频一区发布| 天天躁日日躁aaaxxⅹ| 99亚洲乱人伦aⅴ精品| 欧美日韩在线电影| 国内外免费激情视频| 欧美人与性动交α欧美精品济南到 | 精品精品视频| 欧美性受xxxx黑人xyx| 男女超爽视频免费播放| 4438x成人网全国最大| 中文字幕av一区二区三区免费看| 久久国产精品 国产精品| 精品国自产拍在线观看| 精品制服美女久久| 国产精品美女av| 国产又粗又爽视频| 国模吧视频一区| 久久国产精品影片| 日韩欧美国产成人精品免费| 日本黄色精品| 在线视频亚洲欧美| 久久中文字幕精品| 国产精品密蕾丝视频下载| 亚洲精品乱码久久久久久金桔影视| 亚洲国产精品三区| 九九九伊在线综合永久| 色综合天天综合| 免费在线观看毛片网站| 中文字幕在线免费观看视频| 岛国av一区二区三区| av网站手机在线观看| 免费毛片在线看片免费丝瓜视频 | 成人精品免费看| 91视频99| 日本成人动漫在线观看| 9i在线看片成人免费| 久久99精品久久久久久久久久| 日韩一卡二卡在线| 91丨porny丨蝌蚪视频| 好看的日韩精品| 男女网站在线观看| 国产人久久人人人人爽| 亚洲免费不卡| 成人在线直播| 亚洲亚洲精品在线观看| 国产婷婷一区二区三区| 亚洲永久av| 欧美性大战xxxxx久久久| 在线观看免费成人av| 国产精品视频首页| 精品国产乱码久久久久久影片| 完美搭档在线观看| 国产精品亚洲二区| 中文字幕久久精品| 日本天堂中文字幕| 亚洲欧美日韩一区在线观看| 国产精品成人播放| 91影院在线播放| 国产91精品免费| 蜜桃臀一区二区三区| 午夜在线视频| 亚洲成人免费av| 免费男同深夜夜行网站| 成人综合日日夜夜| 日韩av在线电影网| 日本综合在线观看| 欧美日一区二区三区在线观看国产免| 性色av一区二区咪爱| 成人a v视频| 国产成人免费视频网站| 欧美成ee人免费视频| 免费的黄网站在线观看| 精品久久中文字幕久久av| 久久久久免费精品| 日韩高清一区| 亚洲视频免费一区| 久久伊人成人网| 久久综合中文| 国产成人亚洲欧美| 岛国视频免费在线观看| 亚洲综合视频网| 超碰av在线免费观看| 亚洲综合网狠久久| 亚洲一区二区久久久| 久久久久亚洲天堂| 蜜桃久久久久久久| 另类视频在线观看+1080p| 乱人伦中文视频在线| 欧美视频免费在线观看| 天天爽夜夜爽视频| 成人在线国产| 97在线看免费观看视频在线观看| 一级日韩一级欧美| 91污片在线观看| 欧美激情亚洲天堂| 国产精品日本一区二区三区在线| 亚洲无av在线中文字幕| 亚洲精品午夜久久久久久久| 极品少妇xxxx偷拍精品少妇| 欧美性色黄大片人与善| av成人 com a| 精品国产电影一区二区| 日本一二三区在线观看| 免费在线观看精品| 欧美专区一二三| 理论不卡电影大全神| 精品嫩草影院久久| 在线观看成人毛片| 国产一区二区伦理片| 亚洲精品一区二区三| 日韩精品一区二区三区| 亚洲国产中文字幕在线观看| 久久久久久久久久久网| 国产一级精品在线| 在线无限看免费粉色视频| av成人在线播放| 亚洲深夜福利视频| 人人爽人人爽人人片av| 26uuu国产在线精品一区二区| 国产精品国产亚洲精品看不卡| 久久一级大片| 久久久精品久久久久| 国产精品热久久| 最新国产の精品合集bt伙计| 国产无遮挡猛进猛出免费软件| 精品一区二区三区中文字幕老牛| 国产成人精品在线观看| 精品三级久久久久久久电影聊斋| 好吊成人免视频| 亚洲欧美视频在线播放| 国产亚洲成人一区| 久久免费看av| av在线一区不卡| 在线日韩av观看| 97超碰中文字幕| 亚洲丝袜精品丝袜在线| 爱情岛论坛亚洲自拍| 欧美精品入口| 国产综合欧美在线看| 91精品产国品一二三产区| 亚洲欧美国产制服动漫| 日本欧美www| 成人欧美一区二区三区1314| 亚洲欧美日本一区二区| 亚洲最大av| 成人精品一二区| 三级中文字幕在线观看| 亚洲天堂色网站| 91九色蝌蚪91por成人| 亚洲柠檬福利资源导航| 日韩精品视频一区二区| 免费看的黄色欧美网站| 亚洲国产欧美日韩| 日韩高清在线观看一区二区| 欧美一级黑人aaaaaaa做受| 高清美女视频一区| 日韩一区二区精品| 国产无遮挡又黄又爽| 久久精品视频在线看| 777一区二区| 1024日韩| 亚洲国产精品www| 91精品国产乱码久久久竹菊| 欧洲亚洲妇女av| 国产最新在线| 精品夜色国产国偷在线| 亚洲中文字幕在线观看| 一区二区三区四区蜜桃| av网站免费在线看| 国产精一区二区三区| 六月丁香婷婷在线| 天天久久综合| 蜜桃91精品入口| 狂野欧美xxxx韩国少妇| 国产成人拍精品视频午夜网站| 国产激情视频在线| 亚洲日本中文字幕免费在线不卡| 国产日韩一级片| 色8久久精品久久久久久蜜| 永久免费看黄网站| 国产欧美日韩久久| 李丽珍裸体午夜理伦片| 精品制服美女丁香| 97成人在线观看视频| 欧美精品福利| 一区二区三区四区免费视频| 天堂99x99es久久精品免费| 亚洲综合在线小说| 欧美xnxx| 欧美在线观看网址综合| 欧洲在线视频| 久久中文字幕在线视频| 国产www.大片在线| 亚洲国产精品中文| 精品人妻av一区二区三区| 欧美无砖砖区免费| 日本高清www免费视频| 一区二区三区四区视频精品免费| 网爆门在线观看| 国产三级欧美三级日产三级99| 性活交片大全免费看| 国产一区二区三区日韩 | 久久精品免费在线| 中文字幕亚洲视频| 阿v天堂2014| 久久精品一区四区| 精品人妻无码一区二区三区| 成人免费毛片高清视频| 涩视频在线观看| 国产黄色成人av| 国产亚洲色婷婷久久| 久久99国产精品久久99果冻传媒| 自拍偷拍 国产| 久久伊人亚洲| 久久久噜噜噜www成人网| 亚洲精品综合| 国产97在线 | 亚洲| 亚洲成人在线| a在线视频观看| 校园激情久久| 国产一区亚洲二区三区| 美女久久一区| chinese少妇国语对白| 久久一二三四| wwwwww.色| 麻豆视频观看网址久久| 亚洲综合日韩欧美| 麻豆精品一区二区三区| 亚洲欧美日韩精品一区| 久88久久88久久久| 99精品视频免费版的特色功能| 韩国三级电影一区二区| 日韩久久久久久久久久久| 国产精品乡下勾搭老头1| 少妇丰满尤物大尺度写真| 国产东北露脸精品视频| 黄色在线免费播放| 99在线精品免费| b站大片免费直播| 国产精品丝袜一区| 国产成人av免费在线观看| 亚洲一区二区三区中文字幕 | 91精品在线观看入口| jizz中国少妇| 亚洲精品久久久久久久久| 欧美伦理影视网| 在线视频精品一| 国产精品一区二区三区视频网站| 欧美激情视频一区二区| 午夜激情电影在线播放| 国产欧美亚洲精品| 一区二区三区在线资源| 久久青青草综合| 欧美激情777| 日韩黄色片在线| 久久精品首页| 天堂在线一区二区三区| 成人av在线影院| www亚洲色图| 亚洲一线二线三线视频| 亚洲黄色激情视频| 欧美高清视频www夜色资源网| www五月婷婷| 亚洲无av在线中文字幕| 污污的视频在线观看| 日本欧美一级片| 美女精品久久| 日韩av不卡播放| 欧美日本中文| 国产理论在线播放| 国产99精品在线观看| 最新中文字幕av| 亚洲影院理伦片| 中文字幕av无码一区二区三区| 日韩欧美亚洲国产另类| 毛片免费在线观看| 久久久久久久久久久91| 国外成人福利视频| 精品视频一区二区| 中文字幕亚洲综合久久五月天色无吗'' | 成年人在线观看视频| 国内久久久精品| 亚洲三级在线| 欧美综合激情| 亚洲精品1234| 亚洲无在线观看| 国产欧美日本一区二区三区| 日韩激情一区二区三区| 欧美蜜桃一区二区三区| 男男激情在线| 久久久久久国产精品美女| 四虎影视国产精品| 日本精品一区二区三区不卡无字幕| 欧美日本精品| 激情文学亚洲色图| 中文字幕第一页久久| 亚洲天堂一区在线| 精品国产乱码久久久久久久| 黄色在线免费网站| 国产精品久久久久久久av电影 | 日本午夜视频在线观看| 日韩亚洲欧美成人一区| 欧美成人视屏| 国产精品欧美一区二区三区奶水 | 亚洲欧美国内爽妇网| heyzo高清中文字幕在线| 92看片淫黄大片欧美看国产片| 精品一区不卡| 韩国一区二区av| 久久亚洲欧美国产精品乐播| 97超碰人人干| 亚洲第一男人天堂| 国产羞羞视频在线播放| 91文字幕巨乱亚洲香蕉| 一区二区三区在线电影| 91小视频在线播放| 国产精品福利在线播放| 国产裸体美女永久免费无遮挡| 亚洲欧美日韩精品| 久久r热视频| 日韩视频在线观看国产| 日韩成人精品在线| 美国黄色特级片| 欧美日韩国产成人在线免费| eeuss影院www在线观看| 国产精品视频不卡| 91tv精品福利国产在线观看| 午夜xxxxx| 亚洲中国最大av网站| 成人av免费播放| 性亚洲最疯狂xxxx高清| 日韩系列在线| 九九热免费精品视频| 中文字幕精品一区二区三区精品| 亚洲免费视频二区| 日韩在线www| a级日韩大片| 免费无码国产v片在线观看| 国产亚洲午夜高清国产拍精品| 久久久国产免费| 色妞在线综合亚洲欧美| 日韩成人在线观看视频| 99热亚洲精品| 久久久久亚洲综合| 在线免费观看视频网站| 免费av一区二区| 婷婷综合成人| 中文字幕在线导航| 亚洲欧美成aⅴ人在线观看| 丰满肉肉bbwwbbww| 国产91精品久久久久久久| 欧美码中文字幕在线| 国产欧美精品一二三| 午夜精品福利久久久| 国产片在线观看| 亚洲一区二区久久久久久| 亚洲精品少妇| 亚洲精品国产精品国自| 日韩精品一区二区在线| 成人香蕉视频| 正在播放久久| 成人黄色a**站在线观看| 日本一本在线观看| 欧美成人小视频| 国内精品久久久久久久久电影网 | 国产色产综合色产在线视频| 一级做a爱片性色毛片| 国内外成人免费激情在线视频网站| 一区二区三区日本久久久| 在线播放黄色av| 欧美性xxxx极品hd欧美风情| 成人午夜在线影视| 青青草原成人| 大尺度一区二区| 夜夜躁狠狠躁日日躁av| 日本久久久久亚洲中字幕|