• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于數(shù)據(jù)特性的Spark任務性能優(yōu)化

    2018-02-27 03:06:32吳毅堅趙文耘
    計算機應用與軟件 2018年1期
    關鍵詞:傾斜度代碼效率

    柴 寧 吳毅堅 趙文耘

    1(復旦大學軟件學院 上海 201203) 2(復旦大學計算機科學技術學院 上海 201203) 3(上海市數(shù)據(jù)科學重點實驗室 上海 200433)

    0 引 言

    近年來移動互聯(lián)網(wǎng)和社交網(wǎng)絡的發(fā)展迅速,互聯(lián)網(wǎng)上的數(shù)據(jù)開始呈指數(shù)級的增長,如何高效而快速地對數(shù)據(jù)進行處理和分析逐漸成為了研究熱點。Google公司作為擁有海量搜索數(shù)據(jù)的互聯(lián)網(wǎng)公司,于2003年至2006年提出分布式文件系統(tǒng)HDFS和函數(shù)式編程模型Map-Reduce的概念[1]。Yahoo! 公司基于二者開發(fā)了可擴展的分布式計算框架Hadoop。由于Hadoop的基于硬盤存儲數(shù)據(jù)的特點,在進行大數(shù)據(jù)集的多輪迭代運算時,硬盤的I/O和數(shù)據(jù)傳輸相對耗時,達不到相對實時的處理速度[2]。這一點在對日志監(jiān)控,機器學習算法等領域,尤為明顯。

    Spark作為分布式數(shù)據(jù)處理框架,采用內(nèi)存計算的方法引入彈性數(shù)據(jù)集RDD(Resilient Distributed Datasets)[3]的概念,將數(shù)據(jù)加載到內(nèi)存里,降低了數(shù)據(jù)交換的訪問延遲,達到了準實時分析大數(shù)據(jù)集的能力。Spark框架的推廣和普及,極大地提升了分布式數(shù)據(jù)處理任務的運行效率。

    然而,Spark框架本身也同樣存在了運行效率的問題,存在可優(yōu)化的空間。Spark運行大致有如下兩個問題:(1) 彈性數(shù)據(jù)集RDD帶來的內(nèi)存不足的問題。出現(xiàn)內(nèi)存不足的情況是因為Spark選擇將數(shù)據(jù)持久化到機器內(nèi)存中。這樣設計的初衷是為了減少節(jié)點中的數(shù)據(jù)交換,可以加快數(shù)據(jù)任務的處理速度。但是當單個節(jié)點需要計算的數(shù)據(jù)超過機器內(nèi)存的處理極限的時候,任務會因為內(nèi)存不足而導致失敗。(2) 數(shù)據(jù)傾斜問題導致的運行效率低下。數(shù)據(jù)集合具有不同的數(shù)據(jù)特性。如一篇文章中不同單詞出現(xiàn)的次數(shù)是不相同的。我們把上述的數(shù)據(jù)分布不均的特性稱之為數(shù)據(jù)傾斜。具有數(shù)據(jù)傾斜特性的數(shù)據(jù)在Spark框架中會導致數(shù)據(jù)在不同節(jié)點分布不均的問題。這不僅僅會影響數(shù)據(jù)處理效率,嚴重情況下也會導致任務失敗。

    針對上述問題,本文提出根據(jù)不同的數(shù)據(jù)特性自適應地對Spark代碼進行優(yōu)化的思路,從而達到對Spark數(shù)據(jù)處理任務進行調(diào)優(yōu)的目的。Spark系統(tǒng)本身已具有優(yōu)化不同數(shù)據(jù)集合特性的能力,但是程序員在編寫代碼時要了解所需要處理數(shù)據(jù)集的數(shù)據(jù)特性卻并不容易。對于需要進行性能優(yōu)化的任務,優(yōu)化的步驟如下:(1) 程序自動分析代碼片段[4],生成有向無環(huán)圖(DAG);(2) 計算圖中數(shù)據(jù)的傾斜度;(3) 根據(jù)不同的數(shù)據(jù)特性和場景自動選擇生成相應的優(yōu)化方案。

    1 相關工作

    目前針對Spark任務的優(yōu)化研究的主要的思路有三點。一是針對數(shù)據(jù)對象的緩存進行優(yōu)化,二是針對Spark任務的運行參數(shù)進行優(yōu)化,三是針對任務調(diào)度中的資源分配進行優(yōu)化。

    通過對Spark框架內(nèi)存計算模型的研究和分析,同時對Spark框架中內(nèi)存使用行為進行建模,可以針對Spark的緩存系統(tǒng)實現(xiàn)不同程度的優(yōu)化和改進。比如實現(xiàn)Spark系統(tǒng)的緩存策略自動化,通過代碼語義分析自動識別有緩存意義的中間數(shù)據(jù)加載到緩存系統(tǒng)中。比如根據(jù)RDD的大小和權重信息,提出新的緩存算法,優(yōu)化Spark系統(tǒng)的緩存模型等[5]。

    Spark框架默認的參數(shù)配置不能使得所有數(shù)據(jù)分析任務都能夠高效運行。因此可以針對不同的數(shù)據(jù)分析任務進行Spark框架的參數(shù)配置,可以優(yōu)化Spark任務的運行效率。將Spark任務的運行數(shù)據(jù)和參數(shù)配置保存到數(shù)據(jù)庫中,同時針對Spark任務進行特征工程提取任務特征,最后通過計算任務之間的相似度從數(shù)據(jù)庫中選擇合適的參數(shù)配置對任務進行優(yōu)化[6]。

    Spark框架在運行數(shù)據(jù)分析任務時需要結合當前集群的資源和任務所需要的資源進行動態(tài)分配。通過完整的分析Spark框架中任務執(zhí)行過程以及資源調(diào)度分配的策略,可以根據(jù)任務運行數(shù)據(jù)提出資源調(diào)度分配優(yōu)化模型,并針對調(diào)度資源優(yōu)化提出了系統(tǒng)的解決方案[7]。

    同時,目前已經(jīng)有了較多技術文章針對數(shù)據(jù)傾斜問題提出了對應的優(yōu)化策略。美團公司在技術文檔中分享了如何利用Spark框架的調(diào)度機制處理具有數(shù)據(jù)傾斜特征的數(shù)據(jù)任務,可以對Spark任務增加分區(qū)數(shù)量或者對數(shù)據(jù)進行離散化操作,也可以利用廣播變量將小數(shù)據(jù)集合分布到各個計算節(jié)點中。

    此外針對Spark官網(wǎng)及Cloudera提供的任務調(diào)優(yōu)方案上也有針對數(shù)據(jù)結構序列化、資源調(diào)度,以及任務運行時的參數(shù)設置的優(yōu)化建議。

    為此本文提出了針對具有不同的數(shù)據(jù)特性的數(shù)據(jù)源,進行代碼的自動分析,嘗試解決因數(shù)據(jù)傾斜帶來的Spark任務運行的效率問題。

    2 Spark數(shù)據(jù)傾斜問題

    2.1 數(shù)據(jù)傾斜

    數(shù)據(jù)傾斜意味著數(shù)據(jù)集合中不同屬性的值出現(xiàn)的次數(shù)不是均勻分布的,在統(tǒng)計學中屬于數(shù)據(jù)分配不均的問題。科學研究中的很多數(shù)據(jù)都是分布不均勻的。比如在天體物理學領域描述宇宙演化的數(shù)據(jù)集Millennium simulation,數(shù)據(jù)集中每個節(jié)點的質(zhì)量分布如圖1所示。超過75%的數(shù)值出現(xiàn)不超過十次,而出現(xiàn)頻率最高的7個數(shù)值每一個的出現(xiàn)次數(shù)都超過了2 000萬次[8]。

    圖1 數(shù)據(jù)集節(jié)點質(zhì)量分布圖

    為了解釋數(shù)據(jù)傾斜對Spark任務產(chǎn)生的影響。我們首基于MapReduce的高效粗糙集屬性約簡算法先以一個統(tǒng)計詞頻的例子介紹Spark框架的工作流程[9]。

    在程序的map階段,對輸入的文章中的每一行執(zhí)行map函數(shù),并生成鍵值對。其中key代表在一行數(shù)據(jù)中出現(xiàn)的單詞,value則代表單詞出現(xiàn)的次數(shù)。在程序的reduce階段并行地對每一個鍵值對執(zhí)行reducer函數(shù),將相同key出現(xiàn)的次數(shù)相加。在數(shù)據(jù)分配到reduce函數(shù)之前,Spark程序會執(zhí)行shuffle操作,將具有相同key的鍵值對分配到同一個執(zhí)行reduce函數(shù)的節(jié)點上。

    因為Spark具有shuffle機制,所以在數(shù)據(jù)傾斜的情況下,shuffle操作將位于不同節(jié)點中具有相同key的大量的數(shù)據(jù)拉到同一個節(jié)點中執(zhí)行reduce操作。而一個Spark 任務只能在一個partition中之行,所以某一些數(shù)據(jù)量異常巨大的key的任務運行時間就會非常緩慢。

    以Word Count出現(xiàn)數(shù)據(jù)傾斜為例,在map階段,每一篇文章都被劃分為每個獨立的單詞,從而發(fā)現(xiàn)文中大量的單詞都是hello,少部分的單詞是world。在Shuffle階段,我們需要將不同節(jié)點上具有相同key的鍵值對分配到相同的節(jié)點中。在Reduce階段,有大量的帶有單詞hello的鍵值對被分配到了同一臺機器上,而剩余的少量的world的key被分配到同一臺機器。兩個節(jié)點的機器配置和網(wǎng)絡帶寬都是相同的,但是其中一臺機器處理的數(shù)據(jù)量是另一臺機器的成百上千倍。整個任務的運行瓶頸就在執(zhí)行reduce任務較多的節(jié)點上。當數(shù)據(jù)量上升到TB、PB級別時,就會出現(xiàn)運行時間長甚至內(nèi)存不足的情況。

    2.2 現(xiàn)有處理方法及問題

    如何解決數(shù)據(jù)傾斜帶來的問題,現(xiàn)有的方法是利用Spark本身的特性,緩解因為數(shù)據(jù)傾斜導致的分區(qū)不均的問題。根據(jù)3.1節(jié)的描述,數(shù)據(jù)傾斜的問題是出現(xiàn)在Spark任務處理的shuffle階段,如果要處理數(shù)據(jù)傾斜的問題,我們可以在shuffle階段進行優(yōu)化。

    優(yōu)化的目標最終減少因為重新分配數(shù)據(jù)導致的某一個Reduce節(jié)點中數(shù)據(jù)過多的問題。處理方式有兩種思路,第一種是通過增加任務處理分區(qū)數(shù)或者是按照Key的維度對數(shù)據(jù)進行離散化,嘗試從shuffle階段緩解數(shù)據(jù)傾斜的壓力。第二種是利用Spark的廣播變量的特性直接忽略shuffle階段,從根本上解決數(shù)據(jù)傾斜的問題。具體的處理流程和分析在4.3節(jié)中介紹。

    目前Spark將數(shù)據(jù)傾斜的優(yōu)化策略交給程序員中利用代碼手動完成,這就經(jīng)常會導致程序運行的效率低下甚至產(chǎn)生程序報錯。主要原因有:

    (1) 程序員對數(shù)據(jù)特性本身不敏感,沒有針對具有數(shù)據(jù)傾斜特性的Spark程序進行優(yōu)化。

    (2) 選擇錯誤的優(yōu)化方案。錯誤的優(yōu)化策略會占用系統(tǒng)的額外內(nèi)存和網(wǎng)絡帶寬。效果只會是適得其反,降低數(shù)據(jù)分析任務的性能。

    隨著項目復雜度和代碼量的提高,優(yōu)化策略的問題會變得越來越嚴重。如果可以使用自動分析的方法,自動根據(jù)數(shù)據(jù)的傾斜特性選擇相應的代碼優(yōu)化策略,無疑會降低程序員的負擔,避免上述的問題。下面將對這方面進行初步研究,通過分析與建模,目的對處理數(shù)據(jù)傾斜數(shù)據(jù)的spark任務進行智能優(yōu)化,并加速任務的運行速度。

    3 自適應數(shù)據(jù)傾斜優(yōu)化方案

    3.1 數(shù)據(jù)傾斜度

    為了更好地衡量數(shù)據(jù)的傾斜程度,本文對數(shù)據(jù)集合中的數(shù)據(jù)分布的均勻程度進行了定義,提出了數(shù)據(jù)傾斜度的概念。數(shù)據(jù)傾斜度的計算借鑒了分類統(tǒng)計中的平均絕對偏差的概念,統(tǒng)計一個數(shù)據(jù)集合中每個Key出現(xiàn)的次數(shù),然后計算每個觀測值和算術平均值的偏差的絕對值的平均。同時為了對結果進行正則和標準劃,我們引入了相對平均絕對偏差的計算方式,也就是用平均絕對偏差除以算數(shù)平均值。最后數(shù)據(jù)傾斜度的定義就取二分之一的相對平均絕對偏差[10]。如公式所示:

    (1)

    式中:G代表數(shù)據(jù)傾斜度,xi代表數(shù)據(jù)集合中每個key出現(xiàn)的次數(shù)。選取平均絕對偏差的作為計算數(shù)據(jù)傾斜度主要是考慮結果的通用性和高效性,在比較了多重分類統(tǒng)計中的度量之后,最終選擇了絕對偏差方案。數(shù)據(jù)傾斜度G的范圍在0~1之間,G越接近1表明數(shù)據(jù)的傾斜程度越大,G越接近0表明數(shù)據(jù)的分布平均。

    3.2 有向無環(huán)圖

    為了對Spark代碼進行靜態(tài)分析,獲取程序運行時中間數(shù)據(jù)的相互依賴,本文通過分析Spark程序運行時的日志信息,和各個中間數(shù)據(jù)之間的相互依賴及各項操作生成了一個有向無環(huán)圖(DAG)。DAG代表了Spark代碼的真正計算路徑。

    Spark任務 DAG 圖上的每個節(jié)點表示一種 RDD類 型。在Spark代碼中,程序員在RDD上定義了一系列操作。這些操作可以是map接著reduce,也可以是一系列的map和reduce的集合,都會被Spark記錄下RDD之間的相互依賴,我們可以據(jù)此畫出一張關于計算路徑的有向無環(huán)圖(DAG)。用DAG圖可以從算法邏輯和數(shù)據(jù)規(guī)模大小兩個方面來準確地刻畫任務的特征。

    為了便于理解,下面列出了統(tǒng)計詞頻任務的Spark代碼。圖2是任務對應的有向無環(huán)圖。圖的頂點(方框)表示系統(tǒng)中的數(shù)據(jù)類型RDD, 圖的邊代表不同操作之間的關系。圖中表示的過程是首先讀取文件,分別進行flatMap和map操作,然后再將map的結果執(zhí)行reduceByKey的操作進行聚合,最后將結果輸出到文件中。通過這樣的DAG已經(jīng)能夠清楚地刻畫任務執(zhí)行的基本流程[11]。

    1. val text_file = spark.textFile(″source_path″);

    2. val word_count=text_file.flatMap(lambda line: line.split())

    .map(lambda word: (word, 1))

    .reduceByKey(lambda a, b: a+b);

    3. word_count.saveAsTextFile(′dest_path′)

    圖2 統(tǒng)計詞頻任務的源代碼和有向無環(huán)圖

    3.3 數(shù)據(jù)傾斜任務優(yōu)化

    首先我們把數(shù)據(jù)傾斜的任務分為兩大類[12]:(1) 任務代碼中直接調(diào)用Spark的Map-Reduce方法;(2) 任務代碼中任務代碼中調(diào)用更抽象的rdd.join(),再有Spark的解釋器編編譯成具體的Map-Reduce 任務代碼。針對具體的任務分類,分別有不同的優(yōu)化方案。

    針對普通的Map-Reduce的任務,如果出現(xiàn)數(shù)據(jù)傾斜的情況,在執(zhí)行reduce的任務時,不同節(jié)點執(zhí)行的數(shù)據(jù)量的不同,導致了數(shù)據(jù)任務的遲緩。解決方案通常有兩種思路。

    1) 提高shuffle階段任務的最大并行度,即Spark框架中對于用戶設置的最大分區(qū),具體的參數(shù)名字是 spark.sql.shuffle.partitions。Spark框架對該值的默認值是200,對于傾斜程度不同的數(shù)據(jù)處理任務需要動態(tài)的進行調(diào)整。如圖3所示,增加分區(qū)數(shù)字之后,每個reduce節(jié)點執(zhí)行的數(shù)據(jù)量變少,執(zhí)行速度也更快。

    圖3 shuffle過程中增加分區(qū)數(shù)

    2) 對shuffle階段的鍵值對進行離散化操作。通過對數(shù)據(jù)進行離散化,對數(shù)據(jù)先進行聚合操作,然后重新對離散的數(shù)據(jù)進行歸一化操作,最后在執(zhí)行一次聚合操作,從而有效緩解數(shù)據(jù)傾斜程度,加快數(shù)據(jù)任務處理效率。數(shù)據(jù)的離散化可以通過添加隨機前綴的方式,利用flatMap方法將一個key離散成多個key,分散到多個shuffle任務中執(zhí)行,從而解決單個處理數(shù)據(jù)量過多的問題。見圖4。

    圖4 shuffle過程中為key增加隨機后綴

    針對RDD之間需要Join的任務,如果出現(xiàn)數(shù)據(jù)傾斜的情況。也有如下兩種處理方法:

    1) 如果其中一個RDD數(shù)據(jù)量較小,使用廣播變量方式減少shuffle階段的數(shù)據(jù)交換。Spark允許程序員在不同機器之間緩存一個只讀的變量,從而節(jié)省在不同的任務之間傳遞數(shù)據(jù)的消耗。這種變量被稱為廣播變量。廣播變量的優(yōu)勢包括,利用一種高效的方式在每個集群節(jié)點上緩存一個大量的數(shù)據(jù)集合。同時,Spark也嘗試利用高效的廣播算法來分布式的廣播變量,以期望降低數(shù)據(jù)交換的消耗,如圖5所示。

    圖5 將RDD轉(zhuǎn)化為廣播變量,避免shuffle過程

    2) 分拆RDD。根據(jù)每個KEY的傾斜程度,將RDD分拆為傾斜的和分布均勻的兩部分??梢詫⑸贁?shù)幾個KEY導致的數(shù)據(jù)傾斜分拆出去,然后進行數(shù)據(jù)離散化操作,此時數(shù)據(jù)會分散到多個任務中執(zhí)行。數(shù)據(jù)聚合操作之后,再使用Union方法將分拆的兩個RDD進行合并。如圖6所示。

    圖6 根據(jù)key傾斜度將RDD分拆,reduce結束后再union

    3.4 算法設計

    針對Spark程序中經(jīng)常出現(xiàn)的數(shù)據(jù)傾斜導致的運行效率的問題,通過程序的智能分析,針對數(shù)據(jù)傾斜的不同應用場景自動地對代碼執(zhí)行優(yōu)化策略。針對策略的自動化,算法的實現(xiàn)思路如下:

    (1) 分析Spark代碼[13]。通過在Spark源碼中植入監(jiān)聽代碼,根據(jù)日志信息對數(shù)據(jù)結構RDD和相應的函數(shù)操作進行建模,即可以得到當前代碼的有向無環(huán)圖(DAG)。圖中的每一個點都代表一個RDD,圖中的每一個邊都代表RDD執(zhí)行的函數(shù)操作。

    (2) 判斷RDD是否出現(xiàn)數(shù)據(jù)傾斜。方法是對DAG圖中的每一個點,也就是RDD依次進行采樣分析,根據(jù)數(shù)據(jù)集合大小和數(shù)據(jù)分布計算出數(shù)據(jù)傾斜度,如果數(shù)據(jù)傾斜度大于一定的閾值則被判斷為數(shù)據(jù)傾斜。

    (3) 針對RDD的數(shù)據(jù)傾斜程度及RDD本身的數(shù)據(jù)場景,應用不同的代碼優(yōu)化策略。

    本方法需要對代碼執(zhí)行兩次。第一次是為了獲取處于不同階段的RDD,從中間分析出有數(shù)據(jù)傾斜的RDD。所以第一次運行的時候,可以在代碼中對RDD進行數(shù)據(jù)采樣,只運行少量的數(shù)據(jù)集合,這樣在小數(shù)據(jù)集對代碼和RDD進行分析,不會影響運行的性能。代碼優(yōu)化后,再進行代碼的第二次運行。

    方法的整體流程如圖7所示。

    圖7 優(yōu)化算法整體架構

    下面是關于如何進行代碼優(yōu)化的具體操作:

    (1) 增加隨機后綴,并增加分區(qū)數(shù)。為數(shù)據(jù)集中分布不均勻的key分配一個隨機的后綴或者前綴,力圖將shuffle的key進行離散化,使數(shù)據(jù)的分布更加均勻。待每個新的key聚合完成以后,把添加的前綴或者后綴去掉,恢復成原本的key, 再重新計算一個reduce操作。

    (2) 生成廣播變量。針對兩個RDD join的情況,將其中一個略小的RDD轉(zhuǎn)化為broadcast對象,然后分發(fā)到執(zhí)行任務的分布式集群的每個node中。最后在RDD的flatMapToPair的函數(shù)中利用map完成RDD之間的聚合操作。

    (3) 分拆傾斜RDD。兩個RDD Join,但是其中一個RDD存在數(shù)據(jù)傾斜的問題,我們對有數(shù)據(jù)傾斜的RDD進行隨機前綴操作。對另一個RDD進行類似于數(shù)據(jù)膨脹的擴容操作。然后和第一種模式的流程一樣,重新進行Map-Reduce操作。

    4 實驗驗證

    4.1 實驗環(huán)境

    實驗采用的云計算集群是亞馬遜公司的EMR(Elastic Map Reduce)集群。EMR是亞馬遜公司提供的彈性Map-Reduce服務[13],服務內(nèi)容包括用戶可以自動配置分布式計算集群,集群上可以動態(tài)部署Hadoop、Hive、Spark等分布式計算框架,也可以動態(tài)部署Pig、Phoenix、Presto等分布式查詢引擎,減少了數(shù)據(jù)開發(fā)人員大量的配置分布式開發(fā)環(huán)境的時間成本。同時,作為彈性分布式集群服務,用戶可以按需求動態(tài)地啟動集群服務,配置集群規(guī)模,提交數(shù)據(jù)分析任務,改善了整個數(shù)據(jù)分析流程的效率。同時,作為亞馬遜的云服務,EMR可以使用亞馬遜提供的其他云服務組件配合使用,比如分布式文件存儲系統(tǒng)S3(Simple Storage Service)或者亞馬遜EC2(Elastic Computer Cloud)[14]等。綜上所述,EMR具有配置靈活,服務類型豐富,運維成本低等優(yōu)勢。因為,我們在實驗中采用了亞馬遜的EMR云服務作實驗環(huán)境。

    我們基于亞馬遜的EMR服務分別進行了三組實驗,使用的集群配置都是相同的。我們使用了20臺節(jié)點配置的集群。配置如下:機器類型亞馬遜EC2 m4.xlarge,4核CPU,16 GB內(nèi)存,帶寬450 Mbit/s。使用的軟件及其版本為:EMR 4.7,Spark 2.1,Hadoop 1.7。

    4.2 實驗設計

    實驗目的是為了驗證根據(jù)數(shù)據(jù)場景提出的代碼優(yōu)化策略是否可以減少程序的運行時間,優(yōu)化任務運行效果。

    為了保證數(shù)據(jù)集合和數(shù)據(jù)傾斜度的大小可控,實驗采用了模擬數(shù)據(jù)。具體模擬方法是:針對每個數(shù)據(jù)集合的RDD大小以及數(shù)據(jù)傾斜度大小,采用擴充或者采樣RDD的方式來控制數(shù)據(jù)集合大小,采用key分配隨機前綴或者key進行歸一化操作來控制數(shù)據(jù)傾斜度的大小。最終,利用現(xiàn)有的數(shù)據(jù)集合,我們就能模擬出合適的數(shù)據(jù)集合用于任務優(yōu)化效率[16]的實驗。

    首先我們將任務優(yōu)化效率定義為可量化的指標。通過對任務優(yōu)化效率的分析,驗證對于相同的數(shù)據(jù)分析任務,本文提出的方法是否可以自動選擇數(shù)據(jù)場景并針對任務進行了優(yōu)化,同時在運行效率上確實達到了任務優(yōu)化的效果。

    通過對比相同的Spark任務在算法優(yōu)化前后的任務運行時間,我們對任務優(yōu)化效率提出了定義。值得注意的是,在進行代碼優(yōu)化前后的運行時間對照實驗的時候,針對優(yōu)化后的程序運行時間,我們應當將第一部分試驗中進行數(shù)據(jù)場景判斷的時間也計算在內(nèi)。也就是需要將數(shù)據(jù)場景判斷所花費的時間和優(yōu)化后程序的運行時間結合在一起才是優(yōu)化方法的真正運行時間。關于任務優(yōu)化效率如公式所示:

    (2)

    式中:E代表任務優(yōu)化效率;ti表示優(yōu)化前的任務運行時間;tj表示優(yōu)化后的任務運行時間。針對相同的數(shù)據(jù)分析任務,通過優(yōu)化前的任務運行時間減去優(yōu)化后的運行時間,即得到總體任務的優(yōu)化時間。再得到優(yōu)化時間和優(yōu)化前任務運行時間的比值,即是任務的優(yōu)化效率。優(yōu)化效率越接近于1,則表示優(yōu)化效果越好。

    針對任務優(yōu)化效率的實驗,本文設計了三種不同的任務優(yōu)化實驗。

    第一個實驗是為了驗證在不同的數(shù)據(jù)場景下本文方法都能夠達到一定的任務優(yōu)化效率,縮短任務的運行時間。實驗內(nèi)容是針對三種不同的數(shù)據(jù)傾斜場景分別是用未優(yōu)化的代碼和優(yōu)化后的代碼進行數(shù)據(jù)分析,對比兩個任務的運行時間,最后計算任務優(yōu)化效率。同時,在實驗過程中保證三種不同的場景下數(shù)據(jù)集合和數(shù)據(jù)傾斜度都保持相同。這里,數(shù)據(jù)集合的大小是10 GB,數(shù)據(jù)傾斜度是0.5。

    第二個實驗是為了驗證在數(shù)據(jù)集合數(shù)據(jù)傾斜度相同的情況下,數(shù)據(jù)集合大小對任務運行時間和任務優(yōu)化效率的影響。實驗內(nèi)容是在數(shù)據(jù)分析任務中采用的數(shù)據(jù)集合是數(shù)據(jù)集合大小不同但是數(shù)據(jù)傾斜程相同的數(shù)據(jù),同樣對比的是代碼優(yōu)化前后的程序運行時間。三組實驗的數(shù)據(jù)集合大小都是100 GB。這里,所有數(shù)據(jù)集的數(shù)據(jù)傾斜度都是0.5,數(shù)據(jù)集合的大小從1 GB到1 TB不等。

    第三個實驗是為了驗證在數(shù)據(jù)集合大小相同的情況下,數(shù)據(jù)傾斜程度對任務運行時間和任務優(yōu)化效率的影響。實驗內(nèi)容是在數(shù)據(jù)分析任務中采用的數(shù)據(jù)集合是數(shù)據(jù)傾斜程度不同但是數(shù)據(jù)集大小相同的數(shù)據(jù)。同樣對比的是代碼優(yōu)化前后的程序運行時間。這里,數(shù)據(jù)集合的大小都是100 GB,數(shù)據(jù)集合的數(shù)據(jù)傾斜度從0.1到0.9不等。

    4.3 實驗結果

    第一個實驗中,針對三種不同的數(shù)據(jù)場景,優(yōu)化后的代碼運行效率都要比優(yōu)化前的代碼片段有了不同程度的提升。實驗結果如圖8所示,橫軸表示三種不同的數(shù)據(jù)場景,縱軸表示方法優(yōu)化前后程序的運行時間,單位是分鐘。橫軸中每個數(shù)據(jù)場景對應兩個柱狀圖,左邊直方圖代表優(yōu)化前的任務運行時間,中間的直方圖表示分析數(shù)據(jù)場景的時間,右側的直方圖表示優(yōu)化后的任務運行時間。根據(jù)優(yōu)化前后的任務運行時間以及任務運行效率的定義,可以計算出隨機前綴、廣播變量和分拆RDD的方法的優(yōu)化效率分別提升了40%、47%和58%。從而證明本文方法對Spark數(shù)據(jù)傾斜任務具有一定的優(yōu)化效果。同時,數(shù)據(jù)場景分析只占總體運行時間的小部分。因此可以得出結論,優(yōu)化方法的前期數(shù)據(jù)采樣工作對優(yōu)化算法的運行效率沒有影響。

    圖8 不同數(shù)據(jù)場景下代碼優(yōu)化后運行效率有了大幅度提升

    第二個實驗,針對相同的數(shù)據(jù)傾斜度,在數(shù)據(jù)集合大小不同的情況下,對比本文方法的優(yōu)化效率。其中圖9是實驗結果。其中X軸表示的是數(shù)據(jù)集合的大小,Y軸表示優(yōu)化前后代碼的優(yōu)化效率。實驗二的所有數(shù)據(jù)集的數(shù)據(jù)傾斜度都是0.5。實驗結果表明,在數(shù)據(jù)傾斜度大小相等或者近似相等的情況下。優(yōu)化后的代碼相比優(yōu)化前的代碼,運行效率有了明顯提升。同時,隨著數(shù)據(jù)大小的增加,當數(shù)據(jù)集合達到100 GB以后,優(yōu)化效率曲線開始保持平穩(wěn)。

    圖9 實驗結果

    第三個實驗是采用數(shù)據(jù)集大小相同但是數(shù)據(jù)傾斜程度不同的數(shù)據(jù),同樣對比的是優(yōu)化前后的代碼效率。三組實驗的數(shù)據(jù)集合大小都是100 GB。圖10是對應的結果。其中X軸表示的是數(shù)據(jù)傾斜度的變化,Y軸表示優(yōu)化前后代碼的優(yōu)化效率。實驗結果表明,在數(shù)據(jù)集合大小相等或者近似相等的情況下。優(yōu)化后的代碼相比較優(yōu)化前的代碼,運行效率有了大幅度提升。同時,隨著數(shù)據(jù)傾斜度的增加,優(yōu)化效率一直在不斷提高。

    圖10 隨著數(shù)據(jù)傾斜程度增加,算法優(yōu)化效率顯著提升

    5 結 語

    場景選擇代碼優(yōu)化策略。實驗結果表明,這種調(diào)優(yōu)方法具有一定的可行性。在接下來的研究中我們可以獲取更多Spark運行時的數(shù)據(jù),從調(diào)度策略和內(nèi)存資源分配等不同的方向豐富數(shù)據(jù)模型,進一步提高算法的優(yōu)化性能。

    [1] Dean J,Ghemawat S.MapReduce:Simplified Data Processing on Large Clusters[C]//Conference on Symposium on Opearting Systems Design & Implementation.DBLP,2004:137-150.

    [2] 林海銘.基于Hadoop MapReduce的大規(guī)模線性有限元法并行實現(xiàn)[J].計算機應用與軟件,2017,34(3):21-26.

    [3] 倪麗萍,馬馳宇,劉小軍.社會化信息對股市波動影響分析—基于SparkR平臺的實現(xiàn)[J].計算機應用與軟件,2017,34(3):181-188,266.

    [4] 余雙雙,曾一,劉慧君,等.基于UML模型的多態(tài)性與Java接口代碼信息一致性檢測的方法[J].計算機應用與軟件,2017,34(2):8-13,47.

    [5] 陳康,王彬,馮琳.Spark計算引擎的數(shù)據(jù)對象緩存優(yōu)化研究[J].中興通訊技術,2016,22(2):23-27.

    [6] 陳僑安,李峰,曹越,等.基于運行數(shù)據(jù)分析的Spark任務參數(shù)優(yōu)化[J].計算機工程與科學,2016,38(1):11-19.

    [7] 韓海雯.MapReduce計算任務調(diào)度的資源配置優(yōu)化研究[D].華南理工大學,2013.

    [8] Gufler B,Augsten N,Reiser A,et al.Handling Data Skew in MapReduce[C]//Closer 2011-Proceedings of the,International Conference on Cloud Computing and Services Science,Noordwijkerhout,Netherlands,7-9 May.DBLP,2011:574-583.

    [9] 李成,許胤龍,郭帆,等.基于MapReduce的內(nèi)存并行Join算法研究[J].計算機應用與軟件,2016,33(7):257-260,277.

    [10] 裔傳俊,劉亮.采用邊緣分類和平均偏差比較的分形圖像編碼[J].計算機應用與軟件,2015,32(2):211-214.

    [11] 陳龍,蘇厚勤.BPEL文檔基于DAG自動生成框架的研究與實現(xiàn)[J].計算機應用與軟件,2016,33(5):87-89,143.

    [12] 李濤,劉斌.Spark平臺下的高效Web文本分類系統(tǒng)的研究[J].計算機應用與軟件,2016,33(11):33-36.

    [13] 黃賽杰,陳銘松,金乃詠.一種基于約束求解的Verilog語言靜態(tài)分析方法[J].計算機應用與軟件,2015,32(12):1-3,87.

    [14] Keshavjee K,Bosomworth J,Copen J,et al.Best Practices in EMR Implementation:A Systematic Review[J].AMIA.Annual Symposium proceedings/AMIA Symposium.AMIA Symposium,2006,2006(3):982.

    [15] Simson L.Garfinkel.An Evaluation of Amazon’s Grid Computing Services:EC2,S3 and SQS[C]//Center for.2007.

    [16] 程慧敏,李學俊,吳洋,等.云環(huán)境下基于多目標優(yōu)化的科學工作流數(shù)據(jù)布局策略[J].計算機應用與軟件,2017,34(3):1-6.

    猜你喜歡
    傾斜度代碼效率
    上頜不同區(qū)域牙槽骨頰舌向傾斜度的CBCT測量分析*
    提升朗讀教學效率的幾點思考
    甘肅教育(2020年14期)2020-09-11 07:57:42
    創(chuàng)世代碼
    動漫星空(2018年11期)2018-10-26 02:24:02
    創(chuàng)世代碼
    動漫星空(2018年2期)2018-10-26 02:11:00
    創(chuàng)世代碼
    動漫星空(2018年9期)2018-10-26 01:16:48
    創(chuàng)世代碼
    動漫星空(2018年5期)2018-10-26 01:15:02
    跟蹤導練(一)2
    “錢”、“事”脫節(jié)效率低
    408XL傾斜度測試的原理及實質(zhì)
    威金斯氣柜活塞傾斜度運行分析及改進*
    河南冶金(2012年1期)2012-12-07 05:28:36
    国产片特级美女逼逼视频| 久久久久久九九精品二区国产| 少妇的逼水好多| 日韩一区二区视频免费看| 看黄色毛片网站| 国产极品精品免费视频能看的| 国产精品1区2区在线观看.| 亚洲在线观看片| 啦啦啦观看免费观看视频高清| 日日撸夜夜添| 亚洲一级一片aⅴ在线观看| 美女xxoo啪啪120秒动态图| 国产高清有码在线观看视频| 亚洲av福利一区| 久久精品综合一区二区三区| 综合色av麻豆| 听说在线观看完整版免费高清| 国产亚洲91精品色在线| 在线观看美女被高潮喷水网站| 亚洲av电影在线观看一区二区三区 | 天天躁夜夜躁狠狠久久av| 久久鲁丝午夜福利片| 亚洲国产精品合色在线| 熟女电影av网| 亚洲精品久久久久久婷婷小说 | 国产老妇女一区| 小说图片视频综合网站| www.av在线官网国产| 中文字幕av成人在线电影| 国产不卡一卡二| 免费观看人在逋| 午夜激情福利司机影院| av在线亚洲专区| 国产av在哪里看| 久久久精品94久久精品| 欧美丝袜亚洲另类| 久久久久久久久久成人| 黄片wwwwww| 免费观看人在逋| 成年免费大片在线观看| 久久久久国产网址| 久久这里只有精品中国| 能在线免费看毛片的网站| 九九爱精品视频在线观看| 黄色配什么色好看| 日韩制服骚丝袜av| 一区二区三区免费毛片| 直男gayav资源| 三级经典国产精品| 亚州av有码| 禁无遮挡网站| 啦啦啦观看免费观看视频高清| 永久网站在线| 免费不卡的大黄色大毛片视频在线观看 | 久久午夜福利片| 亚洲久久久久久中文字幕| 亚洲最大成人中文| 亚洲欧洲国产日韩| 18禁裸乳无遮挡免费网站照片| 高清在线视频一区二区三区 | 日本免费a在线| 免费大片18禁| 99久国产av精品| 亚洲最大成人中文| 亚洲av.av天堂| 一区二区三区免费毛片| 啦啦啦观看免费观看视频高清| 我的老师免费观看完整版| 中文精品一卡2卡3卡4更新| 三级国产精品片| 精品久久久久久久人妻蜜臀av| 91久久精品电影网| 久久久久久大精品| 男人狂女人下面高潮的视频| 欧美日韩综合久久久久久| 亚洲av.av天堂| 午夜福利视频1000在线观看| 秋霞伦理黄片| 亚洲欧美日韩无卡精品| 丝袜美腿在线中文| 男女那种视频在线观看| 精品一区二区三区人妻视频| 九色成人免费人妻av| 国产人妻一区二区三区在| 可以在线观看毛片的网站| 国产爱豆传媒在线观看| 少妇裸体淫交视频免费看高清| 免费看av在线观看网站| 一级黄色大片毛片| 一边亲一边摸免费视频| 麻豆av噜噜一区二区三区| 一个人看视频在线观看www免费| 深夜a级毛片| 日韩av在线大香蕉| 天堂网av新在线| 纵有疾风起免费观看全集完整版 | 午夜亚洲福利在线播放| 亚洲av电影不卡..在线观看| 欧美三级亚洲精品| 国产高清国产精品国产三级 | www.色视频.com| 一级毛片我不卡| av在线老鸭窝| 国产精品国产三级专区第一集| 国产精品爽爽va在线观看网站| 成年免费大片在线观看| 国产av码专区亚洲av| 日韩欧美三级三区| 人妻少妇偷人精品九色| 日韩,欧美,国产一区二区三区 | 久久这里有精品视频免费| 久久欧美精品欧美久久欧美| 色播亚洲综合网| av线在线观看网站| 国产乱人视频| 69av精品久久久久久| 99久久成人亚洲精品观看| 在线天堂最新版资源| 久久精品影院6| 三级毛片av免费| 亚洲无线观看免费| 99热网站在线观看| 午夜激情福利司机影院| 网址你懂的国产日韩在线| 色吧在线观看| 青春草国产在线视频| 久久精品国产亚洲av涩爱| 五月伊人婷婷丁香| 在现免费观看毛片| 亚洲,欧美,日韩| 日韩精品有码人妻一区| 国产在视频线精品| 欧美高清成人免费视频www| 国产午夜精品久久久久久一区二区三区| 狠狠狠狠99中文字幕| 中文在线观看免费www的网站| 午夜福利在线观看免费完整高清在| 97在线视频观看| 成年免费大片在线观看| av.在线天堂| 国产精品三级大全| 欧美另类亚洲清纯唯美| 一区二区三区高清视频在线| 嫩草影院新地址| 99久久成人亚洲精品观看| 亚洲av日韩在线播放| 欧美性猛交黑人性爽| 国产精品伦人一区二区| h日本视频在线播放| 国产一区亚洲一区在线观看| 午夜激情福利司机影院| 亚洲成人av在线免费| 亚洲av成人av| 亚洲欧美精品综合久久99| 三级男女做爰猛烈吃奶摸视频| 国产男人的电影天堂91| 一级av片app| 九九在线视频观看精品| 青春草亚洲视频在线观看| 国产精品蜜桃在线观看| 一区二区三区高清视频在线| 性插视频无遮挡在线免费观看| 国产在视频线在精品| 午夜福利高清视频| 嫩草影院入口| 国产精品人妻久久久久久| av免费观看日本| 亚洲欧美清纯卡通| 一个人看视频在线观看www免费| 亚洲av男天堂| 国产一级毛片在线| 亚洲电影在线观看av| 淫秽高清视频在线观看| 真实男女啪啪啪动态图| 国产三级在线视频| 国产精品嫩草影院av在线观看| 夜夜爽夜夜爽视频| 欧美三级亚洲精品| 国产极品精品免费视频能看的| 老师上课跳d突然被开到最大视频| 日韩,欧美,国产一区二区三区 | 老司机影院成人| 国产成人精品一,二区| 亚洲av二区三区四区| 亚洲真实伦在线观看| 精品久久久久久久久av| 97热精品久久久久久| 最近最新中文字幕大全电影3| 色网站视频免费| 中文精品一卡2卡3卡4更新| 99久国产av精品国产电影| 欧美潮喷喷水| 美女脱内裤让男人舔精品视频| 99久久中文字幕三级久久日本| 女人十人毛片免费观看3o分钟| 禁无遮挡网站| 99久国产av精品| 国产精品乱码一区二三区的特点| 成年女人看的毛片在线观看| 久久婷婷人人爽人人干人人爱| 狠狠狠狠99中文字幕| 亚洲一区高清亚洲精品| 麻豆一二三区av精品| 午夜福利网站1000一区二区三区| 丰满人妻一区二区三区视频av| 亚洲五月天丁香| 国产久久久一区二区三区| 99久久成人亚洲精品观看| 内射极品少妇av片p| 波多野结衣高清无吗| 淫秽高清视频在线观看| 成人亚洲精品av一区二区| 国产高清不卡午夜福利| 97超视频在线观看视频| 国产成人aa在线观看| 看片在线看免费视频| 欧美三级亚洲精品| 久久久久久久久久黄片| 欧美成人一区二区免费高清观看| 国产av一区在线观看免费| 永久免费av网站大全| 我要搜黄色片| 国产一级毛片在线| 熟女电影av网| 久久久精品欧美日韩精品| 欧美高清性xxxxhd video| 白带黄色成豆腐渣| 日韩三级伦理在线观看| 国产亚洲一区二区精品| 在线观看66精品国产| av免费在线看不卡| 午夜福利在线观看吧| 亚洲精品一区蜜桃| 欧美日韩一区二区视频在线观看视频在线 | 免费观看人在逋| 女人被狂操c到高潮| 欧美人与善性xxx| 五月伊人婷婷丁香| 男女视频在线观看网站免费| 中文字幕亚洲精品专区| www.av在线官网国产| 久久亚洲精品不卡| 午夜老司机福利剧场| 乱码一卡2卡4卡精品| 欧美区成人在线视频| 国产男人的电影天堂91| 好男人在线观看高清免费视频| 99热精品在线国产| 免费看a级黄色片| 天美传媒精品一区二区| 久久久久久久国产电影| 亚洲av二区三区四区| 免费电影在线观看免费观看| 大香蕉97超碰在线| 亚洲人成网站高清观看| 午夜福利在线观看免费完整高清在| 91久久精品国产一区二区三区| 欧美高清性xxxxhd video| 国产乱人视频| 丝袜美腿在线中文| 精品国内亚洲2022精品成人| av免费观看日本| 老司机影院成人| 国产亚洲精品av在线| 国产精品一及| 狂野欧美白嫩少妇大欣赏| 色综合色国产| 久久久久久国产a免费观看| 中文字幕免费在线视频6| 国产免费一级a男人的天堂| 搡老妇女老女人老熟妇| 欧美极品一区二区三区四区| 三级国产精品欧美在线观看| 欧美性感艳星| 亚洲人成网站高清观看| 自拍偷自拍亚洲精品老妇| 亚洲精品国产av成人精品| 亚洲无线观看免费| 国产一区亚洲一区在线观看| 色视频www国产| 亚洲中文字幕日韩| 日韩成人av中文字幕在线观看| 国产色婷婷99| 国产不卡一卡二| 欧美色视频一区免费| 亚洲精华国产精华液的使用体验| 自拍偷自拍亚洲精品老妇| 一夜夜www| 久久人妻av系列| 中文欧美无线码| 国产老妇伦熟女老妇高清| 日韩国内少妇激情av| 97超视频在线观看视频| 久久草成人影院| 边亲边吃奶的免费视频| 国产高清有码在线观看视频| 一级毛片aaaaaa免费看小| 看非洲黑人一级黄片| 成人性生交大片免费视频hd| 少妇高潮的动态图| 麻豆国产97在线/欧美| 国产精品伦人一区二区| 人妻夜夜爽99麻豆av| 99国产精品一区二区蜜桃av| 乱码一卡2卡4卡精品| 精品人妻偷拍中文字幕| 卡戴珊不雅视频在线播放| 午夜视频国产福利| 亚洲伊人久久精品综合 | 免费看光身美女| 又粗又硬又长又爽又黄的视频| 国产单亲对白刺激| 亚洲电影在线观看av| 免费大片18禁| 亚洲av成人精品一区久久| 国产亚洲5aaaaa淫片| 久久午夜福利片| 中文字幕av在线有码专区| 色噜噜av男人的天堂激情| 久久久久网色| 网址你懂的国产日韩在线| 一夜夜www| 尾随美女入室| 亚洲av一区综合| 少妇的逼水好多| 国产黄a三级三级三级人| 99热这里只有是精品50| 国产精品一区二区三区四区久久| 黄色欧美视频在线观看| 久久人人爽人人爽人人片va| 一级爰片在线观看| 黑人高潮一二区| 亚洲精品一区蜜桃| 国产成人免费观看mmmm| 国产乱人偷精品视频| 日韩精品有码人妻一区| 中文字幕制服av| 深夜a级毛片| 韩国高清视频一区二区三区| 2021天堂中文幕一二区在线观| 精品无人区乱码1区二区| 22中文网久久字幕| 午夜激情福利司机影院| 国产av在哪里看| 少妇熟女欧美另类| 国产三级在线视频| 男人狂女人下面高潮的视频| 日韩中字成人| 一卡2卡三卡四卡精品乱码亚洲| 亚洲精品日韩av片在线观看| 女的被弄到高潮叫床怎么办| 精品国产三级普通话版| 国产在线一区二区三区精 | 国产69精品久久久久777片| 亚洲精品亚洲一区二区| 国产乱来视频区| 日韩av不卡免费在线播放| 亚洲国产精品成人久久小说| 日韩av不卡免费在线播放| 久99久视频精品免费| 国产精品综合久久久久久久免费| 中文字幕制服av| 亚洲精品,欧美精品| 久久精品国产亚洲网站| 91aial.com中文字幕在线观看| 久久99热6这里只有精品| 亚洲真实伦在线观看| 麻豆乱淫一区二区| 欧美日韩在线观看h| 色视频www国产| 国产午夜精品久久久久久一区二区三区| 国产精品一二三区在线看| 人人妻人人澡欧美一区二区| 久久久国产成人精品二区| 亚洲成人精品中文字幕电影| 如何舔出高潮| 亚洲美女视频黄频| 亚洲天堂国产精品一区在线| 精品午夜福利在线看| 欧美一级a爱片免费观看看| 亚洲国产欧洲综合997久久,| 国产精品野战在线观看| 我要看日韩黄色一级片| 免费看光身美女| 亚洲av熟女| 欧美不卡视频在线免费观看| 一区二区三区免费毛片| 午夜福利在线观看免费完整高清在| 亚洲av免费高清在线观看| 国产精品一区二区性色av| 男人和女人高潮做爰伦理| 国产精品一区二区性色av| 亚洲国产精品成人久久小说| 亚洲精品自拍成人| 欧美3d第一页| 男人舔奶头视频| 午夜福利视频1000在线观看| 免费无遮挡裸体视频| 伊人久久精品亚洲午夜| 高清日韩中文字幕在线| 一卡2卡三卡四卡精品乱码亚洲| 国产精品久久久久久久电影| 最近中文字幕高清免费大全6| 十八禁国产超污无遮挡网站| 亚洲欧洲国产日韩| 亚洲一区高清亚洲精品| 国产探花极品一区二区| 国产亚洲最大av| 亚洲av电影不卡..在线观看| 国产精品无大码| 精品无人区乱码1区二区| 欧美精品一区二区大全| 国产黄片视频在线免费观看| 久久人人爽人人片av| 国产一级毛片七仙女欲春2| 嫩草影院入口| 欧美激情国产日韩精品一区| 国产亚洲最大av| 99热这里只有精品一区| 欧美日韩精品成人综合77777| 久久99热6这里只有精品| 婷婷色麻豆天堂久久 | 国产免费男女视频| 亚洲精品国产成人久久av| 又黄又爽又刺激的免费视频.| 日本午夜av视频| 一级黄片播放器| 欧美一区二区精品小视频在线| 一边摸一边抽搐一进一小说| 国产免费男女视频| 一边亲一边摸免费视频| 中文字幕亚洲精品专区| 日韩一本色道免费dvd| 日韩高清综合在线| 黄色配什么色好看| 中国国产av一级| 成人综合一区亚洲| 久久久久久伊人网av| 国产精品蜜桃在线观看| 日日啪夜夜撸| 午夜爱爱视频在线播放| 国产精品久久久久久久电影| 久久韩国三级中文字幕| 欧美激情国产日韩精品一区| 亚洲精品国产成人久久av| 联通29元200g的流量卡| 免费不卡的大黄色大毛片视频在线观看 | 91久久精品国产一区二区成人| 网址你懂的国产日韩在线| 亚洲精品国产av成人精品| 一区二区三区高清视频在线| 女人被狂操c到高潮| 搡女人真爽免费视频火全软件| av在线老鸭窝| 久久久精品欧美日韩精品| 亚洲国产精品合色在线| 大香蕉97超碰在线| 日本五十路高清| 99久国产av精品| 久久久久久伊人网av| 国产淫语在线视频| 日本免费a在线| 一级黄色大片毛片| av女优亚洲男人天堂| av在线观看视频网站免费| 一卡2卡三卡四卡精品乱码亚洲| 最近最新中文字幕免费大全7| 日韩一区二区视频免费看| 观看美女的网站| av福利片在线观看| 国产成人aa在线观看| 久久国产乱子免费精品| 国产又黄又爽又无遮挡在线| 国国产精品蜜臀av免费| 亚洲最大成人中文| 毛片女人毛片| 亚洲精品久久久久久婷婷小说 | 2022亚洲国产成人精品| 97热精品久久久久久| 亚洲中文字幕一区二区三区有码在线看| 日韩 亚洲 欧美在线| 黄片无遮挡物在线观看| 99久久人妻综合| 一边亲一边摸免费视频| 伊人久久精品亚洲午夜| 久久国内精品自在自线图片| 久久欧美精品欧美久久欧美| 国产久久久一区二区三区| 欧美精品国产亚洲| 搞女人的毛片| 免费观看的影片在线观看| 欧美又色又爽又黄视频| 直男gayav资源| 国产一区二区在线av高清观看| 国产伦一二天堂av在线观看| 亚洲va在线va天堂va国产| 一级黄色大片毛片| 能在线免费看毛片的网站| 亚洲,欧美,日韩| 欧美一区二区精品小视频在线| 麻豆成人午夜福利视频| 亚洲第一区二区三区不卡| 18禁在线无遮挡免费观看视频| 国语自产精品视频在线第100页| 亚洲va在线va天堂va国产| 亚洲欧美精品自产自拍| 国产美女午夜福利| 汤姆久久久久久久影院中文字幕 | 国产高清有码在线观看视频| 亚洲在久久综合| 免费搜索国产男女视频| 欧美日韩综合久久久久久| 国产精品熟女久久久久浪| 成人毛片a级毛片在线播放| 最近2019中文字幕mv第一页| av在线观看视频网站免费| 国产片特级美女逼逼视频| 久久久亚洲精品成人影院| 女人被狂操c到高潮| 草草在线视频免费看| 女人被狂操c到高潮| 日本wwww免费看| 日韩视频在线欧美| 综合色av麻豆| 不卡视频在线观看欧美| 最近中文字幕高清免费大全6| 波野结衣二区三区在线| 国内精品宾馆在线| 欧美又色又爽又黄视频| 老司机福利观看| 国产精品久久久久久精品电影| 国产日韩欧美在线精品| 有码 亚洲区| 色5月婷婷丁香| 久久韩国三级中文字幕| 熟女电影av网| 亚洲欧美中文字幕日韩二区| 亚洲精品,欧美精品| 欧美另类亚洲清纯唯美| 99久久中文字幕三级久久日本| 日韩一区二区视频免费看| or卡值多少钱| 内射极品少妇av片p| 国产片特级美女逼逼视频| 久久久a久久爽久久v久久| 欧美日韩在线观看h| 免费看av在线观看网站| 黄片无遮挡物在线观看| 久久精品久久久久久久性| av国产免费在线观看| 特大巨黑吊av在线直播| 精品人妻视频免费看| 国产视频内射| 91午夜精品亚洲一区二区三区| 国产美女午夜福利| 亚洲真实伦在线观看| 又爽又黄无遮挡网站| 久久精品久久久久久噜噜老黄 | 色噜噜av男人的天堂激情| 99久久人妻综合| 亚洲精品乱久久久久久| 精品国内亚洲2022精品成人| 成年女人永久免费观看视频| 在线播放无遮挡| 国产高清有码在线观看视频| 特级一级黄色大片| 欧美成人a在线观看| 亚洲中文字幕一区二区三区有码在线看| 精品一区二区三区视频在线| 国产乱人视频| 中文字幕亚洲精品专区| 爱豆传媒免费全集在线观看| 成人综合一区亚洲| 一级二级三级毛片免费看| 亚洲经典国产精华液单| 99久国产av精品国产电影| 欧美又色又爽又黄视频| 国产精品久久久久久久久免| 久久久久精品久久久久真实原创| 国产乱人偷精品视频| 亚洲av福利一区| 日韩成人伦理影院| 六月丁香七月| 成人毛片60女人毛片免费| 欧美丝袜亚洲另类| 日韩精品有码人妻一区| 天堂网av新在线| 国产精品女同一区二区软件| 国语自产精品视频在线第100页| 六月丁香七月| 纵有疾风起免费观看全集完整版 | 日本欧美国产在线视频| 午夜日本视频在线| 免费黄网站久久成人精品| 亚洲欧洲国产日韩| 国产色婷婷99| 综合色丁香网| 在线a可以看的网站| 在线免费十八禁| 中文欧美无线码| 国产在视频线在精品| 亚洲欧洲日产国产| 国产伦在线观看视频一区| 毛片一级片免费看久久久久| 日本免费在线观看一区| 午夜激情欧美在线| 少妇人妻一区二区三区视频| 尤物成人国产欧美一区二区三区| 高清av免费在线| 看黄色毛片网站| 亚洲aⅴ乱码一区二区在线播放| 永久网站在线| 免费看av在线观看网站| 成人国产麻豆网| 国产免费又黄又爽又色|