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

    Redis分布式緩存技術(shù)在Hadoop平臺(tái)上的應(yīng)用

    2017-06-27 08:14:13姚經(jīng)緯楊福軍
    關(guān)鍵詞:作業(yè)

    姚經(jīng)緯,楊福軍

    (1.江南大學(xué) 物聯(lián)網(wǎng)工程學(xué)院,江蘇 無錫 214122; 2.中國(guó)空氣動(dòng)力研究與發(fā)展中心 計(jì)算空氣動(dòng)力研究所,四川 綿陽(yáng) 621000)

    Redis分布式緩存技術(shù)在Hadoop平臺(tái)上的應(yīng)用

    姚經(jīng)緯1,楊福軍2

    (1.江南大學(xué) 物聯(lián)網(wǎng)工程學(xué)院,江蘇 無錫 214122; 2.中國(guó)空氣動(dòng)力研究與發(fā)展中心 計(jì)算空氣動(dòng)力研究所,四川 綿陽(yáng) 621000)

    在使用Hadoop進(jìn)行大規(guī)模數(shù)據(jù)分析時(shí),經(jīng)常會(huì)遇到的一個(gè)較為典型的問題就是共享數(shù)據(jù)的快速訪問問題。該類問題存在的場(chǎng)景很多,如網(wǎng)頁(yè)排名算法、最小錯(cuò)誤率訓(xùn)練算法、最大期望算法等。雖然已有關(guān)于此類問題的解決方案,但實(shí)際取得的效果卻不盡如人意。為此,提出了使用Redis內(nèi)存數(shù)據(jù)庫(kù)作為分布式緩存,以解決Hadoop中共享數(shù)據(jù)訪問的問題。驗(yàn)證實(shí)驗(yàn)結(jié)果表明,Redis分布式緩存的吞吐率與集群規(guī)模有較好的線性關(guān)系,所提出的方法能夠較好地解決Hadoop任務(wù)對(duì)共享數(shù)據(jù)的訪問問題,同時(shí)也為其他大規(guī)模共享數(shù)據(jù)訪問的問題提供了簡(jiǎn)便的解決思路。Redis作為開源的商業(yè)化工具,使得所提出的方法具有較好的適用性,可為科研以及生產(chǎn)實(shí)踐中遇到的同類問題提供一種較為通用的解決方案。

    Redis;分布式緩存;Hadoop;MapReduce

    0 引 言

    隨著信息技術(shù)的飛速發(fā)展,互聯(lián)網(wǎng)數(shù)據(jù)量也呈現(xiàn)出爆炸式增長(zhǎng),進(jìn)入了大數(shù)據(jù)時(shí)代[1]。對(duì)于日益增長(zhǎng)的海量數(shù)據(jù)處理,傳統(tǒng)的數(shù)據(jù)處理方式已無法支持如此龐大的數(shù)據(jù)量,因而云計(jì)算技術(shù)應(yīng)運(yùn)而生。在諸多云計(jì)算平臺(tái)中,Hadoop憑借其開源、廉價(jià)等優(yōu)勢(shì),在大數(shù)據(jù)的存儲(chǔ)和處理等方面應(yīng)用廣泛[2],很多互聯(lián)網(wǎng)企業(yè),如亞馬遜、阿里巴巴、中國(guó)移動(dòng)等都紛紛使用Hadoop作為自己的數(shù)據(jù)處理平臺(tái)。Hadoop的核心主要是HDFS(分布式文件系統(tǒng))和MapReduce分布式數(shù)據(jù)處理框架;除此之外,還有很多基于Hadoop的工具,如:HBase分布式數(shù)據(jù)庫(kù)、Hive數(shù)據(jù)倉(cāng)庫(kù)分析工具、Spark流式數(shù)據(jù)處理框架等[3]。

    Hadoop的出現(xiàn)大大簡(jiǎn)化了分布式程序設(shè)計(jì),使用者只需要簡(jiǎn)單地將數(shù)據(jù)處理應(yīng)用分解為Mapper和Reducer,就可以使之運(yùn)行在Hadoop集群上,而不用關(guān)心各節(jié)點(diǎn)之間如何通信、如何傳遞數(shù)據(jù)等底層實(shí)現(xiàn)[4]。然而,Hadoop在實(shí)際使用中仍然存在一系列問題亟待解決,任務(wù)節(jié)點(diǎn)如何快速訪問海量共享數(shù)據(jù)則是其中一個(gè)較為典型的問題。

    針對(duì)Hadoop任務(wù)節(jié)點(diǎn)如何快速訪問海量共享數(shù)據(jù)的問題,基于對(duì)典型實(shí)例的闡述和分析,提出了使用Redis作為分布式緩存解決共享數(shù)據(jù)的訪問問題。并以PageRank算法為例,研究分析了如何使用Redis解決PageRank算法中網(wǎng)頁(yè)得分?jǐn)?shù)據(jù)的存儲(chǔ)和訪問問題,通過實(shí)驗(yàn)對(duì)該方法的可行性和效率進(jìn)行了驗(yàn)證,并為其他相似問題的解決提供了思路。

    1 MapReduce和Redis簡(jiǎn)介

    1.1 MapReduce框架

    MapReduce[5]最先是由Google公司的Jeffrey Dean和Sanjay Ghemawat提出的一種用于解決大數(shù)據(jù)并行計(jì)算問題的編程模型。后來Apache基金會(huì)的Doug Cutting在Hadoop項(xiàng)目中實(shí)現(xiàn)了該模型并將其開源,大大推動(dòng)了MapReduce框架的研究和發(fā)展。MapReduce程序以鍵值對(duì)的形式進(jìn)行輸入輸出,其具體執(zhí)行步驟如下:

    (1)任務(wù)分配:JobTracker將整個(gè)作業(yè)分解為多個(gè)任務(wù),并分配到任務(wù)數(shù)據(jù)所在的節(jié)點(diǎn)上,由各節(jié)點(diǎn)的TaskTracker負(fù)責(zé)任務(wù)執(zhí)行。

    (2)Map階段:任務(wù)節(jié)點(diǎn)將當(dāng)前節(jié)點(diǎn)上的數(shù)據(jù)塊解析為鍵值對(duì)輸入到Map函數(shù)中,Map函數(shù)對(duì)輸入進(jìn)行過濾和轉(zhuǎn)換,再以集合list()的形式輸出并保存為中間結(jié)果。

    (3)洗牌:將鍵k2相同的記錄發(fā)送到同一個(gè)Reduce任務(wù)節(jié)點(diǎn)上。

    (4)Reduce階段:任務(wù)節(jié)點(diǎn)將所有鍵k2相同的記錄以鍵值對(duì))>的形式輸入到Reduce函數(shù)中,Reduce函數(shù)對(duì)輸入進(jìn)行計(jì)算處理后,再以結(jié)果集list()的形式輸出。

    (5)作業(yè)結(jié)束:當(dāng)所有Map任務(wù)和Reduce任務(wù)結(jié)束后,整個(gè)作業(yè)結(jié)束。

    在MapReduce編程中,編程人員只需根據(jù)業(yè)務(wù)編寫Map函數(shù)和Reduce函數(shù)就可以實(shí)現(xiàn)比較復(fù)雜的并行計(jì)算作業(yè),而不用關(guān)心各節(jié)點(diǎn)之間如何通信、如何傳遞數(shù)據(jù)等底層實(shí)現(xiàn),大大簡(jiǎn)化了并行編程的復(fù)雜度。MapReduce程序還具有很好的可擴(kuò)展性,在大多數(shù)情形下,它不僅可以隨著數(shù)據(jù)規(guī)模的擴(kuò)大表現(xiàn)出持續(xù)的有效性,而且在性能上能隨著節(jié)點(diǎn)數(shù)的增加保持接近線性的增長(zhǎng)。同時(shí),MapReduce還具有低成本和高可靠性等眾多特征,使其從一開始就受到了學(xué)術(shù)界和商業(yè)界的極大關(guān)注[4]。

    1.2 Redis內(nèi)存數(shù)據(jù)庫(kù)

    Redis[6]是一種基于內(nèi)存的Key-Value數(shù)據(jù)庫(kù)產(chǎn)品,是由遠(yuǎn)程字典服務(wù)(Remote dictionary server)取名而來。它支持多種數(shù)據(jù)類型的存儲(chǔ):字符串(string)、鏈表(list)、集合(set)、有序集合(zset)和哈希類型(hash),并且各種類型都支持豐富的操作,其中大多都支持原子操作。為了保證數(shù)據(jù)存取的效率,數(shù)據(jù)都保存在內(nèi)存中;Redis還提供了對(duì)持久化的支持,它可以定期將更新的數(shù)據(jù)異步寫入磁盤,同時(shí)不影響繼續(xù)提供服務(wù);在此基礎(chǔ)上,還實(shí)現(xiàn)了主從復(fù)制,這對(duì)預(yù)防單點(diǎn)故障和提高負(fù)載能力有很大幫助。Redis的出現(xiàn),在很大程度上彌補(bǔ)了Memcached的不足,它不僅支持更加豐富的數(shù)據(jù)類型和操作,而且在讀寫效率上也比Memcached更勝一籌。根據(jù)Redis官方測(cè)試數(shù)據(jù),Redis寫入速率為198 412.69條/s,讀速率為198 019.80條/s[7],相比Memcached要高出數(shù)倍。Redis具有如此多的優(yōu)秀特性,使其從一開始就受到了廣泛關(guān)注,Redis可以適用于多種不同的應(yīng)用場(chǎng)景,很多大型互聯(lián)網(wǎng)企業(yè)的后臺(tái)服務(wù)中都有使用,并且存在不少成功應(yīng)用的范例。

    雖然Redis讀寫性能非常優(yōu)秀,但是因?yàn)閮?nèi)存容量的限制,僅使用單臺(tái)服務(wù)器一般是不夠的,這就需要使用集群的形式進(jìn)行水平擴(kuò)容。在舊版Redis中通常使用客戶端分片來構(gòu)建集群,但這種方式有很多缺點(diǎn),比如維護(hù)成本高,增加、移除節(jié)點(diǎn)較繁瑣等;但Redis 3.0版的發(fā)布解決了這一問題,因?yàn)樗黾恿藢?duì)集群的原生支持。Redis集群采用無中心架構(gòu),各節(jié)點(diǎn)間使用Gossip協(xié)議進(jìn)行通信;在對(duì)數(shù)據(jù)的分配上使用預(yù)分桶的策略,將每個(gè)鍵的鍵名有效部分使用CRC16算法計(jì)算出散列值,然后對(duì)16 384取余,使得每個(gè)鍵都可以被分配到預(yù)先分配好的16 384個(gè)插槽,進(jìn)而在對(duì)應(yīng)的節(jié)點(diǎn)中進(jìn)行處理;集群具有較高的可用性,它采用主-從形式,確保當(dāng)主節(jié)點(diǎn)失效后可以將一個(gè)從節(jié)點(diǎn)轉(zhuǎn)變?yōu)橹鞴?jié)點(diǎn),以此確保集群的完整性和可用性[8]。Redis集群的這些特性使得能夠很方便地將其作為分布式緩存使用。

    2 問題探討

    Hadoop在生產(chǎn)實(shí)踐中被廣泛應(yīng)用于大數(shù)據(jù)的存儲(chǔ)和處理,并且存在很多成功應(yīng)用的典范。但是在實(shí)際應(yīng)用中也暴露出一些問題,其中一個(gè)較為典型的就是任務(wù)節(jié)點(diǎn)如何快速訪問海量共享數(shù)據(jù)的問題。存在該類問題的算法和情景不在少數(shù),這里僅列舉三個(gè)典型對(duì)該類問題進(jìn)行簡(jiǎn)單闡述。

    2.1 網(wǎng)頁(yè)排名算法

    網(wǎng)頁(yè)排名算法(PageRank)[9-10]是由Google創(chuàng)始人Sergey Brin和Lawrence Page提出的用于在搜索引擎上對(duì)網(wǎng)頁(yè)進(jìn)行排名,以此體現(xiàn)網(wǎng)頁(yè)重要性的一種算法。該算法初始時(shí)為每個(gè)網(wǎng)頁(yè)設(shè)置一個(gè)得分,經(jīng)過多次迭代不斷更新各網(wǎng)頁(yè)的得分,最終各網(wǎng)頁(yè)得分收斂時(shí)算法結(jié)束。在每次迭代中,都需要根據(jù)每個(gè)網(wǎng)頁(yè)的得分給所有鏈出網(wǎng)頁(yè)打分,每個(gè)網(wǎng)頁(yè)根據(jù)所有鏈入網(wǎng)頁(yè)給出的打分,計(jì)算并更新自己的得分。在Hadoop上運(yùn)行該算法時(shí),網(wǎng)頁(yè)得分?jǐn)?shù)據(jù)是所有任務(wù)的共享數(shù)據(jù),在每個(gè)任務(wù)中都需要獲取和更新網(wǎng)頁(yè)得分?jǐn)?shù)據(jù),因此網(wǎng)頁(yè)得分?jǐn)?shù)據(jù)的訪問效率會(huì)直接影響算法的執(zhí)行效率。而且在實(shí)際應(yīng)用中,網(wǎng)頁(yè)得分?jǐn)?shù)據(jù)往往會(huì)達(dá)到數(shù)百億條,因此,如何存儲(chǔ)和訪問網(wǎng)頁(yè)得分?jǐn)?shù)據(jù)則是接下來所主要討論的問題。

    2.2 最小錯(cuò)誤率訓(xùn)練算法

    最小錯(cuò)誤率訓(xùn)練算法(MERT)[11]是由Franz Josef Och提出的一種在機(jī)器翻譯中以翻譯質(zhì)量為優(yōu)化目標(biāo),以此調(diào)節(jié)對(duì)數(shù)線性模型參數(shù)的算法。該算法初始時(shí)生成翻譯候選和對(duì)應(yīng)特征權(quán)重,經(jīng)過多次迭代不斷對(duì)其進(jìn)行更新,直到不再產(chǎn)生新的翻譯候選時(shí)算法結(jié)束。每次迭代中使用解碼器對(duì)翻譯候選進(jìn)行解碼,生成新的翻譯候選與之前的合并,并在擴(kuò)展的候選集上重新調(diào)整特征權(quán)重。在Hadoop上運(yùn)行MERT算法時(shí),特征權(quán)重?cái)?shù)據(jù)是所有任務(wù)的共享數(shù)據(jù),其訪問效率會(huì)直接影響到算法的執(zhí)行效率。實(shí)際應(yīng)用中,特征權(quán)重?cái)?shù)據(jù)也可能會(huì)達(dá)到數(shù)十億條,那么又該如何解決數(shù)據(jù)的存儲(chǔ)和訪問問題。

    2.3 最大期望算法

    最大期望算法(EM)[12]是由Arthur Dempster等提出的在已知部分相關(guān)變量的情況下,尋找未知變量的最大似然估計(jì)或最大后驗(yàn)估計(jì)的算法,在數(shù)據(jù)挖掘領(lǐng)域的聚類算法中應(yīng)用廣泛。以基于高斯混合模型的EM算法為例,它分為兩個(gè)階段交替執(zhí)行直到模型參數(shù)趨于收斂:

    (1)步驟:根據(jù)數(shù)據(jù)集和模型參數(shù)計(jì)算對(duì)數(shù)似然函數(shù)的條件期望;

    (2)更新模型參數(shù),使對(duì)數(shù)似然函數(shù)期望最大化。

    在Hadoop上運(yùn)行EM算法時(shí),模型參數(shù)為所有任務(wù)所共享,其訪問效率同樣會(huì)直接影響算法的執(zhí)行效率。同樣,當(dāng)模型參數(shù)數(shù)據(jù)量過大時(shí),又該如何解決數(shù)據(jù)的存儲(chǔ)和訪問問題。

    上述三類問題都涉及到任務(wù)節(jié)點(diǎn)如何訪問共享數(shù)據(jù)這一共性問題。雖然Hadoop提供了分布式文件緩存機(jī)制,可以將共享文件拷貝到每個(gè)任務(wù)節(jié)點(diǎn)并裝載到內(nèi)存中以實(shí)現(xiàn)數(shù)據(jù)的共享,該方法確實(shí)可以在一定程度上解決上述問題;但是當(dāng)共享文件過大無法正常裝載到任務(wù)節(jié)點(diǎn)的內(nèi)存中時(shí),該方法就不再適用,這在實(shí)際應(yīng)用中并不罕見;況且,對(duì)每一個(gè)任務(wù)節(jié)點(diǎn)來說,它所需要的數(shù)據(jù)可能僅僅是全部共享數(shù)據(jù)的一小部分,這種情況下將全部共享數(shù)據(jù)拷貝到任務(wù)節(jié)點(diǎn)上不僅浪費(fèi)網(wǎng)絡(luò)和內(nèi)存資源,而且還可能拖慢任務(wù)的執(zhí)行。因此,提出了使用Redis內(nèi)存數(shù)據(jù)庫(kù)作為分布式緩存,實(shí)現(xiàn)在Hadoop任務(wù)節(jié)點(diǎn)間快速獲取共享數(shù)據(jù)的方法,從而更好地解決上述問題。

    3 解決方案

    根據(jù)討論中提及的三個(gè)問題,需要一種能夠在Hadoop任務(wù)節(jié)點(diǎn)間快速獲取共享數(shù)據(jù)的機(jī)制,并且必須滿足以下條件:

    (1)鍵必須保證全局唯一性;

    (2)必須能夠支持大規(guī)模的數(shù)據(jù)存儲(chǔ);

    (3)必須確保在高并發(fā)量前提下數(shù)據(jù)訪問的高效性。

    Redis內(nèi)存數(shù)據(jù)庫(kù)的特性剛好滿足上述需求[13],因此,提出子在Hadoop中引入Redis分布式緩存來解決共享數(shù)據(jù)的存儲(chǔ)和訪問問題。

    使用Redis作為分布式緩存,需要確保Hadoop集群中各節(jié)點(diǎn)都能同等地訪問Redis中存儲(chǔ)的數(shù)據(jù),因此,采用圖1的架構(gòu)方式。這種將Hadoop集群與Redis分布式緩存直接相連的方式,不僅在實(shí)現(xiàn)上比較簡(jiǎn)單,而且也最大程度地保證了數(shù)據(jù)存取的效率。對(duì)于分布式緩存的使用,一般分兩步進(jìn)行:

    首先將HDFS上的共享數(shù)據(jù)加載到分布式緩存中。這一步并不需要用到Reduce,因此發(fā)起一個(gè)只有Map階段的作業(yè)即可完成,各Map任務(wù)可以并行地讀取數(shù)據(jù),并保存到分布式緩存中。

    當(dāng)分布式緩存數(shù)據(jù)準(zhǔn)備完成后,啟動(dòng)需要執(zhí)行的MapReduce作業(yè)。各任務(wù)節(jié)點(diǎn)在初始化時(shí)使用Jedis客戶端建立起到Redis集群的連接,這樣,在任務(wù)執(zhí)行中需要訪問緩存時(shí)就可以隨時(shí)通過連接讀寫共享數(shù)據(jù)。

    圖1 Hadoop與Redis分布式緩存架構(gòu)圖

    為了進(jìn)一步闡述問題,并驗(yàn)證Redis作為分布式緩存的性能,以網(wǎng)頁(yè)排名算法為例,闡述Redis分布式緩存在Hadoop任務(wù)中的應(yīng)用。在實(shí)例中使用原始的網(wǎng)頁(yè)排名算法進(jìn)行闡述,一方面,研究的主要目的在于使用Redis分布式緩存解決大規(guī)模共享數(shù)據(jù)問題,而非僅僅論述網(wǎng)頁(yè)排名算法的優(yōu)化問題,對(duì)網(wǎng)頁(yè)排名算法的優(yōu)化不作為研究重點(diǎn);另一方面,對(duì)網(wǎng)頁(yè)排名算法的優(yōu)化大都集中于如何減少迭代次數(shù)或如何在每次迭代中減少需要處理的數(shù)據(jù)等方面,優(yōu)化后的算法仍可能出現(xiàn)上述問題,而原始的網(wǎng)頁(yè)排名算法具有很好的代表性,能夠較簡(jiǎn)明地說明問題。

    網(wǎng)頁(yè)排名算法計(jì)算網(wǎng)頁(yè)排名基于以下兩個(gè)基本假設(shè):

    (1)數(shù)量假設(shè):一個(gè)具有較多鏈入的網(wǎng)頁(yè)會(huì)有較高得分。

    (2)質(zhì)量假設(shè):一個(gè)得分較高的網(wǎng)頁(yè)能夠給其鏈出的網(wǎng)頁(yè)打出較高的分?jǐn)?shù)。

    根據(jù)這兩個(gè)假設(shè),可得[9]:

    (1)

    其中,pi和pj表示兩個(gè)不同的網(wǎng)頁(yè);PR(pi)和PR(pj)分別表示pi和pj的得分;M(pi)表示所有鏈入pi的網(wǎng)頁(yè)集合;L(pj)表示pj鏈出的網(wǎng)頁(yè)數(shù)目;N表示全部網(wǎng)頁(yè)數(shù)目;d表示阻尼系數(shù)(表示用戶到達(dá)某網(wǎng)頁(yè)后繼續(xù)向后瀏覽的概率,一般取0.85)。

    網(wǎng)頁(yè)排名算法計(jì)算網(wǎng)頁(yè)得分是一個(gè)迭代計(jì)算的過程。初始時(shí)賦予每個(gè)網(wǎng)頁(yè)相同的得分,在之后的每次迭代中,使用式(1)更新得分,直到所有網(wǎng)頁(yè)得分穩(wěn)定時(shí)算法終止。

    使用Redis作為分布式緩存,在Hadoop上實(shí)現(xiàn)網(wǎng)頁(yè)排名迭代算法的步驟如下:

    (1)原始數(shù)據(jù)的預(yù)處理。對(duì)原始數(shù)據(jù)進(jìn)行處理,生成符合格式要求的網(wǎng)頁(yè)鏈接數(shù)據(jù)文件,并保存到HDFS中。網(wǎng)頁(yè)鏈接數(shù)據(jù)文件的每行第一列表示當(dāng)前網(wǎng)頁(yè)鏈接地址,后面的各列表示當(dāng)前網(wǎng)頁(yè)所有鏈出的網(wǎng)頁(yè)地址,各列以Tab鍵分隔,后文出現(xiàn)的網(wǎng)頁(yè)鏈接數(shù)據(jù),如無特別說明,都使用該格式。

    (2)初始化網(wǎng)頁(yè)得分?jǐn)?shù)據(jù)并保存到Redis中。啟動(dòng)一個(gè)只有Map階段的作業(yè)用來讀取網(wǎng)頁(yè)鏈接數(shù)據(jù),Map函數(shù)中,將當(dāng)前的鍵(url)和初始化得分(score)以鍵值對(duì)的形式保存到Redis分布式緩存中。Map函數(shù)的偽代碼如下:

    1 //key:當(dāng)前網(wǎng)頁(yè)的鏈接地址;value:以Tab鍵分隔的所有鏈出地址

    2 Map(key,value) {

    3 init = 0.5; //默認(rèn)初始得分

    4 setToRedis(key,init); //將鍵值對(duì)保存到Redis分布式緩存中

    5 }

    (3)使用一次MapReduce作業(yè)完成網(wǎng)頁(yè)排名算法的一次迭代。在每次迭代的Map函數(shù)中,從分布式緩存中獲取當(dāng)前網(wǎng)頁(yè)得分(score),將該得分平均分配給各鏈出地址(url,共n個(gè))作為對(duì)該鏈接的打分,并以鍵值對(duì)輸出。Map函數(shù)的偽代碼如下:

    1 //key:當(dāng)前網(wǎng)頁(yè)的鏈接地址;value:以Tab鍵分隔的所有鏈出地址

    2 Map(key,value) {

    3 //根據(jù)鍵從Redis分布式緩存中獲取相應(yīng)的值

    4 score=getFromRedis(key);

    5 urls=value.split(" ");//將value以Tab鍵分割得到數(shù)組

    6 for(url :urls) {

    7 context.write(url,score/urls.length);//Map的輸出

    8 }

    9 }

    在每次迭代的Reduce函數(shù)中,將其他網(wǎng)頁(yè)給本網(wǎng)頁(yè)(url)的打分計(jì)算匯總后得出本網(wǎng)頁(yè)的得分(score),并以鍵值對(duì)的形式保存到Redis分布式緩存中。Reduce函數(shù)的偽代碼如下:

    1 //key:本網(wǎng)頁(yè)的鏈接地址;values:其他網(wǎng)頁(yè)給本網(wǎng)頁(yè)的打分集合

    2 Reduce(key,values) {

    3d=0.85; //阻尼系數(shù)

    4 //sum(values):對(duì)values集合進(jìn)行求和

    5 score=(1-d)+d*sum(values);

    6 setToRedis(key,score); //將鍵值對(duì)保存到Redis分布式緩存中

    7 }

    4 實(shí)驗(yàn)結(jié)果及分析

    實(shí)驗(yàn)中使用9臺(tái)普通PC,每臺(tái)PC配置如下:3 GB內(nèi)存,酷睿2雙核CPU,500 GB硬盤,Ubuntu 14.04操作系統(tǒng)。實(shí)驗(yàn)使用Apache Hadoop 1.2.1,其中1臺(tái)作為NameNode和JobTracker,其他8臺(tái)作為DataNode;Redis版本3.0.7,分別搭建在8臺(tái)DataNode上,構(gòu)成一個(gè)8節(jié)點(diǎn)的Redis集群作為分布式緩存。

    實(shí)驗(yàn)數(shù)據(jù)使用網(wǎng)絡(luò)爬蟲從互聯(lián)網(wǎng)上爬取,經(jīng)過過濾和預(yù)處理后得到符合格式要求的網(wǎng)頁(yè)鏈接數(shù)據(jù)。鏈接數(shù)據(jù)共包含36 323 864個(gè)網(wǎng)頁(yè)節(jié)點(diǎn),大小約37 GB。實(shí)驗(yàn)按照第三節(jié)中的步驟進(jìn)行,作業(yè)執(zhí)行時(shí)間使用4次迭代的平均時(shí)間計(jì)算。在每次迭代中,需要讀取緩存36 323 864次,寫入緩存36 323 864次,共計(jì)訪問緩存72 647 728次。

    實(shí)驗(yàn)結(jié)果如表1和圖2所示。

    表1 Redis分布式緩存實(shí)驗(yàn)結(jié)果

    圖2 節(jié)點(diǎn)數(shù)與執(zhí)行時(shí)間和吞吐率關(guān)系圖

    從圖2中可以看出,隨著Hadoop集群節(jié)點(diǎn)數(shù)的增加,作業(yè)執(zhí)行所需的時(shí)間在減少。這是因?yàn)殡S著任務(wù)并發(fā)量的增大,相同時(shí)間內(nèi)能夠處理更多的數(shù)據(jù),因此作業(yè)執(zhí)行所需的時(shí)間也會(huì)相應(yīng)減少。與此同時(shí),隨著Hadoop集群節(jié)點(diǎn)數(shù)的增加,Redis分布式緩存的吞吐率接近直線增加(R=0.996),也就是說,Redis分布式緩存的吞吐率與并發(fā)訪問量有較好的線性關(guān)系。

    為了對(duì)使用了Redis分布式緩存的作業(yè)與普通MapReduce作業(yè)的執(zhí)行效率進(jìn)行比較,實(shí)現(xiàn)了PageRank算法的MapReduce程序[10,14]:首先啟動(dòng)一個(gè)Hadoop作業(yè),將網(wǎng)頁(yè)鏈接文件和鏈接得分文件同時(shí)輸入,通過Reduce匯總后計(jì)算得到該網(wǎng)頁(yè)對(duì)其他網(wǎng)頁(yè)的打分,作為中間文件輸出到HDFS上;然后啟動(dòng)另一個(gè)Hadoop作業(yè),將中間文件作為輸入,通過Reduce匯總后計(jì)算得到每個(gè)網(wǎng)頁(yè)的打分并輸出。這樣就完成了PageRank算法的一次迭代。使用與上述實(shí)驗(yàn)同樣的數(shù)據(jù)集和集群進(jìn)行實(shí)驗(yàn),結(jié)果如表2和圖3所示。

    表2 使用Redis分布式緩存與普通MapReduce作業(yè)的實(shí)驗(yàn)結(jié)果

    從圖3中可以看出,使用Redis分布式緩存后,PageRank作業(yè)的執(zhí)行效率與普通基于MapReduce的作業(yè)執(zhí)行效率相比有所提高,這主要是因?yàn)閺膬?nèi)存中讀取數(shù)據(jù)與從硬盤讀取數(shù)據(jù)相比更加高效的緣故;其次,直接從Redis中獲取共享數(shù)據(jù)與采用其他替代的方式間接獲取共享數(shù)據(jù)相比,不僅降低了程序的復(fù)雜度,而且更加簡(jiǎn)便高效。

    圖3 使用Redis分布式緩存與普通MapReduce的作業(yè)執(zhí)行時(shí)間

    以上結(jié)果表明,Redis集群在高并發(fā)的情況下仍然能夠保持優(yōu)良的性能,因此Redis能夠很好地與Hadoop平臺(tái)相結(jié)合,作為在任務(wù)執(zhí)行過程中高效獲取共享數(shù)據(jù)的分布式緩存,解決共享數(shù)據(jù)的存儲(chǔ)問題。而且,Redis集群本身還具有很好的可擴(kuò)展性,可以通過增加節(jié)點(diǎn)數(shù)目擴(kuò)大集群的容量,而且在性能上也能保持接近線性的增長(zhǎng),這一特性使得日后數(shù)據(jù)規(guī)模擴(kuò)大后可以比較簡(jiǎn)單地通過增加節(jié)點(diǎn)的方式實(shí)現(xiàn)擴(kuò)展,而不用對(duì)源程序作任何修改。同時(shí),Redis作為成熟的商業(yè)產(chǎn)品,具有使用簡(jiǎn)單、易于推廣的特點(diǎn),使得該方案能夠比較容易地運(yùn)用于實(shí)踐中,為Hadoop任務(wù)中共享數(shù)據(jù)的訪問提供一種簡(jiǎn)單、高效的解決方案。

    關(guān)于所提到的最小錯(cuò)誤率訓(xùn)練算法和最大期望算法的問題,也可以使用與上面所提到的網(wǎng)頁(yè)排名算法類似的解決方案,即將共享數(shù)據(jù)加載到Redis分布式緩存中,這樣在任務(wù)執(zhí)行時(shí)各任務(wù)節(jié)點(diǎn)就可以隨時(shí)訪問分布式緩存中的數(shù)據(jù),此處就不再一一贅述。

    綜上所述,Redis分布式緩存具有性能高、擴(kuò)展性好、使用簡(jiǎn)單等特點(diǎn),因此可以作為在Hadoop任務(wù)中訪問共享數(shù)據(jù)的有力工具,為相關(guān)問題提供一種簡(jiǎn)單高效的解決方案。雖然Redis作為分布式緩存在性能上已經(jīng)足夠高效,但是仍有可以進(jìn)一步優(yōu)化之處,比如:使用批量提交請(qǐng)求的方式減少交互次數(shù),使用異步的請(qǐng)求方式提高并行度,使用UDP協(xié)議加快訪問速度,實(shí)現(xiàn)Redis集群負(fù)載均衡以提高效率……這些Redis性能優(yōu)化問題值得進(jìn)一步深入研究。

    5 結(jié)束語

    為了解決實(shí)際應(yīng)用中Hadoop任務(wù)節(jié)點(diǎn)快速訪問較大規(guī)模的共享數(shù)據(jù)的相關(guān)問題,以在Hadoop集群中引入Redis分布式緩存的方式,為該類問題提供了一種簡(jiǎn)單、高效的解決方案。實(shí)驗(yàn)結(jié)果表明,Redis分布式緩存在高并發(fā)訪問時(shí)仍具有優(yōu)異的性能,同時(shí)還具有擴(kuò)展性好、使用簡(jiǎn)單等特點(diǎn),這些使得該方案能夠很好地與實(shí)踐相結(jié)合,解決Hadoop任務(wù)中共享數(shù)據(jù)的訪問問題。

    [1] Viktor M S,Cukier K.大數(shù)據(jù)時(shí)代[M].杭州:浙江人民出版社,2013.

    [2] 嚴(yán)霄鳳,張德馨.大數(shù)據(jù)研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013,23(4):168-172.

    [3] 王彥明, 奉國(guó)和, 薛 云.近年來Hadoop國(guó)外研究綜述[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2013,22(6):1-5.

    [4] 杜 江,張 錚,張杰鑫,等.MapReduce并行編程模型研究綜述[J].計(jì)算機(jī)科學(xué),2015,42(6A):537-541.

    [5] Dean J,Ghemawat S.MapReduce:simplified data processing on large clusters[J].Communications of the ACM,2008,51(1):107-113.

    [6] Redis[EB/OL].2016-01-28.http://redis.io.

    [7] How fast is Redis[EB/OL].2013-08-20.http://redis.io/topics/benchmarks.

    [8] Redis cluster specification[EB/OL].2014-10-09.http://redis.io/topics/cluster-spec.

    [9] Rai P,Lal A.Google PageRank algorithm:Markov chain model and hidden Markov model[J].International Journal of Computer Applications,2016,138(9):9-13.

    [10] 李遠(yuǎn)方,鄧世昆,聞?dòng)癖?等.Hadoop-MapReduce下的PageRank矩陣分塊算法[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,21(8):6-9.

    [11] Och F J,Jahr M E,Thayer I E.Minimum error rate training with a large number of features for machine learning:US,2013/0144593 A1[P].2013-06-06.

    [12] 胡愛娜,蔡曉艷.基于MapReduce的分布式期望最大化算法[J].科學(xué)技術(shù)與工程,2013,13(16):4603-4606.

    [13] 曾超宇,李金香.Redis在高速緩存系統(tǒng)中的應(yīng)用[J].微型機(jī)與應(yīng)用,2013,32(12):11-13.

    [14] Leskovec J,Rajaraman A.Mining of massive datasets[M].Cambridge:Cambridge University Press,2014.

    Application of Redis Distributed Caching Technology in Hadoop Framework

    YAO Jing-wei1,YANG Fu-jun2

    (1.School of IoT Engineering,Jiangnan University,Wuxi 214122,China; 2.Computational Aerodynamics Institute,China Aerodynamics Research and Development Center,Mianyang 621000,China)

    In the scene of large scale data analysis with Hadoop,rapid accessing to shared resources is a typical problem that has not been satisfactorily solved so far.Examples of such problem include page rank algorithm,minimum error-rate training algorithm,expectation maximization algorithm and so on.Although solutions to such problems have existed,the actual effect is not satisfactory.Thus,an open-source distributed in-memory database,Redis,has been explored to provide high-throughput access to shared resources in Hadoop.Experimental results illustrate that Redis has the characteristic of linear increase in throughput with respect to cluster size so that it can provide a general-purpose solution for rapid accessing to shared resources in Hadoop cluster,and that it has provided an easier implementation of algorithms that has not been satisfactorily solved at large scale with Hadoop.Meanwhile,the use of Redis,the commercial-grade open-source tool,implies that the proposed solution has been easily adapted in both research and production environments.

    Redis;distributed caching;Hadoop;MapReduce

    2016-07-08

    2016-10-11 網(wǎng)絡(luò)出版時(shí)間:2017-04-28

    工信部高技術(shù)船舶項(xiàng)目(2016[26])

    姚經(jīng)緯(1991-),男,碩士,研究方向?yàn)橛?jì)算機(jī)應(yīng)用技術(shù)、軟件工程。

    http://kns.cnki.net/kcms/detail/61.1450.TP.20170428.1703.060.html

    TP311.5

    A

    1673-629X(2017)06-0146-05

    10.3969/j.issn.1673-629X.2017.06.030

    猜你喜歡
    作業(yè)
    作業(yè),我終于打敗你了!
    讓人羨慕嫉妒恨的“作業(yè)人”
    作業(yè)聯(lián)盟
    我愿作業(yè)少一點(diǎn)
    快來寫作業(yè)
    一次特殊的作業(yè)
    誰沒交作業(yè)
    修改“作業(yè)”
    跟一群抄作業(yè)的講垂直進(jìn)步?
    能源(2016年2期)2016-12-01 05:10:46
    作業(yè)
    故事大王(2016年7期)2016-09-22 17:30:08
    亚洲av五月六月丁香网| 天天躁日日操中文字幕| 久久久久国内视频| 精品人妻一区二区三区麻豆 | 国内精品美女久久久久久| 在线观看一区二区三区| 一个人免费在线观看电影| 欧美色视频一区免费| 亚洲人成网站在线播| 熟妇人妻久久中文字幕3abv| 女人高潮潮喷娇喘18禁视频| 国产三级黄色录像| 非洲黑人性xxxx精品又粗又长| 国产色婷婷99| 国产爱豆传媒在线观看| www.999成人在线观看| 性色avwww在线观看| 亚洲av不卡在线观看| 亚洲一区二区三区不卡视频| 国产真实伦视频高清在线观看 | 欧美黄色片欧美黄色片| 给我免费播放毛片高清在线观看| 国产综合懂色| 老汉色∧v一级毛片| 免费电影在线观看免费观看| 国产一区二区激情短视频| 露出奶头的视频| 亚洲18禁久久av| 精品乱码久久久久久99久播| 久久香蕉国产精品| 久久6这里有精品| 久久久久久久精品吃奶| 国产精品久久久久久人妻精品电影| 国产精品 国内视频| 精品欧美国产一区二区三| e午夜精品久久久久久久| 熟女少妇亚洲综合色aaa.| 成人一区二区视频在线观看| 免费av观看视频| 亚洲色图av天堂| 每晚都被弄得嗷嗷叫到高潮| 少妇人妻一区二区三区视频| 久久香蕉国产精品| 在线看三级毛片| 麻豆一二三区av精品| 每晚都被弄得嗷嗷叫到高潮| 久久久精品欧美日韩精品| 亚洲国产色片| 真人做人爱边吃奶动态| 色在线成人网| 99久久无色码亚洲精品果冻| 国产又黄又爽又无遮挡在线| 动漫黄色视频在线观看| 久久久久久国产a免费观看| 国产淫片久久久久久久久 | 午夜视频国产福利| 在线观看av片永久免费下载| 欧美日韩乱码在线| 亚洲男人的天堂狠狠| 婷婷亚洲欧美| 国产精品久久久人人做人人爽| 国产精品 国内视频| 成人18禁在线播放| 久久国产精品影院| 黄色女人牲交| 国产精品嫩草影院av在线观看 | 欧美乱妇无乱码| 国产色爽女视频免费观看| 久久香蕉精品热| 精品乱码久久久久久99久播| 好男人在线观看高清免费视频| 夜夜躁狠狠躁天天躁| 欧美三级亚洲精品| 久久久久久久久久黄片| 欧美日本亚洲视频在线播放| 黄色视频,在线免费观看| 欧美色欧美亚洲另类二区| 91九色精品人成在线观看| av天堂在线播放| 天天添夜夜摸| 亚洲国产中文字幕在线视频| 亚洲av二区三区四区| 男女做爰动态图高潮gif福利片| 久久天躁狠狠躁夜夜2o2o| 日韩欧美国产在线观看| 成人特级黄色片久久久久久久| 欧美黑人欧美精品刺激| 一本一本综合久久| 国产精品电影一区二区三区| 村上凉子中文字幕在线| 亚洲五月天丁香| 久久久久精品国产欧美久久久| 真人做人爱边吃奶动态| 国产一区二区在线观看日韩 | 一区二区三区国产精品乱码| 一级a爱片免费观看的视频| 丝袜美腿在线中文| 亚洲在线观看片| 1000部很黄的大片| 偷拍熟女少妇极品色| 久久草成人影院| 亚洲av五月六月丁香网| 老汉色av国产亚洲站长工具| 最新在线观看一区二区三区| 精品福利观看| 欧美黄色片欧美黄色片| 两人在一起打扑克的视频| 亚洲va日本ⅴa欧美va伊人久久| 18禁黄网站禁片免费观看直播| 岛国在线免费视频观看| 亚洲av成人精品一区久久| 一进一出抽搐gif免费好疼| 淫秽高清视频在线观看| 亚洲人成网站在线播| 麻豆成人av在线观看| 深夜精品福利| 97超级碰碰碰精品色视频在线观看| 无限看片的www在线观看| 欧美在线黄色| 亚洲av免费高清在线观看| 精品国内亚洲2022精品成人| 午夜福利在线在线| 国产精品 国内视频| 黑人欧美特级aaaaaa片| 午夜影院日韩av| 69人妻影院| 国产精品久久电影中文字幕| 精品国产超薄肉色丝袜足j| 九色成人免费人妻av| 久久久久性生活片| 亚洲专区国产一区二区| 波多野结衣高清作品| 久99久视频精品免费| 日韩欧美在线乱码| 国产伦精品一区二区三区视频9 | 亚洲中文字幕日韩| 俄罗斯特黄特色一大片| 午夜久久久久精精品| 色哟哟哟哟哟哟| 久久久久久大精品| 欧洲精品卡2卡3卡4卡5卡区| 欧美日韩黄片免| 欧美一区二区国产精品久久精品| 欧美中文日本在线观看视频| 成人特级黄色片久久久久久久| 亚洲精品国产精品久久久不卡| 在线看三级毛片| 日韩精品中文字幕看吧| 19禁男女啪啪无遮挡网站| 一进一出抽搐动态| 亚洲av五月六月丁香网| 欧美日韩中文字幕国产精品一区二区三区| 色av中文字幕| 国内精品美女久久久久久| 最近视频中文字幕2019在线8| 亚洲欧美精品综合久久99| 国产乱人伦免费视频| 亚洲国产欧洲综合997久久,| 91麻豆av在线| 老汉色∧v一级毛片| 99国产综合亚洲精品| 熟女少妇亚洲综合色aaa.| 精品国产超薄肉色丝袜足j| 90打野战视频偷拍视频| 国产综合懂色| av中文乱码字幕在线| 日韩av在线大香蕉| 亚洲avbb在线观看| 一本综合久久免费| 不卡一级毛片| 欧美bdsm另类| 亚洲欧美一区二区三区黑人| 性欧美人与动物交配| 成人一区二区视频在线观看| 国产午夜福利久久久久久| 国产精品久久久久久精品电影| 亚洲国产精品成人综合色| 少妇人妻精品综合一区二区 | 男女之事视频高清在线观看| 中文在线观看免费www的网站| 人妻夜夜爽99麻豆av| 久久久精品欧美日韩精品| 亚洲男人的天堂狠狠| 麻豆久久精品国产亚洲av| av在线天堂中文字幕| 久久精品国产99精品国产亚洲性色| 一本精品99久久精品77| 欧美日韩乱码在线| 俺也久久电影网| 成熟少妇高潮喷水视频| 国产伦一二天堂av在线观看| 精品人妻1区二区| 午夜福利免费观看在线| av女优亚洲男人天堂| 久久久精品大字幕| 国产99白浆流出| 国产私拍福利视频在线观看| 欧美成人a在线观看| 欧美另类亚洲清纯唯美| 免费看光身美女| eeuss影院久久| 99国产精品一区二区蜜桃av| 色综合欧美亚洲国产小说| 亚洲精品456在线播放app | 最新美女视频免费是黄的| 免费av观看视频| 国产99白浆流出| 一级黄片播放器| 少妇高潮的动态图| 淫秽高清视频在线观看| 精品久久久久久久久久免费视频| 亚洲精品成人久久久久久| 国产亚洲精品久久久com| 国产熟女xx| 丰满人妻一区二区三区视频av | 成年女人看的毛片在线观看| 亚洲欧美日韩卡通动漫| 中文在线观看免费www的网站| 精品人妻1区二区| 日韩高清综合在线| 亚洲最大成人中文| 女生性感内裤真人,穿戴方法视频| 成人亚洲精品av一区二区| 1000部很黄的大片| 十八禁人妻一区二区| 好看av亚洲va欧美ⅴa在| 久久精品国产清高在天天线| 婷婷丁香在线五月| 成人国产一区最新在线观看| 午夜老司机福利剧场| 天堂av国产一区二区熟女人妻| 草草在线视频免费看| 少妇人妻精品综合一区二区 | 久久精品人妻少妇| 免费观看的影片在线观看| 国产午夜精品论理片| 深夜精品福利| 亚洲国产中文字幕在线视频| 欧美av亚洲av综合av国产av| 很黄的视频免费| 在线观看免费视频日本深夜| 欧美一区二区亚洲| 色综合婷婷激情| 国产私拍福利视频在线观看| 国产精品久久电影中文字幕| 亚洲成人精品中文字幕电影| 51国产日韩欧美| 亚洲专区国产一区二区| 欧美zozozo另类| a级一级毛片免费在线观看| 免费av毛片视频| 国产69精品久久久久777片| av在线蜜桃| 亚洲五月天丁香| 好看av亚洲va欧美ⅴa在| 一二三四社区在线视频社区8| 成人亚洲精品av一区二区| 日韩精品青青久久久久久| 在线观看午夜福利视频| 国产精品国产高清国产av| 欧美一区二区国产精品久久精品| 亚洲av成人精品一区久久| 国产不卡一卡二| 免费在线观看亚洲国产| 国产精品综合久久久久久久免费| 午夜老司机福利剧场| 99国产精品一区二区三区| 哪里可以看免费的av片| 亚洲天堂国产精品一区在线| 精品久久久久久,| 99在线视频只有这里精品首页| 亚洲av二区三区四区| 超碰av人人做人人爽久久 | 美女黄网站色视频| www国产在线视频色| 精品人妻偷拍中文字幕| tocl精华| 黄色成人免费大全| 欧美激情在线99| 午夜免费男女啪啪视频观看 | 中文字幕av在线有码专区| 国产私拍福利视频在线观看| 成年女人毛片免费观看观看9| 日韩人妻高清精品专区| 国产淫片久久久久久久久 | 好男人电影高清在线观看| 日韩av在线大香蕉| 无限看片的www在线观看| 久久久久久国产a免费观看| 最近最新中文字幕大全电影3| www日本黄色视频网| 少妇人妻精品综合一区二区 | 村上凉子中文字幕在线| aaaaa片日本免费| 两个人的视频大全免费| 桃红色精品国产亚洲av| 又紧又爽又黄一区二区| 国产精品 国内视频| 国产探花极品一区二区| 一个人免费在线观看电影| 一区二区三区国产精品乱码| 久久久久久国产a免费观看| 日本一本二区三区精品| 久久中文看片网| 一卡2卡三卡四卡精品乱码亚洲| 婷婷精品国产亚洲av在线| 亚洲欧美日韩高清专用| 日韩中文字幕欧美一区二区| 久久亚洲真实| 亚洲国产精品合色在线| 成人午夜高清在线视频| 亚洲欧美日韩东京热| 最近视频中文字幕2019在线8| 成人一区二区视频在线观看| 哪里可以看免费的av片| 日日夜夜操网爽| 男女床上黄色一级片免费看| 国产色爽女视频免费观看| 男女做爰动态图高潮gif福利片| 久久草成人影院| 亚洲精品一区av在线观看| 欧美日韩福利视频一区二区| 精品电影一区二区在线| 可以在线观看的亚洲视频| 日本黄大片高清| 啪啪无遮挡十八禁网站| 国产精品电影一区二区三区| 搡老熟女国产l中国老女人| 伊人久久精品亚洲午夜| 日本 av在线| 青草久久国产| 成人欧美大片| 亚洲精品日韩av片在线观看 | 日本黄色片子视频| 女同久久另类99精品国产91| 精品国产三级普通话版| 18禁美女被吸乳视频| 美女 人体艺术 gogo| 成人永久免费在线观看视频| av国产免费在线观看| 高清毛片免费观看视频网站| 亚洲中文日韩欧美视频| 国产真实伦视频高清在线观看 | 男女午夜视频在线观看| 免费看十八禁软件| 麻豆一二三区av精品| 在线观看一区二区三区| 亚洲国产色片| 手机成人av网站| 久久香蕉国产精品| 法律面前人人平等表现在哪些方面| 国产一区二区三区视频了| 观看美女的网站| 亚洲国产日韩欧美精品在线观看 | 国产精品国产高清国产av| 男女之事视频高清在线观看| 色老头精品视频在线观看| 国产黄色小视频在线观看| 成人永久免费在线观看视频| 精品电影一区二区在线| 免费搜索国产男女视频| 麻豆一二三区av精品| 午夜免费观看网址| 久久草成人影院| 日韩免费av在线播放| 欧美成人一区二区免费高清观看| 亚洲成av人片在线播放无| 中文字幕人妻丝袜一区二区| 欧美一级毛片孕妇| 国产精品综合久久久久久久免费| 久久精品91无色码中文字幕| 国产亚洲精品av在线| 中文字幕人妻丝袜一区二区| 校园春色视频在线观看| 三级国产精品欧美在线观看| 欧美成人性av电影在线观看| 啦啦啦韩国在线观看视频| 99久久精品热视频| 久久草成人影院| 欧美又色又爽又黄视频| 成年人黄色毛片网站| 亚洲av五月六月丁香网| 舔av片在线| 国产探花在线观看一区二区| 久久婷婷人人爽人人干人人爱| 亚洲人与动物交配视频| 在线观看免费视频日本深夜| 床上黄色一级片| 一级黄片播放器| 日本黄大片高清| 深爱激情五月婷婷| 国产精品永久免费网站| 午夜免费观看网址| 免费在线观看日本一区| 久久久久久大精品| 欧美绝顶高潮抽搐喷水| 国产精品久久久久久人妻精品电影| 网址你懂的国产日韩在线| 99久久无色码亚洲精品果冻| 日韩中文字幕欧美一区二区| 精品熟女少妇八av免费久了| 免费看a级黄色片| 最新在线观看一区二区三区| 色噜噜av男人的天堂激情| 日韩欧美在线二视频| 一进一出好大好爽视频| 久久久精品大字幕| 欧美日韩中文字幕国产精品一区二区三区| 国产亚洲精品一区二区www| 性色av乱码一区二区三区2| 婷婷亚洲欧美| 美女cb高潮喷水在线观看| 国产99白浆流出| 成人性生交大片免费视频hd| 亚洲精品在线观看二区| 欧美成人免费av一区二区三区| 国产精品香港三级国产av潘金莲| 老师上课跳d突然被开到最大视频 久久午夜综合久久蜜桃 | 中文字幕人妻丝袜一区二区| 麻豆一二三区av精品| 欧美性猛交╳xxx乱大交人| 99国产精品一区二区三区| 99久久无色码亚洲精品果冻| 久久精品91蜜桃| 久久久久九九精品影院| 又黄又爽又免费观看的视频| 国产一区二区亚洲精品在线观看| 欧美色欧美亚洲另类二区| 不卡一级毛片| 免费看美女性在线毛片视频| 高潮久久久久久久久久久不卡| 岛国视频午夜一区免费看| 亚洲天堂国产精品一区在线| 一进一出好大好爽视频| 成人亚洲精品av一区二区| 亚洲精品在线观看二区| 日韩有码中文字幕| 女同久久另类99精品国产91| 制服丝袜大香蕉在线| 亚洲人成网站在线播| 91字幕亚洲| 欧美3d第一页| 精品国产三级普通话版| 国产精品一区二区免费欧美| 淫秽高清视频在线观看| 岛国在线观看网站| 亚洲五月婷婷丁香| 亚洲精品亚洲一区二区| 老司机福利观看| 久久久久久久久大av| 看免费av毛片| 日韩欧美免费精品| 久久国产精品影院| 操出白浆在线播放| 日韩欧美精品v在线| 熟女少妇亚洲综合色aaa.| 免费电影在线观看免费观看| 国产激情偷乱视频一区二区| 天美传媒精品一区二区| 久久香蕉精品热| 日韩有码中文字幕| 一级a爱片免费观看的视频| 高清在线国产一区| 亚洲熟妇熟女久久| 国产精品99久久久久久久久| 一边摸一边抽搐一进一小说| 精品电影一区二区在线| 国产单亲对白刺激| 久久中文看片网| 亚洲av中文字字幕乱码综合| 性色av乱码一区二区三区2| av福利片在线观看| 可以在线观看的亚洲视频| 日韩成人在线观看一区二区三区| 成人18禁在线播放| 国产三级黄色录像| 亚洲国产精品合色在线| 欧美成狂野欧美在线观看| 伊人久久大香线蕉亚洲五| 欧美一级毛片孕妇| 99精品欧美一区二区三区四区| 午夜视频国产福利| 69av精品久久久久久| 亚洲中文字幕日韩| 欧美色欧美亚洲另类二区| 国内揄拍国产精品人妻在线| 中文字幕久久专区| 男女之事视频高清在线观看| 日本黄色视频三级网站网址| 日本撒尿小便嘘嘘汇集6| 男女下面进入的视频免费午夜| 亚洲av成人精品一区久久| 国产一区二区三区在线臀色熟女| 国产乱人伦免费视频| 国产欧美日韩一区二区精品| 日韩欧美精品v在线| 中文在线观看免费www的网站| 欧美一区二区国产精品久久精品| 少妇高潮的动态图| 麻豆成人午夜福利视频| www日本黄色视频网| 日本一本二区三区精品| 免费看美女性在线毛片视频| 午夜两性在线视频| 久久久久性生活片| 欧美午夜高清在线| 午夜免费男女啪啪视频观看 | 精品国产亚洲在线| 国产视频内射| 精品国产美女av久久久久小说| 成人欧美大片| 色播亚洲综合网| 日韩欧美 国产精品| 国产精品久久久久久久久免 | 露出奶头的视频| 国语自产精品视频在线第100页| 麻豆成人午夜福利视频| 中文字幕人成人乱码亚洲影| 亚洲在线自拍视频| 天美传媒精品一区二区| 欧美日韩黄片免| www国产在线视频色| 97超视频在线观看视频| 国产精品99久久久久久久久| 给我免费播放毛片高清在线观看| 久久国产乱子伦精品免费另类| 国产又黄又爽又无遮挡在线| 叶爱在线成人免费视频播放| 国产精品久久久久久久电影 | 在线观看av片永久免费下载| 男插女下体视频免费在线播放| 97碰自拍视频| 久久伊人香网站| 久久香蕉国产精品| 国产乱人伦免费视频| 18禁黄网站禁片午夜丰满| 久久亚洲精品不卡| 精品国内亚洲2022精品成人| 久久久久久大精品| 国产精品亚洲美女久久久| 国产一区二区在线观看日韩 | 婷婷精品国产亚洲av| 听说在线观看完整版免费高清| 欧美日本视频| 丰满乱子伦码专区| 国产伦一二天堂av在线观看| 日韩欧美免费精品| 国产伦在线观看视频一区| 久久久国产精品麻豆| 国产熟女xx| 一夜夜www| 757午夜福利合集在线观看| 久久久久久久精品吃奶| 国产精品98久久久久久宅男小说| 欧美xxxx黑人xx丫x性爽| 精品国产超薄肉色丝袜足j| av女优亚洲男人天堂| 99国产极品粉嫩在线观看| 又爽又黄无遮挡网站| 男女下面进入的视频免费午夜| 亚洲第一电影网av| 天堂动漫精品| 亚洲中文日韩欧美视频| 我要搜黄色片| 婷婷亚洲欧美| 高清毛片免费观看视频网站| 人妻夜夜爽99麻豆av| 午夜激情欧美在线| 国产三级在线视频| 亚洲av电影不卡..在线观看| 搡女人真爽免费视频火全软件 | 一区二区三区高清视频在线| 国产久久久一区二区三区| 亚洲av日韩精品久久久久久密| 又紧又爽又黄一区二区| 女人被狂操c到高潮| 国产av不卡久久| 婷婷亚洲欧美| 99热6这里只有精品| 97超视频在线观看视频| 757午夜福利合集在线观看| 18禁黄网站禁片午夜丰满| 免费av毛片视频| 国产伦一二天堂av在线观看| 最近在线观看免费完整版| 亚洲美女视频黄频| 国产午夜精品论理片| 最近在线观看免费完整版| 久久这里只有精品中国| netflix在线观看网站| 男人的好看免费观看在线视频| 人人妻人人澡欧美一区二区| 怎么达到女性高潮| 日本 欧美在线| 亚洲美女黄片视频| 99精品在免费线老司机午夜| 男女视频在线观看网站免费| av中文乱码字幕在线| 怎么达到女性高潮| 久久天躁狠狠躁夜夜2o2o| 无遮挡黄片免费观看| 美女被艹到高潮喷水动态| 日韩欧美精品免费久久 | 久久久久久久精品吃奶| 久久久久亚洲av毛片大全| 天堂网av新在线| 国产精品 国内视频| 精品久久久久久,| 国产激情偷乱视频一区二区| 一本久久中文字幕| 一a级毛片在线观看| 91九色精品人成在线观看| 麻豆成人午夜福利视频| 一进一出好大好爽视频| 少妇熟女aⅴ在线视频|