整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          HBase應用(一):數據批量導入說明

          HBase應用(一):數據批量導入說明

          別說明:該專欄文章均來源自微信公眾號【大數據實戰演練】,歡迎關注!

          版本說明:

          通過 HDP 3.0.1 安裝的 HBase 2.0.0

          一、概述

          HBase 本身提供了很多種數據導入的方式,目前常用的有三種常用方式:

          • 使用 HBase 原生 Client API
          • 使用 HBase 提供的 TableOutputFormat,原理是通過一個 Mapreduce 作業將數據導入 HBase
          • 使用 Bulk Load 方式:原理是使用 MapReduce 作業以 HBase 的內部數據格式輸出表數據,然后直接將生成的 HFile 加載到正在運行的 HBase 中。

          二、方式對比

          前兩種方式:需要頻繁的與數據所存儲的 RegionServer 通信,一次性導入大量數據時,可能占用大量 Regionserver 資源,影響存儲在該 Regionserver 上其他表的查詢。

          第三種方式:了解過 HBase 底層原理的應該都知道,HBase 在 HDFS 中是以 HFile 文件結構存儲的,一個比較高效便捷的方法就是先生成 HFile,再將生成的 HFile 加載到正在運行的 HBase 中。即使用 HBase 提供的 HFileOutputFormat2 類或者 importtsv 工具來完成上述操作。

          經過對比得知:如果數據量很大的情況下,使用第三種方式(Bulk Load)更好。占用更少的 CPU 和網絡資源就實現了大數據量的導入。本篇文章也將主要介紹 Bulk Load 方式。

          三、Bulk Load 說明

          Bulk Load 方式之所以高效,是因為繞過了正常寫數據的路徑(WAL、MemStore、flush)。總的來說,Bulk Load 方式使用 MapReduce 作業以 HBase 的內部數據格式輸出表數據,然后直接將生成的 HFiles 加載到正在運行的 HBase 中。與僅使用 HBase API 相比,使用 Bulk Load 方式不占用 Region 資源,不會產生巨量的寫入 I/O,將使用更少的 CPU 和網絡資源。

          HBase Bulk Load 過程包括兩個主要步驟:

          • 將 準備的數據 生成 HFile :使用 importtsv 工具將數據轉化為 HFile ,或者通過 HBase 提供的 HFileOutputFormat2 類編寫 MapReduce 程序。
          • 將 HFile 導入到 HBase 中:使用 LoadIncrementalHFiles 或者 completebulkload 將 HFile 導入到 HBase中。

          流程如下圖所示:

          3.1 將準備的數據生成HFile

          將數據生成 HFile,有兩種方式,分別是:

          • 通過 HBase 提供的 HFileOutputFormat2 類編寫 MapReduce 程序來生成 HFile 。(本篇文章不擴展)
          • 使用 importtsv 工具將 TSV 格式數據轉換為 HFile ,自動生成 MapReduce 任務。

          本篇文章主要還是講解下 importtsv 工具的使用,編寫 MapReduce 程序在本篇不擴展,后續文章會有補充。

          importtsv 是一個實用工具,它將 TSV 格式的數據加載到 HBase 中。它有兩種用法,分別為:

          • importtsv 工具默認使用 HBase put API 導入數據,將數據從 HDFS 中的 TSV 格式直接加載到 HBase 的 MemStore 中。非 Bulk Load 方式,比較占用集群資源,不建議在處理大數據量時使用。
          hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns=a,b,c <tablename> <hdfs-inputdir>
          
          • Bulk Load 方式,當使用選項 -Dimporttsv.bulk.output 時,將會先生成 HFile 文件的內部格式的文件,這時并不會寫數據到 HBase 中。建議使用 √
          hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns=a,b,c -Dimporttsv.bulk.output=hdfs://storefile-outputdir <tablename> <hdfs-data-inputdir>
          

          注意:使用 importtsv -Dimporttsv.bulk.output 選項時,如果目標表尚不存在,則將使用默認列族描述符創建目標表。如果準備了大量數據要進行Bulk Load,請確保對目標 HBase 表進行適當的預分區,也就是預先創建多個 Region ,避免熱點與數據傾斜問題。

          importtsv 可以使用 -D 指定的其他選項,以下列舉了11條:

          • -Dimporttsv.skip.bad.lines=true / false :在導入過程中,如果有不符合分割標準的行,被稱之為 badlines ,設置是否跳過,如果不跳過,則 MapReduce 任務停止。
          • -Dimporttsv.separator=’|’ :例如使用 管道符 來代替 tab 鍵(\t),importtsv 默認是以 tab 鍵分隔。
          • -Dimporttsv.timestamp=currentTimeAsLong :使用特殊的時間戳導入。
          • -Dimporttsv.mapper.class=my.Mapper :用戶定義的Mapper代替org.apache.hadoop.hbase.mapreduce.TsvImporterMapper。
          • -Dmapreduce.job.name=jobName :用戶指定 MapReduce 任務名稱
          • -Dmapreduce.job.queuename=queue:指定作業提交到的隊列名
          • -Dmapreduce.job.priority=VERY_HIGH / HIGH / NORMAL / LOW / VERY_LOW :指定作業的優先級
          • -Dcreate.table=yes / no :如果 HBase 中沒有創建表,是否使用 importtsv 工具創建該表,如果設置為 no,則在 HBase 中表必須存在。
          • -Dno.strict=true / false :忽略 HBase 表中的列族檢查,默認為 false 。
          • -Dmapreduce.map/reduce.memory.mb=5120 :map / reduce 端分配的內存大小,一般來說是 1024 的倍數,這里配置了 5G。
          • -Dmapreduce.map/reduce.java.opts=-Xmx4096m :指定 map / reduce 端的 JVM 參數,這個的大小一般是上一個參數的 0.75 倍,要剩一些內存給非 JVM 進程。

          盡管 importtsv 工具在許多情況下很有用,但高級用戶可能希望以編程方式生成數據,或使用其他格式導入數據。如果有這樣的需求,請深入了解 ImportTsv.java 和 HFileOutputFormat 的 JavaDoc ,修改源碼進行實現。

          3.2 完成數據加載,將HFile加載到HBase中

          completebulkload 工具用于將數據導入正在運行的 HBase 中。此命令行工具遍歷準備好的數據文件(HFile),確定每個 HFile 所屬的 Region,然后聯系相應的 RegionServer 將 HFile 移入其存儲目錄并將數據供客戶端使用。

          如果在 Bulk Load 準備過程中或在準備和完成步驟之間 Region 邊界已更改,則 completebulkload 工具會自動將 HFile 拆分為與新邊界對應的部分。此過程效率不高,因此用戶應盡量減少 準備 HFile將 HFile 加載到 HBase 中 這兩步驟之間的時間延遲,尤其是在其他客戶端通過其他方式同時加載數據時也要注意。

          將 HFile 加載到 HBase 中有兩種方式:

          • LoadIncrementalHFiles
          hbase org.apache.hadoop.hbase.tool.LoadIncrementalHFiles <hdfs://storefileoutput> <tablename>
          
          • completebulkload
          export HBASE_HOME=/usr/hdp/{hdp-version}/hbase
          HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase classpath` ${HADOOP_HOME}/bin/hadoop jar ${HBASE_HOME}/lib/hbase-mapreduce-{version}.jar completebulkload <hdfs://storefileoutput> <tablename>
          

          四、示例

          說一下我的運行環境:CentOS-7,1個 HBase Master,3個 RegionServer,三臺機器均是 8G 內存。

          4.1 創建表的同時創建10個分區

          create 'default:people', {NAME=>'basic_info'}, {NAME=>'other_info'}, SPLITS=>['10|','20|','30|','40|','50|','60|','70|','80|','90|']
          

          創建的 people 表如下所示:

          4.2 準備數據源并上傳到HDFS

          用 Python 生成了10萬條測試數據并存到了 hbase_data.txt 中,一共7.32M,現在將該文件上傳到 HDFS 中:

          sudo -u hdfs hdfs dfs -put /tmp/hbase_data.txt /tmp
          

          測試數據是我用python寫的,有詳細的說明和源碼,詳情點擊:Python生成HBase測試數據說明 。

          4.3 通過importtsv工具生成HFile文件

          使用 importtsv 工具生成 HFile 文件,執行如下命令:

          sudo -u hdfs hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator=',' -Dimporttsv.columns='HBASE_ROW_KEY,basic_info:name,basic_info:age,basic_info:sex,basic_info:edu,other_info:telPhone,other_info:email,other_info:country' -Dimporttsv.bulk.output=/tmp/people/output people /tmp/hbase_data.txt
          

          請確保執行該命令的用戶有相應的權限。后臺會觸發一個 MapReduce 任務,由于表中創建了 10 個 Region,所以觸發的任務內有 1 個 map,10 個 reduce,該任務一共執行了2分45秒。

          4.4 將HFile數據加載到HBase中

          兩種方式:

          • LoadIncrementalHFiles
          sudo -u hdfs hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles /tmp/people/output people
          

          執行上述語句總時長大約26秒。

          • completebulkload
          export HBASE_HOME=/usr/hdp/3.0.1.0-187/hbase
          sudo -u hdfs HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase classpath` ${HADOOP_HOME}/bin/hadoop jar ${HBASE_HOME}/lib/hbase-mapreduce-2.0.0.3.0.1.0-187.jar completebulkload /tmp/people/output people
          

          小結:上述兩種方式均可以實現將 HFile 數據導入到 HBase 中,其原理就是將 HFile 移動到 HBase 表的對應目錄下存儲。

          在 hbase shell 里執行 scan ‘people’ ,將所有數據讀取一遍,我們再通過 HBase Web UI ,查看 people 表的各 region 的詳細情況。如下圖所示:

          由表分析可知,10萬條 數據 較均勻地 分配到了 10Region 中。自此,數據批量導入到 HBase 中完畢!

          五、總結

          參考的 HBase 官網:

          • http://hbase.apache.org/book.html#arch.bulk.load
          • http://hbase.apache.org/book.html#importtsv
          • http://hbase.apache.org/book.html#completebulkload

          在使用 importtsv 工具時,一定要注意參數 -Dimporttsv.bulk.output 的配置。通常來說使用 Bulk Load Data 的方式對 RegionServer 來說更加友好一些,這種方式加載數據幾乎不占用 RegionServer 的計算資源,因為只是在 HDFS上 移動了 HFile 文件,然后通知 HMaster 將該 RegionServer 的一個或多個 Region 上線。

          另外在進行 Bulk Load 時,也需要確保執行用戶在HDFS上有相應的權限。

          我將 HBase 數據導入常用的三種方式進行了總結,其中著重說明了一下 Bulk Load 方式,如下圖所示:


          --END--

          碼字不易,如果您覺得文章寫得不錯,請關注作者~ 您的關注是我寫作的最大動力

          友情提示:原文排版精美,可點擊分享鏈接查看。

          碼字不易,如果感覺本文對您有幫助,請點贊或訂閱支持一下,您的支持是我堅持寫作最大的動力,謝謝!

          indle 憑著電子墨水屏的先天優勢,在一眾電子設備中擁有更舒適的閱讀體驗,但僅僅依靠設備內置的 Amazon Kindle 電子書書店,在書籍資源方面似乎顯得單薄。

          秉承無版權糾紛的原則下,我搜集了一些電子書資源站點,整理它們各自的電子書資源特點,以及電子書格式轉換和書本推送至 Kindle 設備的操作技巧,希望能夠豐富大家獲取電子書資源的途徑,真正做到為電子書書架「添磚加瓦」。

          書格

          書格 是一個自由開放的數字古籍圖書館,專注于不同類型古書籍的保護與文化藝術作品數字化傳播,網站創建于 2013 年,最早起源是豆瓣用戶 未曾 在 2012 年建立的 PDF 小站。網站收錄資源的首要準則是限定為公共版權領域的書籍,分享的書籍資源來源于世界各個圖書館或機構的公開內容。由于書格分享的書籍大多圖文較多,所以暫時只發布 PDF 格式的文件。

          書格提倡開放式共享資源,無須用戶注冊即可瀏覽下載網站的任何資源,用戶可以在 站內搜索 查看已發布資源列表,或者直接進入書格的 網盤目錄 瀏覽下載。根據書格公布的數據顯示,截止今年 3 月底,網站已經發布超過 1600 套書籍資源,所有資源大小約 616 GB。在書格的資源分類中,我們可以按照學術分類(史地、社會科學、藝術等)和興趣分類(永樂大典系列、練字參考、要看圖多的等)找到不同類型的書籍。

          圖靈社區

          圖靈社區 主要專注于科技書籍的出版,包括計算機、數學統計、科普等領域,提供免費和付費的電子書。用戶可以使用網銀或者支付寶的購買方式,大部分電子書同時提供了三種閱讀方式:在線閱讀、MOBI 推送、PDF 下載,部分書籍只提供其中部分格式。

          圖靈社區的圖書分類除了按照常規分類(計算機、科普、設計、高等數學等)外,還可以按不同的 Tag 標簽查找感興趣的書籍。如果你有更準確的書籍信息(ISBN 碼、作譯者、出版日期),通過圖靈社區的 高級搜索 功能精確地找到對應資源。

          在用戶的 個人設置 頁面中,圖靈社區提供了推送郵箱的功能,填寫好 Kindle 個人郵箱,如果遇到推送失敗的話,可以嘗試將 no-reply@ituring.com.cn 加入 Kindle 已認可的發件人電子郵箱列表中。

          Project Gutenberg 古登堡計劃

          Project Gutenberg 是國外最知名的電子書分享網站,最初在 1971 年 7 月由 Michael Hart 發起,主要提供大量版權過期后進入公有領域的書籍,目前藏書量超過了 5 萬多本。你可以從網站提供的 TOP 100 下載排行榜 獲取最受用戶歡迎的電子書。

          古登堡計劃也收錄了中文經典書籍,以下載四大名著之一三國演義為例子,在下載頁面中,用戶可以將電子書轉存至 Dropbox、Google Drive、OneDrive 云盤,網站提供了 HTML、ePub、Kindle(mobi、azw 格式) 和富文本多種電子書格式。

          Wikibooks 維基教科書

          Wikibooks 維基教科書 項目隸屬于 維基媒體基金會 旗下,網站主要收集教科書或者用戶自己編輯的書籍,提倡分析人人可編輯的自由教學讀本,目前已經收錄超過 3000 本共 80000 多頁的電子書。

          維基教科書

          在維基教科書的 中文索引頁面 中,我們可以找到相當豐富的教學類電子書資源,涵蓋了自然科學、數學、社會科學、語言、人文科學、工程學、藝術、計算機科學與技術以及部分中小學、大學課本。維基教科書為每一個網頁頁面提供了 PDF 文件下載的選項,稍顯遺憾的是相較于英文目前中文資源數量還比較有限。

          維基媒體基金會的類似項目還有 維基文庫,目前已經收錄了超過 29 萬篇文檔,主要領域包括了已出版的文獻、譯文、歷史檔案、文獻作者生平等,同樣提供了 PDF 格式的電子文件。

          Planet eBook

          Planet eBook 被視為古典文學電子書愛好者的樂園,所收錄的小說和書籍均可免費下載和共享,提供的電子書格式包括 ePub、PDF、MOBI,每本收錄的書籍都提供了精致的介紹頁面,電子書的文字排版和圖文質量都有不錯的水準。如果你是外文小說的閱讀愛好者,Planet eBook 肯定是一個不容錯過的電子書平臺。

          Gitbook

          Github 上總能找到一些相當優秀的資源,其中有朋友 分享 了一份免費的編程中文書籍索引排行榜,榜單中按照編程知識領域,推薦不同的教程和電子書資源,包含了開發者網站、Gitbook 電子書資源和部分視頻教學資源。

          Gitbook 是一個由用戶自主制作和分享電子書的平臺,從多人協作、Markdown 寫作、評論互動等多個環節上為電子書出版和共享提供了一站式解決方案。Gitbook 制作好的電子書支持輸出 ePub, MOBI 和 PDF 格式,Explore 頁面 集中列出了已整理出版的電子書,用戶可以按語言分類和電子書主題查找電子書資源。

          文件格式轉換和推送技巧

          下載書籍后,下一步要做的就是把書傳送到 Kindle 里。Kindle 原生系統支持的格式包括:AZW、TXT、PDF、MOBI、PRC、HTML、DOC、DOCX 以及 JPG,但網上電子書資源大部分會是 ePub 和 PDF 格式,這時就需要文件格式轉換和 PDF 重排工具(PDF 在 Kindle 設備上的閱讀效果并不理想),我收集了以下幾款實用工具:

          Calibre 是一款強大的本地電子書管理工具,支持 Windows、macOS 和 Linux 三大平臺,本身支持市面絕大部分的文件導入和轉換,選中需要轉換的書籍后,點擊選擇「轉換書籍」,在打開的轉換頁面中選擇右上角輸出格式,選擇電子書設備支持的輸出格式。另外用戶還能夠調整轉換電子書的更多細節選項,包括輸出界面、字體、內容目錄等。

          管理工具:Calibre 使用指南

          K2pdfopt 是一款可以優化 PDF 文件、提升在移動設備上閱讀體驗 PDF 文檔的開源軟件,支持 Windows、macOS 和 Linux 三大平臺,還提供了命令行版本,以 Windows 平臺的 GUI 版本為例,

          1. 在 File list 區域添加一個或者多個 PDF 文檔;
          2. Output Folder 區域填寫轉換后文檔的保存路徑,留空即保存在源文件所在目錄;
          3. Device 一欄選擇自己的設備,K2pdfopt 支持 Kindle、Kobo、Nook 多款硬件產品;
          4. Conversion Mode 一欄一般選擇默認的 default 模式即可(僅僅希望裁邊的話,選擇 Trim 模式);
          5. 最后點擊軟件界面右下角 Preview 按鈕可預覽效果,點擊 Convert All Files 即可開始轉換。

          AConvert 是一款電子書轉換在線工具,支持輸出 AZW3、EPUB、DOCX、HTML、MOBI、PDF、RTF 和 TXT 格式,選擇本地文件上傳或在線地址。在轉換結果的下載頁面中,用戶可以將轉換后的文檔保存至 Dropbox、Google Drive,或者通過掃描二維碼下載文檔。同類型的在線工具還有 ConvertIO、ToePub。

          Dropbox + IFTTT 實現云盤電子書推送至 Kindle 設備。部分電子書平臺提供將電子書文件轉存至類似 Dropbox 云存儲空間里,這時候再利用 IFTTT 提供的任務規則可以實現將云盤電子書資源自動推送至 Kindle 設備上,簡單說一下操作步驟:

          1. 在 Dropbox 建立一個專門存放和推送電子書的文件夾,比如 sendtokindle;
          2. 打開 IFTTT 網站上 Send files from Dropbox to your Kindle 頁面,首次使用需要獲得 Dropbox 和 Gmail 授權;
          3. 完成授權操作后,在 New file in your folder 一欄填寫 Dropbox 保存電子書的文件夾名稱,留空的話會自動創建名為 Kindle 的文件夾,Send an email 一欄填寫 Kindle 設備的專屬個人郵箱;
          4. 最后,其他選項保持默認狀態即可,設置完成后將電子書保存在 Dropbox 專門的文件夾,就會自動推送至 Kindle 設備。

          以上就是我個人搜集的優秀電子書資源站點和書籍格式轉換和傳輸的一些技巧,如果你了解更多的電子書網站,歡迎在評論中與大家分享。

          .online-convert

          online-convert是一個十分優秀的在線格式轉換應用,支持格式覆蓋文檔、圖片、音頻、視頻、電子書、Flash以及一些 不常見的格式。使用非常簡單,你只需根據在你想轉換成的格式的分類(如文檔的在document converter)的下拉條上選擇你需要的格式后按Go就可以到達上傳文件頁面,上傳后就會提示下載。測試了一些PDF轉換TXT,發現支持中文,并且 轉換十分準確。

          地址:http://www.online-convert.com/

          2.ConvertFiles

          ConvertFiles是的一個免費的在線格式轉換工具。ConvertFiles的界面十分丑陋,但是功能十分強大,支持眾多格式,包括文檔、圖片、視頻。支持格式外鏈,視頻方面支持國內的酷6和56視頻。使用起來十分簡單,可以選擇上傳文件(Choose a local file)或者外鏈文件(download it from),然后設置轉換后的文件格式(Output format)即可。設置完成之后你可以選擇在線等待轉換,轉換后會提示下載地址。當然你也可以留下你的郵箱地址(Send a download link to my email (optional))。

          地址:http://www.convertfiles.com/

          3.docspal

          docspal是一個強大的在線格式轉換網頁,支持文檔、音頻、視頻等。

          功能 : 支持文本文檔的txt,html,pdf,doc等、音頻的mp3,ogg,wav,wma等、支持視頻的3gp,mpv,flv等、圖片的png,jpg,gif等以及其它格式.

          地址:http://www.docspal.com/

          4.Cometdocs

          Cometdocs可是一個號稱萬能的在線文件轉換器!當然了,聲稱"萬能"有些過。不過它的強大毋庸置疑。一共提供50余種文件格式的轉換,幾乎涵蓋所有最常使用的文件類型。只要你打開這個應用的網址,立刻就可以進行文件的轉換。盡管是英文版面,但是畫面十分簡潔,一目了然,它會一步一步帶你完成 文件的轉換,不用擔心語言上的問題。友好的界面加上強大的功能,Cometdocs真的值得我們豎起大拇指。雖然不用注冊就可以使用它,但是注冊的用戶還 可以對轉換的文件進行管理,并且注冊是免費而簡單的。

          地址:http://www.cometdocs.com

          5.Zamzar

          Zamzar是一個功能十分強大的在線文件轉換工具。它可以轉換各種形式的文件:如文檔、圖片、音樂、電子書、壓縮文件和CAD文件等。只需要按照4個簡單的步驟就可以輕松完成轉換。結果以郵件方式返回給用戶,無論是成功還是失敗。

          地址:http://zamzar.com/

          6.docdroids

          docdroids是一個不錯的在線文檔轉換工具,支持PDF, DOCX, DOC, ODT, PAGES, RTF, OTT, XLS, XLSX, TXT, PPT, PPTX, ODP等文檔,并且支持在線閱覽文檔。文檔上傳后60天內不閱覽的話將被刪除,這也就意味著最少能支持60天,可以共享鏈接給你的朋友閱覽。

          地址:http://www.docdroid.net/

          7.Pdfaid

          Pdfaid是一個多功能的PDF在線轉換工具,支持PDF的分割、合并、從Office多種格式轉換。這個從圖中就可以看出來。

          可以設置PDF的一些配置,如頁面大小、標題作者等。

          地址:http://pdfaid.com/Default.aspx

          8.freepdfconvert

          又一個多格式PDF互轉的的在線應用,總共支持67種格式轉換成PDF文件。

          支持PDF轉換成Word&Excel文檔。

          地址:http://www.freepdfconvert.com/

          9.media-io

          media-io是一個在線音頻格式轉換工具。

          功能 : 支持mp3、wav、ogg、wma格式互轉、支持轉換成不同的質量以滿足不同的需求

          地址:http://media.io/

          10.benderconverter

          benderconverter是一個優秀的在線視頻轉換器,支持大量的主流視頻格式包括MP3, AVI, FLV Flash, iPod / iPhone,3gp,mpeg,wav。除了上傳視頻轉換外,還支持youtube的鏈接。

          地址:http://benderconverter.com/

          附:

          online-convert、ConvertFiles、docspal、Cometdocs、Zamzar為全能轉換器(支持多類型多格式的互轉)

          docdroids、Pdfaid、freepdfconvert為文檔格式轉換器(其中后兩者專為PDF服務)

          media-io為音頻格式轉換器

          benderconverter為視頻格式轉換器


          主站蜘蛛池模板: 日韩免费无码一区二区视频| 亚洲一区在线观看视频| 一区二区免费电影| 亚洲一区二区三区四区在线观看| 色综合视频一区二区三区| 国产免费伦精品一区二区三区| 中文字幕一区二区人妻| 麻豆一区二区99久久久久| 精彩视频一区二区| 无码少妇一区二区三区浪潮AV| 无码一区18禁3D| 精品一区二区久久| 久99精品视频在线观看婷亚洲片国产一区一级在线 | 亚洲中文字幕丝袜制服一区 | 无码国产精品一区二区免费式影视| 中日韩精品无码一区二区三区| 一区二区免费电影| 国产福利一区二区| 精品午夜福利无人区乱码一区| 中文字幕一区日韩在线视频| 日本一区频道在线视频| 国精产品一区一区三区免费视频| 中文字幕在线不卡一区二区| 日韩人妻无码一区二区三区久久99| 69久久精品无码一区二区| 久久精品国产AV一区二区三区| 精品一区二区三区高清免费观看| 在线精品日韩一区二区三区| 无码欧精品亚洲日韩一区| 久久精品一区二区三区四区| 人妻精品无码一区二区三区 | 麻豆文化传媒精品一区二区| 国产在线一区二区| 亚洲av无码不卡一区二区三区| 国产一在线精品一区在线观看| 国产一区二区免费| 亚洲av成人一区二区三区观看在线| 蜜桃无码AV一区二区| 国产在线视频一区二区三区| 动漫精品专区一区二区三区不卡| 麻豆精品一区二区综合av|