日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hbase源码系列(九)StoreFile存储格式

發布時間:2025/1/21 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hbase源码系列(九)StoreFile存储格式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

從這一章開始要講Region Server這塊的了,但是在講Region Server這塊之前得講一下StoreFile,否則后面的不好講下去,這塊是基礎,Region Sever上面的操作,大部分都是基于它來進行的。

HFile概述

HFile是HBase中實際存數據的文件,為HBase提供高效快速的數據訪問。它是基于Hadoop的TFile,模仿Google Bigtable 架構中的SSTable格式。文件格式如下:

文件是變長的,唯一固定的塊是File Info和Trailer,如圖所示,Trailer有指向其它塊的指針,這些指針也寫在了文件里,Index塊記錄了data和meta塊的偏移量,meta塊是可選的。

下面我們從原來上來一個一個的看它們到底是啥樣的,先從入口看起,那就是StoreFile.Writer的append方法,先看怎么寫入的,然后它就怎么讀了,不知道怎么使用這個類的,可以看看我寫的這篇文章《非mapreduce生成Hfile,然后導入hbase當中》。

往HFile追加KeyValue?

不扯這些了,看一下StoreFile里面的append方法。

public void append(final KeyValue kv) throws IOException {//如果是新的rowkey的value,就追加到Bloomfilter里面去 appendGeneralBloomfilter(kv);//如果是DeleteFamily、DeleteFamilyVersion類型的kv appendDeleteFamilyBloomFilter(kv);writer.append(kv);//記錄最新的put的時間戳,更新時間戳范圍 trackTimestamps(kv);}

在用writer進行append之前先把kv寫到generalBloomFilterWriter里面,但是我們發現generalBloomFilterWriter是HFile.Writer里面的InlineBlockWriter。

generalBloomFilterWriter = BloomFilterFactory.createGeneralBloomAtWrite(conf, cacheConf, bloomType,(int) Math.min(maxKeys, Integer.MAX_VALUE), writer); //在createGeneralBloomAtWriter方法發現了以下代碼 ...... CompoundBloomFilterWriter bloomWriter = new CompoundBloomFilterWriter(getBloomBlockSize(conf),err, Hash.getHashType(conf), maxFold, cacheConf.shouldCacheBloomsOnWrite(),bloomType == BloomType.ROWCOL ? KeyValue.COMPARATOR : KeyValue.RAW_COMPARATOR);writer.addInlineBlockWriter(bloomWriter);

我們接下來看HFileWriterV2的append方法吧。

public void append(final KeyValue kv) throws IOException {append(kv.getMvccVersion(), kv.getBuffer(), kv.getKeyOffset(), kv.getKeyLength(),kv.getBuffer(), kv.getValueOffset(), kv.getValueLength());this.maxMemstoreTS = Math.max(this.maxMemstoreTS, kv.getMvccVersion()); }

為什么貼這段代碼,注意這個參數maxMemstoreTS,它取kv的mvcc來比較,mvcc是用來實現MemStore的原子性操作的,在MemStore flush的時候同一批次的mvcc都是一樣的,失敗的時候,把mvcc相同的全部干掉,這里提一下,以后應該還會說到,繼續追殺append方法。方法比較長,大家展開看看。

private void append(final long memstoreTS, final byte[] key, final int koffset, final int klength,final byte[] value, final int voffset, final int vlength)throws IOException {boolean dupKey = checkKey(key, koffset, klength);checkValue(value, voffset, vlength);if (!dupKey) {//在寫每一個新的KeyValue之間,都要檢查,到了BlockSize就重新寫一個HFileBlock checkBlockBoundary();}//如果當前的fsBlockWriter的狀態不對,就重新寫一個新塊if (!fsBlockWriter.isWriting())newBlock();// 把值寫入到ouputStream當中,怎么寫入的自己看啊 {DataOutputStream out = fsBlockWriter.getUserDataStream();out.writeInt(klength);totalKeyLength += klength;out.writeInt(vlength);totalValueLength += vlength;out.write(key, koffset, klength);out.write(value, voffset, vlength);if (this.includeMemstoreTS) {WritableUtils.writeVLong(out, memstoreTS);}}// 記錄每個塊的第一個key 和 上次寫的keyif (firstKeyInBlock == null) {firstKeyInBlock = new byte[klength];System.arraycopy(key, koffset, firstKeyInBlock, 0, klength);}lastKeyBuffer = key;lastKeyOffset = koffset;lastKeyLength = klength;entryCount++;} View Code

從上面我們可以看到來,HFile寫入的時候,是分一個塊一個塊的寫入的,每個Block塊64KB左右,這樣有利于數據的隨機訪問,不利于連續訪問,連續訪問需求大的,可以把Block塊的大小設置得大一點。好,我們繼續看checkBlockBoundary方法。

private void checkBlockBoundary() throws IOException {if (fsBlockWriter.blockSizeWritten() < blockSize)return;finishBlock();writeInlineBlocks(false);newBlock();}

簡單交代一下

1、結束一個block的時候,把block的所有數據寫入到hdfs的流當中,記錄一些信息到DataBlockIndex(塊的第一個key和上一個塊的key的中間值,塊的大小,塊的起始位置)。

2、writeInlineBlocks(false)給了一個false,是否要關閉,所以現在什么都沒干,它要等到最后才會輸出的。

3、newBlock方法就是重置輸出流,做好準備,讀寫下一個塊。

Close的時候

?close的時候就有得忙咯,從之前的圖上面來看,它在最后的時候是最忙的,因為它要寫入一大堆索引信息、附屬信息啥的。

public void close() throws IOException {boolean hasGeneralBloom = this.closeGeneralBloomFilter();boolean hasDeleteFamilyBloom = this.closeDeleteFamilyBloomFilter();writer.close(); }

在調用writer的close方法之前,close了兩個BloomFilter,把BloomFilter的類型寫進FileInfo里面去,把BloomWriter添加到Writer里面。下面進入正題吧,放大招了,我折疊吧。。。

public void close() throws IOException {if (outputStream == null) {return;}// 經過編碼壓縮的,把編碼壓縮方式寫進FileInfo里面blockEncoder.saveMetadata(this);//結束塊 finishBlock();//輸出DataBlockIndex索引的非root層信息writeInlineBlocks(true);FixedFileTrailer trailer = new FixedFileTrailer(2,HFileReaderV2.MAX_MINOR_VERSION);// 如果有meta塊的存在的話if (!metaNames.isEmpty()) {for (int i = 0; i < metaNames.size(); ++i) {long offset = outputStream.getPos();// 輸出meta的內容,它是meta的名字的集合,按照名字排序DataOutputStream dos = fsBlockWriter.startWriting(BlockType.META);metaData.get(i).write(dos);fsBlockWriter.writeHeaderAndData(outputStream);totalUncompressedBytes += fsBlockWriter.getUncompressedSizeWithHeader();// 把meta塊的信息加到meta塊的索引里 metaBlockIndexWriter.addEntry(metaNames.get(i), offset,fsBlockWriter.getOnDiskSizeWithHeader());}}//下面這部分是打開文件的時候就加載的部分,是前面部分的索引//HFileBlockIndex的根層次的索引long rootIndexOffset = dataBlockIndexWriter.writeIndexBlocks(outputStream);trailer.setLoadOnOpenOffset(rootIndexOffset);//Meta塊的索引 metaBlockIndexWriter.writeSingleLevelIndex(fsBlockWriter.startWriting(BlockType.ROOT_INDEX), "meta");fsBlockWriter.writeHeaderAndData(outputStream);totalUncompressedBytes += fsBlockWriter.getUncompressedSizeWithHeader();//如果需要寫入Memstore的最大時間戳到FileInfo里面if (this.includeMemstoreTS) {appendFileInfo(MAX_MEMSTORE_TS_KEY, Bytes.toBytes(maxMemstoreTS));appendFileInfo(KEY_VALUE_VERSION, Bytes.toBytes(KEY_VALUE_VER_WITH_MEMSTORE));}//把FileInfo的起始位置寫入trailer,然后輸出 writeFileInfo(trailer, fsBlockWriter.startWriting(BlockType.FILE_INFO));fsBlockWriter.writeHeaderAndData(outputStream);totalUncompressedBytes += fsBlockWriter.getUncompressedSizeWithHeader();// 輸出GENERAL_BLOOM_META、DELETE_FAMILY_BLOOM_META類型的BloomFilter的信息for (BlockWritable w : additionalLoadOnOpenData){fsBlockWriter.writeBlock(w, outputStream);totalUncompressedBytes += fsBlockWriter.getUncompressedSizeWithHeader();}//HFileBlockIndex的二級實體的層次 trailer.setNumDataIndexLevels(dataBlockIndexWriter.getNumLevels());//壓縮前的HFileBlockIndex的大小 trailer.setUncompressedDataIndexSize(dataBlockIndexWriter.getTotalUncompressedSize());//第一個HFileBlock的起始位置 trailer.setFirstDataBlockOffset(firstDataBlockOffset);//最后一個HFileBlock的起始位置 trailer.setLastDataBlockOffset(lastDataBlockOffset);//比較器的類型 trailer.setComparatorClass(comparator.getClass());//HFileBlockIndex的根實體的數量,應該是和HFileBlock的數量是一樣的//它每次都把HFileBlock的第一個key加進去 trailer.setDataIndexCount(dataBlockIndexWriter.getNumRootEntries());//把Trailer的信息寫入硬盤,關閉輸出流 finishClose(trailer);fsBlockWriter.release();} View Code

和圖片上寫的有些出入。

1、輸出HFileBlocks

2、輸出HFileBlockIndex的二級索引(我叫它二級索引,我也不知道對不對,HFileBlockIndex那塊我有點兒忘了,等我再重新調試的時候再看看吧)

3、如果有的話,輸出MetaBlock

下面的部分是打開文件的時候就加載的

4、輸出HFileBlockIndex的根索引

5、如果有的話,輸出MetaBlockIndex的根索引(它比較小,所以只有一層)

6、輸出文件信息(FileInfo)

7、輸出文件尾巴(Trailer)

?Open的時候

這部分打算講一下實例化Reader的時候,根據不同類型的文件是怎么實例化Reader的,在StoreFile里面搜索open方法。

this.reader = fileInfo.open(this.fs, this.cacheConf, dataBlockEncoder.getEncodingInCache());// 加載文件信息到map里面去,后面部分就不展開講了 metadataMap = Collections.unmodifiableMap(this.reader.loadFileInfo());

我們進入F3進入fileInfo.open這個方法里面去。

FSDataInputStreamWrapper in;FileStatus status;if (this.link != null) {// HFileLinkin = new FSDataInputStreamWrapper(fs, this.link);status = this.link.getFileStatus(fs);} else if (this.reference != null) {// HFile Reference 反向計算出來引用所指向的位置的HFile位置Path referencePath = getReferredToFile(this.getPath());in = new FSDataInputStreamWrapper(fs, referencePath);status = fs.getFileStatus(referencePath);} else {in = new FSDataInputStreamWrapper(fs, this.getPath());status = fileStatus;}long length = status.getLen();if (this.reference != null) {hdfsBlocksDistribution = computeRefFileHDFSBlockDistribution(fs, reference, status);//如果是引用的話,創建一個一半的readerreturn new HalfStoreFileReader(fs, this.getPath(), in, length, cacheConf, reference, dataBlockEncoding);} else {hdfsBlocksDistribution = FSUtils.computeHDFSBlocksDistribution(fs, status, 0, length);return new StoreFile.Reader(fs, this.getPath(), in, length, cacheConf, dataBlockEncoding);}

它一上來就判斷它是不是HFileLink是否為空了,這是啥情況?找了一下,原來在StoreFile的構造函數的時候,就開始判斷了。

this.fileStatus = fileStatus;Path p = fileStatus.getPath();if (HFileLink.isHFileLink(p)) {// HFileLink 被判斷出來它是HFilethis.reference = null;this.link = new HFileLink(conf, p);} else if (isReference(p)) {this.reference = Reference.read(fs, p);//關聯的地址也可能是一個HFileLink,snapshot的時候介紹了Path referencePath = getReferredToFile(p);if (HFileLink.isHFileLink(referencePath)) {// HFileLink Reference 如果它是一個HFileLink型的this.link = new HFileLink(conf, referencePath);} else {// 只是引用this.link = null;}} else if (isHFile(p)) {// HFilethis.reference = null;this.link = null;} else {throw new IOException("path=" + p + " doesn't look like a valid StoreFile");} View Code

它有4種情況:

1、HFileLink

2、既是HFileLink又是Reference文件

3、只是Reference文件

4、HFile

?說HFileLink吧,我們看看它的構造函數

public HFileLink(final Path rootDir, final Path archiveDir, final Path path) {Path hfilePath = getRelativeTablePath(path);this.tempPath = new Path(new Path(rootDir, HConstants.HBASE_TEMP_DIRECTORY), hfilePath);this.originPath = new Path(rootDir, hfilePath);this.archivePath = new Path(archiveDir, hfilePath);setLocations(originPath, tempPath, archivePath); }

尼瑪,它計算了三個地址,原始位置,archive中的位置,臨時目錄的位置,按照順序添加到一個locations數組里面。。接著看FSDataInputStreamWrapper吧,下面是三段代碼

this.stream = (link != null) ? link.open(hfs) : hfs.open(path); //走的link.open(hfs) new FSDataInputStream(new FileLinkInputStream(fs, this)); //注意tryOpen方法 public FileLinkInputStream(final FileSystem fs, final FileLink fileLink, int bufferSize)throws IOException {this.bufferSize = bufferSize;this.fileLink = fileLink;this.fs = fs;this.in = tryOpen(); }

tryOpen的方法,會按順序打開多個locations列表。。

for (Path path: fileLink.getLocations()) {if (path.equals(currentPath)) continue;try {in = fs.open(path, bufferSize);in.seek(pos);assert(in.getPos() == pos) : "Link unable to seek to the right position=" + pos;if (LOG.isTraceEnabled()) {if (currentPath != null) {LOG.debug("link open path=" + path);} else {LOG.trace("link switch from path=" + currentPath + " to path=" + path);}}currentPath = path;return(in);} catch (FileNotFoundException e) {// Try another file location } } View Code

恩,這回終于知道它是怎么出來的了,原來是嘗試打開了三次,直到找到正確的位置。

StoreFile的文件格式到這里就結束了,有點兒遺憾的是HFileBlockIndex沒給大家講清楚。

?

補充:經網友"東岸往事"的提醒,有一個地方寫錯了,在結束一個塊之后,會把它所有的BloomFilter全部輸出,HFileBlockIndex的話,如果滿了默認的128*1024個就輸出二級索引。

具體的的內容在后面說查詢的時候會說,下面先交代一下:

通過看繼承InlineBlockWriter的類,發現了以下信息

1、BlockIndexWriter 不是關閉的情況下,沒有超過默認值128*1024是不會輸出的,每128*1024個HFileBlock 1個二級索引。

HFileBlockIndex包括2層,如果是MetaBlock的HFileBlock是1層。

二級索引 curInlineChunk 在結束了一個塊之后添加一個索引的key(上一個塊的firstKey和這個塊的firstKey的中間值)。

byte[] indexKey = comparator.calcIndexKey(lastKeyOfPreviousBlock, firstKeyInBlock);
curInlineChunk.add(firstKey, blockOffset, blockDataSize);

一級索引 rootChunk 輸出一次二級索引之后添加每個HFileBlock的第一個key,這樣子其實二級索引里面是包括是一級索引的所有key的。

firstKey = curInlineChunk.getBlockKey(0); rootChunk.add(firstKey, offset, onDiskSize, totalNumEntries);

2、CompoundBloomFilterWriter也就是Bloom Filter,在數據不為空的時候,就會輸出。

?

對于HFileV2的正確的圖,應該是下面這個,但是上面的那個圖看起來好看一點,就保留了。

?

?

轉載于:https://www.cnblogs.com/cenyuhai/p/3722644.html

總結

以上是生活随笔為你收集整理的hbase源码系列(九)StoreFile存储格式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

欧美性黑人 | 日韩欧美视频一区二区 | 国产精品久久久久久久久久久久久久 | 一区二区三区精品在线视频 | 欧美性另类 | 99色免费 | 日p在线观看 | 日韩有码第一页 | 国产第一页福利影院 | 国产一区久久 | 91成人精品一区在线播放 | 国内精自线一二区永久 | 免费国产ww| 97国产精品久久 | 日韩国产精品一区 | 欧美日韩在线视频一区 | 久久精品看 | 丁香花在线视频观看免费 | 欧美孕妇视频 | 97超级碰 | 国产不卡在线观看视频 | 九九影视理伦片 | 国产精品三级视频 | 狠狠躁日日躁狂躁夜夜躁 | av在线h | 成人免费视频观看 | 一区二区三区在线不卡 | 午夜18视频在线观看 | 久久女教师| 麻豆久久久久久久 | 综合色站 | 婷婷激情综合五月天 | 亚洲国内精品在线 | 麻豆91精品91久久久 | 808电影 | 国产精品毛片完整版 | 精品一区二区在线播放 | 国产中文字幕av | 日韩综合第一页 | 久热色超碰| 日韩av影视在线观看 | 亚洲一区二区高潮无套美女 | 亚洲精品视频在线看 | 久草在线资源免费 | 黄色软件视频大全免费下载 | 久久9999久久免费精品国产 | 日韩av视屏| 日韩在线视频网站 | 狠狠干网址 | 日本爽妇网 | 91福利区一区二区三区 | 国产午夜精品一区二区三区 | 亚洲全部视频 | 天天干天天射天天插 | 久久成人午夜 | 中文在线 | 久久久久久久网 | 久久66热这里只有精品 | 日本99久久| 在线视频日韩一区 | 最近更新好看的中文字幕 | 日本三级吹潮在线 | 欧美精品一区二区免费 | 国产一级片一区二区三区 | 婷婷九月激情 | 欧洲精品久久久久毛片完整版 | 在线天堂中文www视软件 | 欧美成人视 | av专区在线 | 欧美一区二区三区在线看 | 国产成人精品午夜在线播放 | 色com| 国内精品久久久久久久 | 日韩av中文在线观看 | 日韩成人免费电影 | 免费观看黄 | 波多野结衣在线视频一区 | 九九热精品视频在线播放 | 日本在线观看一区 | 天天se天天cao天天干 | 国产精品婷婷 | 久久激情日本aⅴ | 色诱亚洲精品久久久久久 | 国产韩国精品一区二区三区 | 欧美另类xxx | 午夜成人免费影院 | 成人免费电影 | 国产又粗又硬又爽视频 | 天天射,天天干 | 亚洲伦理中文字幕 | 国产亚洲精品福利 | 色网免费观看 | 麻豆国产精品一区二区三区 | 91禁在线看 | 久久手机精品视频 | 中文字幕在线字幕中文 | 久久tv视频 | 丰满少妇在线观看 | 国产精品久久久久一区二区三区 | 又黄又爽又湿又无遮挡的在线视频 | 色黄久久久久久 | 国产 精品 资源 | 99色网站| 色夜影院 | 国产麻豆果冻传媒在线观看 | 男女激情免费网站 | 午夜视频色 | 欧美9999| 人人干干人人 | 狠狠干网站 | 国产糖心vlog在线观看 | 成人免费视频免费观看 | 国产乱码精品一区二区蜜臀 | 粉嫩av一区二区三区四区 | 久久激情片 | 日韩精品视频一二三 | 欧美一级免费在线 | 在线观看国产一区二区 | 又湿又紧又大又爽a视频国产 | 三级黄免费看 | 成人av一区二区三区 | 国产精品第一视频 | 日韩精品一区二区久久 | 欧洲一区二区三区精品 | 黄色影院在线免费观看 | 欧美性脚交 | 这里有精品在线视频 | 国产98色在线 | 日韩 | 日韩综合色| 国产精品久久久久久久久久久免费看 | 日韩视频免费观看高清完整版在线 | 亚洲一区二区三区miaa149 | 亚洲精品999 | 九色激情网 | 亚洲视屏一区 | 亚洲日本激情 | 96久久久 | 懂色av懂色av粉嫩av分享吧 | 2019中文字幕第一页 | 久久av在线播放 | 中文字幕视频观看 | 69久久99精品久久久久婷婷 | 97碰碰精品嫩模在线播放 | 又黄又刺激 | 久久久久久久av | 精品字幕在线 | 精品二区久久 | 欧美另类xxx | 97在线观视频免费观看 | 欧美日韩视频网站 | 丁香久久五月 | 免费成视频 | 福利视频一区二区 | 蜜臀久久99精品久久久无需会员 | 久久精品久久精品久久39 | 久久久久久久免费看 | 一级一片免费观看 | 黄色一级大片免费看 | 久久精品成人热国产成 | 中文字幕在线日亚洲9 | 国产在线97 | 久久久国产精品免费 | 久久这里只有精品9 | 日日摸日日 | 日韩三级精品 | 成人性生活大片 | www.国产视频| 九九免费观看全部免费视频 | 久久这里只有精品1 | 免费久久精品视频 | 在线观看国产www | 三级av网站 | 免费在线观看成人小视频 | 日韩三级久久 | 97在线免费视频 | 日韩免费在线观看视频 | 狠狠躁日日躁 | www.av在线.com| 久久综合九色综合久久久精品综合 | 中文字幕一区二区三区四区久久 | 亚洲女欲精品久久久久久久18 | 99资源网 | 国产成人久久av免费高清密臂 | 丁香婷婷综合激情 | 97精品国产97久久久久久免费 | 日韩高清免费无专码区 | 在线观看aa | 99久久综合国产精品二区 | 正在播放亚洲精品 | 亚洲精品国产成人 | 日黄网站 | 97**国产露脸精品国产 | 日韩欧美第二页 | av中文字幕在线播放 | 日韩高清三区 | 国产一区视频免费在线观看 | 最新成人在线 | 一区二区国产精品 | 国产精品九九久久99视频 | 在线观看91精品视频 | 丁香九月婷婷 | 国产精品99久久久久久武松影视 | 久久这里有精品 | 狠狠干婷婷色 | 一区二区三区高清在线 | 色婷婷精品大在线视频 | 久久黄色片子 | 国产盗摄精品一区二区 | 久久婷婷久久 | 国产美女永久免费 | 欧美日韩在线观看一区二区 | 成人黄色毛片视频 | 日韩中文字幕a | 在线观看国产福利片 | 日韩av在线免费看 | 国产91精品一区二区 | 免费看高清毛片 | 日韩在线一二三区 | 中文久草 | 日韩欧美视频免费观看 | 国产在线毛片 | 麻豆传媒在线视频 | 999免费视频 | 国产在线 一区二区三区 | 欧美色黄 | 美女视频免费一区二区 | 久久精品免费播放 | 久久99精品久久久久久清纯直播 | 波多野结衣日韩 | 色吧久久| 性色av一区二区三区在线观看 | 欧美久久九九 | 国产99在线播放 | 国产乱码精品一区二区三区介绍 | 97在线观视频免费观看 | av黄色av| 国产高清视频网 | 最新日本中文字幕 | 久草视频免费播放 | 国产中文字幕在线看 | 国产护士hd高朝护士1 | 日韩精品一区二区三区在线视频 | 一区二区三区精品在线视频 | 亚洲一级黄色大片 | 在线色资源 | 国产69久久久欧美一级 | 黄色三级在线 | 91麻豆精品国产自产在线游戏 | 国产老太婆免费交性大片 | 国产超碰在线 | 国产传媒中文字幕 | 久草在线视频免费资源观看 | 很黄很污的视频网站 | 天天干天天射天天插 | 日韩中文字幕一区 | 中文区中文字幕免费看 | 激情网站免费观看 | 久久精品在线 | 99这里只有久久精品视频 | 久久国产精品二国产精品中国洋人 | 91在线观看欧美日韩 | 五月激情丁香 | 日韩在线免费不卡 | 不卡中文字幕在线 | 国产激情小视频在线观看 | 超碰精品在线 | 久久精品视频国产 | a天堂最新版中文在线地址 久久99久久精品国产 | 久久一视频 | 999色视频 | 91在线免费播放 | 成人黄色电影免费观看 | 91精品国产综合久久福利 | 免费在线激情电影 | 三上悠亚在线免费 | 久久亚洲私人国产精品va | 成片免费观看视频999 | 亚洲精品在线观看的 | 午夜精品久久久久久久99热影院 | 欧美性生活一级片 | 黄色字幕网 | 99精品视频播放 | 在线看成人 | 婷婷免费视频 | 人人干网 | 色综合天天做天天爱 | 黄色精品视频 | 国产精品视频最多的网站 | 婷婷中文字幕综合 | 波多野结衣综合网 | 黄色大全在线观看 | 97热在线观看 | 国产一区二区久久精品 | 国产午夜不卡 | 在线日韩中文 | 日日日爽爽爽 | 精品91久久久久 | 一区二区视频播放 | 黄色精品久久久 | 精品国产伦一区二区三区观看方式 | 亚洲成人资源 | 免费在线成人 | 国产又粗又硬又长又爽的视频 | 久久成人资源 | 五月视频 | www视频免费在线观看 | 一本一本久久a久久精品牛牛影视 | 国内精品久久久久影院优 | 在线免费日韩 | 精品国模一区二区三区 | 丁香午夜 | 久久九九国产精品 | 一区二区三区四区精品视频 | 久久不射电影院 | 久久婷婷激情 | 日韩首页 | 久久久免费电影 | 欧美一级在线看 | 国产精品久久毛片 | 久久久鲁| 欧美日韩一区二区三区在线观看视频 | 中文字幕在线观看亚洲 | 成人免费电影 | 国产成人精品久久亚洲高清不卡 | 91传媒在线播放 | 在线观看国产区 | 日韩理论在线视频 | 91九色蝌蚪视频在线 | 有码一区二区三区 | 欧美性生活免费 | 亚洲精品av在线 | 超碰97国产精品人人cao | 高清久久久久久 | 在线观看午夜av | 九色精品免费永久在线 | 九九九视频精品 | 日日干天天操 | 亚洲.www| 国产精品高潮呻吟久久久久 | 91在线中字 | 亚洲最大av在线播放 | 亚洲在线高清 | 黄色精品在线看 | 99久久成人| 亚洲国产美女久久久久 | 日韩电影一区二区在线 | 国产91精品久久久久 | 色久av| 国产中文视 | www.色婷婷 | av三级在线播放 | 亚洲精品在线视频播放 | 免费在线观看日韩欧美 | 天天操天天操一操 | 国产综合视频在线观看 | 91丨九色丨国产在线观看 | 欧美日韩国产一二 | 欧美日韩在线视频免费 | 亚洲高清不卡av | 黄色网在线免费观看 | 久久国产热 | 99久精品视频 | 91探花系列在线播放 | 亚洲一级黄色av | 欧美激情操 | 精品国产视频一区 | 7777精品伊人久久久大香线蕉 | 国产黄色片久久久 | 久久精品超碰 | 国产免费视频在线 | 国产专区日韩专区 | 久久在线观看 | 美女激情影院 | 国产96视频 | 亚洲精品国产欧美在线观看 | 国产一区观看 | 成人9ⅰ免费影视网站 | 国产黄a三级三级三级三级三级 | 亚洲国产大片 | 97超碰国产精品女人人人爽 | 日韩二级毛片 | 国产精品久久久久久吹潮天美传媒 | 欧美黑人xxxx猛性大交 | 久久久久色| 91av资源网| 毛片一区二区 | 欧美成人h版 | 亚洲欧美日韩一二三区 | 91高清一区| 亚洲 成人 一区 | 午夜av电影 | 中文字幕高清有码 | 国产精品久久99综合免费观看尤物 | 欧美俄罗斯性视频 | 亚洲成人精品av | 在线观看av黄色 | 国产精品激情在线观看 | 美女视频黄频大全免费 | 久久久在线观看 | 久久99国产精品免费网站 | 国产精品 9999 | 国产黄色大全 | 欧美日本在线视频 | 日韩高清免费在线 | 天天色天天色天天色 | 国产精品日韩在线播放 | 国产a网站 | 一区二区激情 | 久久精品免费看 | av中文字幕免费在线观看 | 最近日本mv字幕免费观看 | 黄色av高清 | 亚洲综合色丁香婷婷六月图片 | 九九热精品视频在线观看 | 国产在线观看一 | 国产精品手机视频 | 99福利片 | h动漫中文字幕 | av在线h| 欧美一区二区精品在线 | www.超碰97.com| 波多野结衣一区 | 日韩免费av片 | 国产精品1000 | 日韩黄色一区 | 在线免费看黄色 | 色综合久久久 | 人人添人人 | 欧美精品黑人性xxxx | 天天插天天操天天干 | 日韩在线电影 | 日韩影视大全 | 国产精品女| 亚洲中字幕 | 免费看的黄色网 | 一区二区三区不卡在线 | 亚洲视频电影在线 | 亚洲成人av电影 | 一区二区伦理 | 午夜精品久久久久久中宇69 | 亚洲国产成人在线观看 | 国产精品wwwwww| 人人爽人人爽av | 99久久久久久久久久 | 午夜av免费看 | 精品一区二区三区久久久 | 欧美激精品 | 久久久久久久免费 | 久草热久草视频 | 国内成人精品2018免费看 | 国产99久久九九精品 | 免费三级a | 99爱在线 | 国产人成精品一区二区三 | 天天操天天干天天干 | 国产91粉嫩白浆在线观看 | 欧美日韩中文字幕综合视频 | 在线免费观看黄色 | 黄污网站在线观看 | 日韩免费在线播放 | 欧美日韩中文字幕在线视频 | 日本在线h | 日韩精品免费一线在线观看 | 欧美激情片在线观看 | 国产日韩精品欧美 | 一区二区精品在线 | 国产色婷婷精品综合在线手机播放 | 中文字幕999 | 日韩在线观看三区 | 在线观看中文字幕一区二区 | 九九久久免费视频 | 久久久精品 一区二区三区 国产99视频在线观看 | 国内精品中文字幕 | 欧美在线视频一区二区三区 | 一级性生活片 | 视频91在线 | 激情五月婷婷综合 | 久久久久99精品国产片 | 亚洲综合色av | 97精品国产91久久久久久久 | 91cn国产在线 | 亚洲精品一区二区18漫画 | 激情婷婷网 | 日韩一区二区三区免费视频 | 91在线九色| 综合五月婷婷 | 中文字幕永久在线 | 国产成人av一区二区三区在线观看 | 国产又黄又猛又粗 | 中文字幕在线播放一区二区 | 色视频网站免费观看 | 久久人人爽av | 免费看三级黄色片 | 久久久www成人免费毛片 | 中文字幕在线视频免费播放 | 日本精品久久久久 | 一级黄色片在线免费看 | 久久蜜臀一区二区三区av | 国产一区二区在线视频观看 | 亚洲欧美国产视频 | 国产色就色 | 成人小视频在线播放 | 波多野结衣网址 | 狠狠躁夜夜a产精品视频 | 91麻豆免费版 | 天天综合色 | 探花视频在线观看免费 | 日韩欧美极品 | 国产精品不卡在线播放 | 国产中文字幕网 | avove黑丝 | 久久黄色网页 | 天天色天天综合 | 91精品国产91热久久久做人人 | 精品影院一区二区久久久 | 亚洲视频分类 | 欧美黑人xxxx猛性大交 | 日韩av电影手机在线观看 | 一区二区欧美日韩 | 久久久久久黄色 | 亚洲第一色 | 国语精品免费视频 | 国产精品影音先锋 | 麻豆va一区二区三区久久浪 | 黄色不卡av | 日韩手机在线观看 | 成 人 黄 色 免费播放 | 亚洲高清在线精品 | 午夜av剧场 | 日韩二区在线观看 | 六月色丁香 | 成人av一区二区在线观看 | 国产精品久久久久久久7电影 | 亚洲精品国产欧美在线观看 | 亚洲区另类春色综合小说 | 国产精品美女久久久 | 中文字幕日韩av | 中文av一区二区 | 成人一级| 99久久精品久久久久久动态片 | 在线观看深夜视频 | 九九色网| 久久精品视频免费 | 又粗又长又大又爽又黄少妇毛片 | 午夜精品久久久久久久99 | 国产精品久久久久久久久蜜臀 | 黄色小说在线观看视频 | 色天天综合网 | www.久久色| 久久综合免费视频 | a级黄色片视频 | 999久久a精品合区久久久 | 久久精品99国产精品酒店日本 | 91成年人在线观看 | 免费不卡中文字幕视频 | av福利网址导航 | 久久在线一区 | 狠狠色丁香婷婷综合久小说久 | 亚洲无吗av | av综合站 | 国内精品在线看 | 一级一级一片免费 | 九九在线播放 | 亚洲三级网 | 69亚洲精品 | 美女视频黄的免费的 | 久久久久久久久久网 | 最近中文国产在线视频 | 国产在线a免费观看 | 国产在线播放一区二区三区 | 超碰在线97观看 | 久久久久黄色 | 国内精品久久久久久久久久清纯 | 久草在线视频首页 | www.888av | 国产视频手机在线 | 亚洲高清国产视频 | 国产三级国产精品国产专区50 | 黄网站app在线观看免费视频 | 丁香婷婷色综合亚洲电影 | 私人av | 日韩影视在线 | 中文字幕精品www乱入免费视频 | 午夜精品电影一区二区在线 | 国内成人精品视频 | 97色婷婷成人综合在线观看 | 中文字幕免费高清 | 激情五月婷婷激情 | 久久久精品欧美一区二区免费 | 久久久黄色 | 中文区中文字幕免费看 | 高清不卡一区二区三区 | 麻豆系列在线观看 | 91日韩在线视频 | www.com.日本一级 | 99色在线播放 | 亚洲香蕉在线观看 | www日韩| 亚洲经典中文字幕 | 欧美午夜激情网 | 中文字幕av一区二区三区四区 | 亚洲成人精品国产 | 日本精品久久久久中文字幕5 | 91精品无人成人www | 国产精品成人品 | 在线成人中文字幕 | 在线免费91 | 国产资源精品 | 久久男人免费视频 | 亚州日韩中文字幕 | 国产精品成人免费精品自在线观看 | 亚洲精品动漫在线 | 99综合电影在线视频 | 成年人国产在线观看 | 国产精品久久久久久久久久ktv | 国产精品理论在线观看 | 插综合网 | 狠狠躁天天躁 | 国产一级视频在线 | 精品日韩视频 | 超碰97在线资源 | 国产黄色精品在线观看 | 在线草| 亚洲永久免费av | 五月天久久精品 | 国产一级片免费视频 | 日本少妇久久久 | 日韩av一区二区在线播放 | 亚洲 欧洲av | 国产在线精品一区二区三区 | 亚洲精品视频久久 | 黄色在线免费观看网站 | 免费在线播放黄色 | 一区二区三区三区在线 | 国产亚洲精品美女久久 | 久久99精品热在线观看 | 91伊人久久大香线蕉蜜芽人口 | 午夜精品视频在线 | 国产精品久久电影网 | 久久免费美女视频 | 成人在线观看影院 | 中文字幕在线观看网址 | 中文字幕欧美日韩va免费视频 | 国产精品久久久久久久免费观看 | 三级黄色a | 免费黄色网止 | 91麻豆精品国产91久久久使用方法 | 最近中文字幕mv | 亚洲激情 欧美激情 | 狠狠操精品| 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 亚洲一区二区高潮无套美女 | 激情开心网站 | 伊人宗合| 欧美日韩在线播放 | 日日干 天天干 | 中文字幕亚洲高清 | 成人一区二区三区中文字幕 | 99自拍视频在线观看 | 日韩在线| 亚洲专区在线视频 | 久久综合网色—综合色88 | 国产黄色大片 | 24小时日本在线www免费的 | 午夜影院一级片 | 嫩草av影院 | 国产精品美女久久久久aⅴ 干干夜夜 | 99视频在线免费观看 | 国产网站在线免费观看 | 国产麻豆视频网站 | 欧美视频国产视频 | 伊人网综合在线观看 | 亚洲电影久久 | 水蜜桃亚洲一二三四在线 | aaa免费毛片| 国产麻豆视频 | 国内久久久久 | 国产精品一区欧美 | 国产精品久久一区二区三区, | 欧美精品久久久久久久久久丰满 | 久久久久日本精品一区二区三区 | 综合色影院 | 亚洲视频久久久 | 四虎在线免费视频 | 超碰97中文 | 狠狠狠综合 | 一区二区视 | 亚洲国内精品 | 色干综合 | 国产一级大片在线观看 | ,午夜性刺激免费看视频 | 亚洲精品视频在 | 91片网| 色天天综合久久久久综合片 | 亚洲国产视频直播 | 天天综合成人网 | 中文字幕在线看片 | 国产精品久久久久久久久免费 | 91av电影| 99久久婷婷国产综合精品 | 青青草在久久免费久久免费 | 成人羞羞视频在线观看免费 | 日本公妇色中文字幕 | 麻豆视频大全 | 欧美日韩精品在线视频 | 日本不卡一区二区三区在线观看 | 日韩剧情 | 国产91国语对白在线 | av在线免费网站 | 国产黄色片一级 | 精品一区 在线 | 91av在线电影| 婷婷综合国产 | 精品视频成人 | 五月婷婷激情六月 | 国产成人一二三 | 亚洲欧美日本一区二区三区 | 欧美 日韩 成人 | 麻豆影视在线播放 | 97视频在线观看视频免费视频 | 91精品国自产在线观看欧美 | 久久国际影院 | 国产精品久久久久久久av电影 | 日日夜夜干 | 亚洲激情电影在线 | 国产中文字幕免费 | 成 人 黄 色视频免费播放 | 99久久婷婷国产一区二区三区 | 99视频+国产日韩欧美 | 青草视频在线 | 麻豆久久久久 | 日本中文字幕在线一区 | 日韩高清在线不卡 | 天天爽天天爽 | 国产精品毛片一区二区三区 | 国产一区二区不卡在线 | 国产精品久久久久久久久蜜臀 | 中文字幕有码在线观看 | av在线直接看 | 国产精品 9999| 亚洲丁香日韩 | 欧美老少交| 国产一级视屏 | 夜夜嗨av色一区二区不卡 | 人人狠狠综合久久亚洲婷 | 日本福利视频在线 | 婷婷免费在线视频 | 91av中文| 亚洲91网站 | 日韩欧美高清免费 | 中文字幕一区二区三区四区 | 久久久久久草 | 91在线视频在线观看 | 视频 国产区 | 中文字幕91在线 | 日韩午夜av电影 | 九九热国产 | 麻豆免费看片 | 日本女人逼 | 免费看污污视频的网站 | 日韩欧美视频在线免费观看 | 婷婷色综合色 | 99在线免费视频 | 国产成人精品午夜在线播放 | 亚洲午夜久久久久久久久 | 日韩av高清 | 99电影456麻豆 | 日日天天av | 高清在线观看av | 免费视频色 | av在线成人| 最新日韩电影 | 亚洲欧洲一区二区在线观看 | 一级片在线 | 国产精品久久99精品毛片三a | 人成在线免费视频 | 亚洲视屏一区 | 精品免费视频. | 99久精品视频 | 一级做a视频| 亚洲国产精品成人av | 欧美国产一区二区 | 国产在线一线 | 狠狠色噜噜狠狠狠合久 | 国产在线91在线电影 | 中文字幕国产一区 | 91精品国产乱码 | 国产精品视频久久久 | 一区二区视频在线看 | 日韩中文字幕亚洲一区二区va在线 | 一级黄色网址 | 久久久黄视频 | 91精品国产自产在线观看 | 国产午夜精品免费一区二区三区视频 | 日韩无在线 | 国产精品综合av一区二区国产馆 | 午夜精品在线看 | 久久欧美精品 | 亚洲免费观看在线视频 | 久久精品国产精品亚洲 | 热久久这里只有精品 | www视频免费在线观看 | 天天爱天天射天天干天天 | 国产黄免费 | 天天爽网站 | 国产中文字幕久久 | 色婷婷亚洲精品 | 亚洲黄色片| 97精品视频在线 | 91精品国产欧美一区二区 | 亚洲国产成人久久 | 久久综合精品一区 | 午夜三级大片 | 丁香久久婷婷 | 国产精品国产三级国产不产一地 | 人人干人人干人人干 | 一区二区视频电影在线观看 | 黄网站大全 | 日韩av电影中文字幕在线观看 | 国产精品一级视频 | 九色精品免费永久在线 | 一区二区三区四区五区在线视频 | 午夜精品久久 | 婷婷色六月天 | 精品在线视频播放 | 免费瑟瑟网站 | 国产精品久久二区 | 亚洲一区二区三区毛片 | 天天操欧美 | 国产午夜亚洲精品 | 国产免费观看高清完整版 | 日韩激情网| 久久99久国产精品黄毛片入口 | 日韩电影中文 | 久久成人国产精品入口 | 黄色av电影一级片 | 免费在线观看中文字幕 | 天天操天天操天天操天天 | 91人人在线 | 五月天综合网 | 中文不卡视频在线 | 亚洲精品久久久蜜桃 | 日本性高潮视频 | 天天干,天天射,天天操,天天摸 | 97超碰资源站 | 国内精品视频在线 | 亚洲国产人午在线一二区 | 日韩在线视频免费播放 | 天天玩天天操天天射 | 久久久久久久久福利 | 欧美日韩一级久久久久久免费看 | 精品亚洲在线 | 91精品蜜桃 | 91精品国产一区二区在线观看 | 日韩在线视频免费观看 | 亚洲国产成人在线 | 中文字幕久久网 | 精品一区二区av | 毛片网站在线看 | 日一日操一操 | 免费在线播放av电影 | 在线草| 激情欧美一区二区三区 | 久久久久免费观看 | 国产成人av电影在线 | 在线视频手机国产 | 国产一区高清在线 | a在线观看免费视频 | 久久人人爽人人人人片 | 精品欧美日韩 | 欧美精品乱码99久久影院 | 久久开心激情 | 国产免费观看高清完整版 | 99久久精品午夜一区二区小说 | 在线99视频 | 夜夜躁天天躁很躁波 | 99久久99久久精品国产片果冰 | 国产精品美女免费看 | 欧美性久久久久久 | 国产精品久久一区二区三区不卡 | www.av免费观看 | 成人黄色毛片视频 | 麻豆国产视频下载 | 久久精品综合网 | 香蕉色综合 | 五月天婷婷狠狠 | 国产在线精品福利 | 国产亚洲精品久久久久久久久久久久 | 国产精品a成v人在线播放 | www.av在线播放 | 午夜精品福利一区二区 | 精品福利在线 | 日韩两性视频 | 日韩中文字幕免费在线播放 | 成人丁香花 | 99精品国产aⅴ | 五月综合激情网 | 色成人亚洲网 | 国产资源在线播放 | 亚洲午夜精品在线观看 | 九九九九精品九九九九 | 日韩综合视频在线观看 | 亚洲精品一区二区在线观看 | 在线精品视频在线观看高清 | 日韩精品视频免费看 | 亚洲成av人影院 | 精品一区二区日韩 | 黄色片网站 | 99精品国产99久久久久久福利 | 久久亚洲影院 | 狠狠色婷婷丁香六月 | 中文在线8资源库 | 久久国产系列 | 伊人看片 | 深爱婷婷久久综合 | 九九九九色 | 国产精品一区二 | 欧美成年网站 | 欧美少妇影院 | 四川bbb搡bbb爽爽视频 | 亚洲高清视频在线播放 | 久久免费毛片视频 | 国产麻豆剧传媒免费观看 | 中文字幕第一页在线播放 | 日韩精品一区二区三区三炮视频 | 国内揄拍国内精品 | 久久这里 | 久久久精品久久日韩一区综合 | 亚州av成人| 久久久久中文字幕 | 欧美另类v | 2019精品手机国产品在线 | 一区二区三区电影 | 手机在线小视频 | 黄色免费观看网址 | av在线8| 手机看片99 | 日本中文字幕影院 | 91夜夜夜| 五月在线视频 | 人人澡人人干 | 丁香婷婷激情 | 成片视频免费观看 | av网站在线观看免费 | 久影院 | 久久午夜免费观看 | www.888av| 91成人精品国产刺激国语对白 | 在线观看国产www | 五月激情五月激情 | 天天操人 | av线上免费观看 | 国产91精品在线观看 | 午夜久久美女 | 亚洲va欧美va国产va黑人 | 国产精品美 | 在线观看91av | 插婷婷 | 欧美在线aaa | av性网站 | 久久亚洲欧美日韩精品专区 | 九九免费精品视频在线观看 | 天天综合网国产 | 91精品中文字幕 | 高潮久久久久久久久 | 久草在线手机视频 | 91视频久久久久久 | 久久久这里有精品 | 狠狠操在线 | 2022久久国产露脸精品国产 | 全久久久久久久久久久电影 | 国产精品久久久区三区天天噜 | 五月婷婷另类国产 | 少妇bbw撒尿 | 综合在线亚洲 | 国产探花视频在线播放 | 狠狠干中文字幕 | 丁香婷婷色月天 | 麻豆免费精品视频 | 亚洲精品久久久久www | 韩国精品一区二区三区六区色诱 | 精品特级毛片 | 亚洲黄色精品 | 久久久久久久久亚洲精品 | 亚洲japanese制服美女 | 精品久久影院 | 欧美日韩性视频 | 久久欧美精品 | 最近久乱中文字幕 | 波多野结衣精品在线 | 久久综合网色—综合色88 | 国产99精品在线观看 | 91传媒在线观看 | 亚洲在线精品视频 | 91免费视频黄 | 美女免费网站 | 欧美日本在线观看视频 | 美女视频黄免费 |