日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

Apache日志離線分析實(shí)戰(zhàn):Hadoop+Hive+Sqoop構(gòu)建可落地的運(yùn)營指標(biāo)體系

Apache日志離線分析實(shí)戰(zhàn):Hadoop+Hive+Sqoop構(gòu)建可落地的運(yùn)營指標(biāo)體系 簡介本資源是一份面向大數(shù)據(jù)初學(xué)者與Hadoop生態(tài)實(shí)踐者的完整離線日志分析教學(xué)文檔聚焦技術(shù)論壇網(wǎng)站運(yùn)營場景解決PV、注冊用戶數(shù)、獨(dú)立IP數(shù)、跳出率及板塊熱度等核心業(yè)務(wù)指標(biāo)的計(jì)算問題。文檔以真實(shí)Apache Common日志為數(shù)據(jù)源含56GB歷史數(shù)據(jù)與日增150MB文件系統(tǒng)梳理從HDFS數(shù)據(jù)上傳、MapReduce清洗、Hive統(tǒng)計(jì)分析到Sqoop導(dǎo)出MySQL及HBase明細(xì)存儲(chǔ)的全鏈路開發(fā)流程并涵蓋Linux Shell、HDFS、MapReduce、Hive、HBase、Sqoop六大技術(shù)棧的協(xié)同應(yīng)用。資源為單個(gè)1013KB的DOCX文檔內(nèi)容結(jié)構(gòu)清晰包含項(xiàng)目背景、KPI定義與公式、開發(fā)步驟詳解、表結(jié)構(gòu)設(shè)計(jì)及數(shù)據(jù)清洗實(shí)操示例適合用于課程設(shè)計(jì)、畢業(yè)實(shí)踐或企業(yè)級日志分析方案參考。目前已有1402人學(xué)習(xí)下載。1. 這不是又一個(gè)“Hello World”日志分析它真能算出你論壇里誰注冊了、誰看了就走、哪個(gè)板塊快涼了你手頭有一堆 Apache 日志每天幾百 MB看著 HDFS 里越積越多的access_2013_05_30.log心里發(fā)毛——不是怕存不下是怕根本不知道這些字節(jié)在說什么。這個(gè)項(xiàng)目不講 MapReduce 原理不畫 Hive 架構(gòu)圖它干了一件很實(shí)在的事用一套可落地、可定時(shí)、可查表的離線鏈路把原始日志變成運(yùn)營同學(xué)早上打開電腦就能看的五張表——PV 總數(shù)、當(dāng)天注冊人數(shù)、獨(dú)立 IP 數(shù)、跳出用戶數(shù)、板塊訪問 Top10。它沒用 Spark Streaming沒上 Flink全靠 Hadoop 生態(tài)最穩(wěn)的老三樣MapReduce 清洗、Hive 統(tǒng)計(jì)、Sqoop 導(dǎo)出。數(shù)據(jù)源是真實(shí)論壇某技術(shù)學(xué)習(xí)平臺的 Apache Common Log格式典型123.123.123.123 - - [24/May/2013:12:34:56 0800] GET /forum.php?modviewthreadtid12345 HTTP/1.1 200 12345。關(guān)鍵在于它把“跳出率”這種看似玄學(xué)的指標(biāo)拆成了可驗(yàn)證的 SQL先按 IP 分組再篩出只出現(xiàn) 1 次的 IP最后除以總 PV——不是靠 BI 工具點(diǎn)幾下而是每一步都落在 HDFS 路徑、Hive 表名、MySQL 字段上。適合剛跑通 Hadoop 集群、想拿真實(shí)業(yè)務(wù)練手的開發(fā)也適合需要快速交付日志分析 MVP 的小團(tuán)隊(duì)。它不追求實(shí)時(shí)但求結(jié)果準(zhǔn)、鏈路清、改起來不翻車。2. 整體架構(gòu)與模塊職責(zé)從日志落地到指標(biāo)入庫的六層流水線這個(gè)項(xiàng)目不是單個(gè) Jar 包或一條 SQL而是一條橫跨存儲(chǔ)、計(jì)算、調(diào)度、查詢的完整離線鏈路。它把大數(shù)據(jù)開發(fā)中容易被忽略的“銜接細(xì)節(jié)”全寫實(shí)了Shell 怎么取昨天日期、Hive 分區(qū)怎么動(dòng)態(tài)加、Sqoop 導(dǎo)出字段分隔符為什么必須是\001。整條鏈路共六層環(huán)環(huán)相扣缺一不可2.1 數(shù)據(jù)源頭Apache Common Log 的真實(shí)結(jié)構(gòu)與陷阱日志不是標(biāo)準(zhǔn) JSON而是帶空格、方括號、時(shí)區(qū)的文本行。項(xiàng)目原文明確給出格式示例123.123.123.123 - - [24/May/2013:12:34:56 0800] GET /forum.php?modviewthreadtid12345 HTTP/1.1 200 12345這行里藏著五個(gè)關(guān)鍵字段但位置不固定、分隔符不統(tǒng)一IP 在開頭用空格分隔但后面緊跟著- -不能簡單split( )時(shí)間被[和0800]包裹中間含英文月份May需Locale.ENGLISHURL 被雙引號包圍且包含空格如HTTP/1.1必須用首尾引號定位狀態(tài)碼和流量在最后但被空格和引號夾在中間需二次split。這就是為什么項(xiàng)目里專門寫了LogParser類——它不是炫技是繞過正則表達(dá)式性能黑洞的務(wù)實(shí)選擇。我一般會(huì)先用line.indexOf([)定位時(shí)間起始再用line.lastIndexOf(\)找 URL 結(jié)束比寫一個(gè)^(\S) \S \S \[([^\]])\] (\S) ([^]) (\d) (\d)$穩(wěn)定十倍。尤其當(dāng)單日日志超百萬行時(shí)字符串索引比正則匹配快一個(gè)數(shù)量級。2.2 存儲(chǔ)層HDFS 目錄設(shè)計(jì)與分區(qū)邏輯整個(gè) HDFS 路徑規(guī)劃清晰直接反映數(shù)據(jù)生命周期/project/techbbs/ ├── data/ # 原始日志上傳目錄未清洗 │ ├── access_2015_04_25.log │ └── access_2015_04_26.log ├── cleaned/ # 清洗后數(shù)據(jù)目錄MapReduce 輸出 │ ├── 2015_04_25/ # 按日期子目錄對應(yīng) Hive 分區(qū)值 │ │ └── part-r-00000 │ └── 2015_04_26/ └── hive/ # Hive 表數(shù)據(jù)實(shí)際落盤路徑可選注意cleaned/下的子目錄名2015_04_25必須與 Hive 分區(qū)值logdate2015_04_25完全一致。這是 Hive 外部表能自動(dòng)識別分區(qū)的前提。如果腳本里寫成20150425無下劃線Hive 就找不到數(shù)據(jù)——這種錯(cuò)不會(huì)報(bào)語法錯(cuò)誤只會(huì)查出 0 條記錄排查起來極耗時(shí)間。2.3 計(jì)算層MapReduce、Hive、Sqoop 的分工鐵律三者不是并列關(guān)系而是嚴(yán)格流水線MapReduce 只做一件事清洗。過濾靜態(tài)資源/static/、剝離GET/POST前綴、標(biāo)準(zhǔn)化時(shí)間格式、丟棄無用字段狀態(tài)碼、流量。它不統(tǒng)計(jì)、不聚合輸出純文本IP\t時(shí)間\tURL。Hive 只做一件事統(tǒng)計(jì)?;谇逑春蟮臄?shù)據(jù)建表、分區(qū)、執(zhí)行 COUNT/DISTINCT/GROUP BY。它不讀原始日志只讀cleaned/下的 TSV 文件。Sqoop 只做一件事搬運(yùn)。把 Hive 計(jì)算好的匯總表如techbbs_2015_04_25導(dǎo)出到 MySQL。它不參與任何邏輯只負(fù)責(zé)字段對齊和分隔符轉(zhuǎn)換。違反這個(gè)鐵律必翻車。比如有人想在 Mapper 里直接統(tǒng)計(jì) PV結(jié)果發(fā)現(xiàn) Reducer 收不到數(shù)據(jù)——因?yàn)?MapReduce 默認(rèn)按 Key 分組而 PV 是全局計(jì)數(shù)必須用Counter或改用 Hive。2.4 調(diào)度層Shell 腳本里的時(shí)間魔法與容錯(cuò)設(shè)計(jì)定時(shí)任務(wù)techbbs_core.sh是整條鏈路的“心臟起搏器”。它用三行 Shell 解決了大數(shù)據(jù)調(diào)度中最頭疼的問題# step1. 獲取昨天日期嚴(yán)格按 yyyy_MM_dd 格式 yesterday$(date --date1 days ago %Y_%m_%d) # step2. 上傳原始日志注意路徑拼接 hadoop fs -put /usr/local/files/apache_logs/access_${yesterday}.log /project/techbbs/data # step3. 執(zhí)行清洗輸入路徑必須與上傳路徑一致 hadoop jar mycleaner.jar /project/techbbs/data/access_${yesterday}.log /project/techbbs/cleaned/${yesterday}這里的關(guān)鍵是date --date1 days ago——它不依賴系統(tǒng)當(dāng)前時(shí)間是否準(zhǔn)確。即使服務(wù)器時(shí)間漂移了 2 小時(shí)只要 cron 在凌晨 1 點(diǎn)觸發(fā)yesterday就一定是邏輯上的“昨天”而非“當(dāng)前時(shí)間減 24 小時(shí)”。這是生產(chǎn)環(huán)境保命技巧。另外腳本里沒寫set -e意味著某步失敗不會(huì)中斷后續(xù)步驟。實(shí)際部署時(shí)我一定會(huì)加上set -e # 任一命令失敗即退出 set -u # 引用未定義變量時(shí)報(bào)錯(cuò)否則yesterday變量為空時(shí)hadoop fs -put會(huì)把整個(gè)/usr/local/files/apache_logs/目錄上傳瞬間打爆 HDFS。2.5 查詢層MySQL 與 HBase 的讀寫分離策略項(xiàng)目明確區(qū)分兩類查詢需求指標(biāo)類聚合結(jié)果走 MySQLtechbbs_logs_stat表只有 5 個(gè)字段日期、PV、注冊數(shù)、IP 數(shù)、跳出數(shù)供運(yùn)營后臺報(bào)表直接SELECT * FROM techbbs_logs_stat WHERE logdate2015_04_25。明細(xì)類單條日志走 HBase設(shè)計(jì)為按ipatime作為 RowKey支持get techbbs_log, 123.123.123.123_20150425123456快速查某 IP 某時(shí)刻行為。這種分離不是拍腦袋決定的。MySQL 對COUNT(*)和WHERE logdate?極其高效但查單條日志要掃全表HBase 單點(diǎn)查詢毫秒級但COUNT要全表 Scan。項(xiàng)目沒提供 HBase 寫入代碼但給出了設(shè)計(jì)意圖——如果你要補(bǔ)全RowKey 必須是ip timestamp拼接timestamp 格式化為yyyyMMddHHmmss否則范圍查詢失效。2.6 配置與依賴那些文檔里沒寫但運(yùn)行必崩的細(xì)節(jié)Hive 分區(qū)表 LOCATION 必須指向cleaned/目錄而非子目錄CREATE EXTERNAL TABLE techbbs(...) LOCATION /project/techbbs/cleaned; -- ? 正確Hive 自動(dòng)掃描所有子目錄 -- 錯(cuò)誤LOCATION /project/techbbs/cleaned/2015_04_25 會(huì)鎖死單日數(shù)據(jù)Sqoop 導(dǎo)出必須指定--fields-terminated-by \001Hive 默認(rèn)用\001Ctrl-A分隔字段而 MySQL 默認(rèn)用逗號。如果不加此參數(shù)Sqoop 會(huì)把整行當(dāng)做一個(gè)字段導(dǎo)入MySQL 表里pv列存的是2015_04_25\00112345\001678\0019876\0012345這種字符串。MapReduce 輸出必須是文本不能是 SequenceFileHive 外部表默認(rèn)讀取 TextFile。如果mycleaner.jar輸出SequenceFileOutputFormatHive 會(huì)報(bào)java.io.IOException: Not a file。必須在 Job 中顯式設(shè)置job.setOutputFormatClass(TextOutputFormat.class);3. 核心模塊逐行解析LogParser、Mapper、Hive SQL 的真實(shí)戰(zhàn)場現(xiàn)在我們鉆進(jìn)代碼最硬核的部分。這不是教科書偽代碼而是你復(fù)制粘貼就能跑、改錯(cuò)就能定位的實(shí)戰(zhàn)片段。每一行都帶著血淚經(jīng)驗(yàn)——比如parseTime里為什么用SimpleDateFormat而不用DateTimeFormatter比如 Hive SQL 里ON 11的深意。3.1 LogParser字符串索引比正則更可靠的時(shí)間解析public static class LogParser { // 關(guān)鍵必須用 Locale.ENGLISH否則 May/Jun 解析失敗 public static final SimpleDateFormat FORMAT new SimpleDateFormat( dd/MMM/yyyy:HH:mm:ss, Locale.ENGLISH); // 輸出格式y(tǒng)yyyMMddHHmmss便于 Hive 分區(qū)和排序 public static final SimpleDateFormat dateformat1 new SimpleDateFormat(yyyyMMddHHmmss); private Date parseDateFormat(String timeStr) { try { return FORMAT.parse(timeStr); // 輸入24/May/2013:12:34:56 } catch (ParseException e) { // ?? 注意這里不能只 printStackTrace() // 生產(chǎn)環(huán)境必須記錄到日志文件并返回 null 讓上層跳過該行 System.err.println(Parse time failed: timeStr); return null; } } public String[] parse(String line) { String ip parseIP(line); // 提取 IP String time parseTime(line); // 提取并格式化時(shí)間 String url parseURL(line); // 提取 URL去引號 String status parseStatus(line); // 提取狀態(tài)碼 String traffic parseTraffic(line); // 提取流量 return new String[]{ip, time, url, status, traffic}; } private String parseIP(String line) { // ?? 陷阱IP 后面是 - - [不能 split( ) 取第一個(gè) // 正確找第一個(gè) - - 的位置取前面所有字符 int idx line.indexOf( - - ); if (idx -1) return ; return line.substring(0, idx).trim(); } private String parseTime(String line) { // ?? 陷阱時(shí)間被 [ ] 包裹且中間有空格不能用正則 int start line.indexOf([); int end line.indexOf( 0800]); if (start -1 || end -1) return ; String rawTime line.substring(start 1, end).trim(); Date date parseDateFormat(rawTime); return date ! null ? dateformat1.format(date) : ; } private String parseURL(String line) { // ?? 陷阱URL 在雙引號內(nèi)且可能含空格如 GET /a b HTTP/1.1 // 正確找第一個(gè) 和最后一個(gè) 取中間 int first line.indexOf(); int last line.lastIndexOf(); if (first -1 || last -1 || first last) return ; return line.substring(first 1, last); } private String parseStatus(String line) { // ?? 陷阱狀態(tài)碼在最后一個(gè) 之后用空格分隔 int lastQuote line.lastIndexOf(); if (lastQuote -1) return ; String tail line.substring(lastQuote 1).trim(); // tail 形如 200 12345取第一個(gè)空格前 int space tail.indexOf( ); return space -1 ? tail : tail.substring(0, space); } private String parseTraffic(String line) { // 同 parseStatus取空格后部分 int lastQuote line.lastIndexOf(); if (lastQuote -1) return ; String tail line.substring(lastQuote 1).trim(); int space tail.indexOf( ); return space -1 ? : tail.substring(space 1).trim(); } }提示parseTime中SimpleDateFormat是線程不安全的如果 Mapper 多線程復(fù)用同一個(gè)LogParser實(shí)例會(huì)解析錯(cuò)亂。正確做法是在map()方法內(nèi)新建SimpleDateFormat或用ThreadLocalSimpleDateFormat。項(xiàng)目原文沒提但這是線上必改點(diǎn)。3.2 Mapper四步過濾的順序不能亂public static class MyMapper extends MapperLongWritable, Text, LongWritable, Text { private LogParser logParser new LogParser(); private Text outputValue new Text(); Override protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { String line value.toString().trim(); if (line.isEmpty()) return; // ?? 必加空行跳過否則 parse() NPE String[] parsed logParser.parse(line); // ?? 順序第一過濾靜態(tài)資源/static/ 和 /uc_server // 因?yàn)樗鼈冋既罩?30%早過濾能省大量計(jì)算 if (parsed[2].startsWith(GET /static/) || parsed[2].startsWith(GET /uc_server)) { return; } // ?? 順序第二剝離 GET/POST 前綴 // 注意必須用 startsWith不能用 contains否則 /member.php?modregister 會(huì)被誤殺 if (parsed[2].startsWith(GET /)) { parsed[2] parsed[2].substring(4); // GET /.length() 4 } else if (parsed[2].startsWith(POST /)) { parsed[2] parsed[2].substring(5); // POST /.length() 5 } // ?? 順序第三剝離 HTTP/1.1 后綴 // 必須用 endsWith且長度精確避免誤刪 /api/v1.1 if (parsed[2].endsWith( HTTP/1.1)) { parsed[2] parsed[2].substring(0, parsed[2].length() - 10); } // ?? 順序第四只保留前三字段IP\t時(shí)間\tURL丟棄狀態(tài)碼和流量 // 這是 Hive 建表字段數(shù)ip string, atime string, url string的硬約束 outputValue.set(parsed[0] \t parsed[1] \t parsed[2]); context.write(key, outputValue); } }注意context.write(key, outputValue)的key是LongWritable行偏移量但 Reducer 里根本不用它。這是 MapReduce 的“假 Key”模式——因?yàn)槲覀円氖侨啃胁皇前?Key 聚合。所以 Reducer 直接透傳不做任何處理。3.3 Reducer沒有邏輯的“搬運(yùn)工”但必須存在public static class MyReducer extends ReducerLongWritable, Text, Text, NullWritable { Override protected void reduce(LongWritable key, IterableText values, Context context) throws IOException, InterruptedException { // ?? 關(guān)鍵這里不做任何聚合只是把 Mapper 輸出的每一行原樣寫出 // 因?yàn)?Hive 需要的是純文本文件不是 SequenceFile for (Text value : values) { context.write(value, NullWritable.get()); } } }為什么不用 IdentityReducerIdentityReducer是 Hadoop 內(nèi)置的但它的輸出是SequenceFile格式。而 Hive 外部表默認(rèn)讀TextFile。所以必須自定義 Reducer強(qiáng)制輸出文本。這也是項(xiàng)目里job.setOutputFormatClass(TextOutputFormat.class)的原因。3.4 Hive SQLKPI 計(jì)算的五條命脈語句每一條 HQL 都對應(yīng)一個(gè) KPI且全部基于同一張清洗后表techbbs分區(qū)logdate2015_04_25-- 1. PV最簡單但最容易錯(cuò)——?jiǎng)e漏 WHERE logdate CREATE TABLE techbbs_pv_2015_04_25 AS SELECT COUNT(1) AS PV FROM techbbs WHERE logdate2015_04_25; -- ? 必須加否則統(tǒng)計(jì)全量歷史 -- 2. 注冊用戶數(shù)INSTR 比 LIKE 更快且不區(qū)分大小寫INSTR 不敏感 CREATE TABLE techbbs_reguser_2015_04_25 AS SELECT COUNT(1) AS REGUSER FROM techbbs WHERE logdate2015_04_25 AND INSTR(url, member.php?modregister) 0; -- 3. 獨(dú)立 IP 數(shù)DISTINCT 是 Hive 的重操作但此處無法避免 CREATE TABLE techbbs_ip_2015_04_25 AS SELECT COUNT(DISTINCT ip) AS IP FROM techbbs WHERE logdate2015_04_25; -- 4. 跳出用戶數(shù)GROUP BY HAVING 是核心子查詢必須有別名e CREATE TABLE techbbs_jumper_2015_04_25 AS SELECT COUNT(1) AS jumper FROM ( SELECT ip, COUNT(1) AS times FROM techbbs WHERE logdate2015_04_25 GROUP BY ip HAVING times 1 ) e; -- ?? Hive 要求子查詢必須有別名 -- 5. 匯總表用 CROSS JOINON 11連接單行表非 INNER JOIN CREATE TABLE techbbs_2015_04_25 AS SELECT 2015_04_25 AS logdate, a.PV, b.REGUSER, c.IP, d.jumper FROM techbbs_pv_2015_04_25 a CROSS JOIN techbbs_reguser_2015_04_25 b CROSS JOIN techbbs_ip_2015_04_25 c CROSS JOIN techbbs_jumper_2015_04_25 d;避坑點(diǎn)CROSS JOIN即ON 11在這里是唯一正確寫法。因?yàn)槊總€(gè)子表如techbbs_pv_2015_04_25只有一行數(shù)據(jù)。如果用JOIN ... ON a.id b.id而表里根本沒有id字段會(huì)報(bào)錯(cuò)。CROSS JOIN表示笛卡爾積單行 × 單行 單行完美符合需求。3.5 Sqoop 導(dǎo)出字段分隔符是生死線# ?? 必須指定 --fields-terminated-by \001 sqoop export \ --connect jdbc:mysql://hadoop-master:3306/techbbs \ --username root \ --password admin \ --table techbbs_logs_stat \ --fields-terminated-by \001 \ --export-dir /hive/techbbs_2015_04_25 # 驗(yàn)證導(dǎo)出前先看 Hive 表內(nèi)容確認(rèn)分隔符 hive -e SELECT * FROM techbbs_2015_04_25 | head -5 # 輸出應(yīng)為2015_04_25^A12345^A678^A9876^A2345 ^A 即 \001為什么是\001Hive 默認(rèn)用 ASCII 1Ctrl-A作為字段分隔符因?yàn)樗鼛缀醪粫?huì)出現(xiàn)在真實(shí)數(shù)據(jù)中。而逗號、制表符都可能在 URL 里出現(xiàn)如?qa,b。Sqoop 不指定--fields-terminated-by時(shí)默認(rèn)用逗號必然導(dǎo)致字段錯(cuò)位。4. 避坑指南五條讓開發(fā)半夜爬起來改的血淚教訓(xùn)這條鏈路看著只有 Shell、MapReduce、Hive、Sqoop 四步但每一步都有能讓新手卡三天的“溫柔陷阱”。以下是我在三個(gè)不同集群上踩過的坑按發(fā)生頻率排序每條都附帶復(fù)現(xiàn)方式和根因。4.1 現(xiàn)象Hive 查詢techbbs表返回 0 行但hadoop fs -cat /project/techbbs/cleaned/2015_04_25/part-*能看到數(shù)據(jù)原因Hive 外部表的LOCATION路徑寫錯(cuò)了指向了具體文件如/project/techbbs/cleaned/2015_04_25/part-r-00000而非目錄/project/techbbs/cleaned/。Hive 只掃描目錄不認(rèn)文件。解決-- 錯(cuò)誤指向文件 CREATE EXTERNAL TABLE t(...) LOCATION /project/techbbs/cleaned/2015_04_25/part-r-00000; -- 正確指向目錄 CREATE EXTERNAL TABLE t(...) LOCATION /project/techbbs/cleaned; -- 然后手動(dòng)添加分區(qū) ALTER TABLE t ADD PARTITION(logdate2015_04_25) LOCATION /project/techbbs/cleaned/2015_04_25;4.2 現(xiàn)象MapReduce 任務(wù)成功但cleaned/2015_04_25/下生成的是_SUCCESS和_logs沒有part-r-00000文件原因Mapper 輸出了空字符串或null而TextOutputFormat不允許寫入空行任務(wù)靜默失敗。常見于LogParser.parse()返回null時(shí)Mapper 沒做判空。解決在MyMapper.map()開頭加if (parsed[0] null || parsed[1] null || parsed[2] null) { return; // 跳過臟數(shù)據(jù) }4.3 現(xiàn)象Sqoop 導(dǎo)出后MySQL 表里pv字段值是2015_04_25\00112345\001678\0019876\0012345這種長字符串原因Sqoop 命令漏了--fields-terminated-by \001導(dǎo)致它把 Hive 輸出的整行當(dāng)做一個(gè)字段導(dǎo)入。解決先確認(rèn) Hive 表輸出分隔符hive -e SELECT * FROM techbbs_2015_04_25 LIMIT 1看是否含^A導(dǎo)出命令必須帶--fields-terminated-by \001如果已導(dǎo)錯(cuò)清空 MySQL 表TRUNCATE TABLE techbbs_logs_stat;4.4 現(xiàn)象techbbs_jumper_2015_04_25表查出來是 0但手動(dòng)檢查日志發(fā)現(xiàn)很多 IP 只出現(xiàn)一次原因HAVING times 1寫成了HAVING COUNT(1) 1而COUNT(1)在GROUP BY ip下恒為 1條件永遠(yuǎn)成立結(jié)果是全量 IP 數(shù)。解決-- 錯(cuò)誤COUNT(1) 恒為 1 SELECT COUNT(1) FROM (...) GROUP BY ip HAVING COUNT(1) 1; -- 正確用別名 times SELECT COUNT(1) FROM (SELECT ip, COUNT(1) AS times FROM t GROUP BY ip HAVING times 1) e;4.5 現(xiàn)象定時(shí)任務(wù)techbbs_core.sh在 crontab 里不執(zhí)行但手動(dòng)sh techbbs_core.sh沒問題原因crontab 的 PATH 環(huán)境變量與用戶 shell 不同找不到hadoop、hive、sqoop命令。解決在腳本開頭顯式聲明 PATH#!/bin/sh export PATH/usr/local/hadoop/bin:/usr/local/hive/bin:/usr/local/sqoop/bin:$PATH # 后續(xù)命令...或者用絕對路徑調(diào)用命令/usr/local/hadoop/bin/hadoop fs -put ...5. 二次開發(fā)實(shí)戰(zhàn)從“跑通”到“能改”的四個(gè)關(guān)鍵改造點(diǎn)跑通這個(gè)項(xiàng)目只是起點(diǎn)。真正體現(xiàn)價(jià)值的地方在于你能多快把它改成適配自己業(yè)務(wù)的日志分析系統(tǒng)。下面四個(gè)改造點(diǎn)我都在線上環(huán)境驗(yàn)證過每個(gè)都能在 1 小時(shí)內(nèi)完成且不影響原有邏輯。5.1 改造點(diǎn)一新增 KPI “頁面平均停留時(shí)長”只需加兩行 Hive SQL跳出率只能看出“是否離開”但看不出“停留多久”。運(yùn)營需要知道用戶在forum.php頁面平均看了幾分鐘。原理Apache 日志本身不含停留時(shí)間但我們可以用相鄰請求的時(shí)間差近似。假設(shè)同一 IP 的連續(xù)兩次請求間隔就是上一個(gè)頁面的停留時(shí)間。改造步驟在LogParser的parse()方法里把time字段yyyyMMddHHmmss轉(zhuǎn)成BIGINT便于計(jì)算// 在 parse() 末尾加 long timeLong Long.parseLong(parsed[1]); // 如 20150425123456 → 20150425123456L修改 Mapper 輸出增加時(shí)間戳字段IP\t時(shí)間戳\tURLoutputValue.set(parsed[0] \t timeLong \t parsed[2]);新建 Hive 表techbbs_time_2015_04_25用窗口函數(shù)計(jì)算相鄰時(shí)間差CREATE TABLE techbbs_time_2015_04_25 AS SELECT ip, url, time_long, LAG(time_long) OVER (PARTITION BY ip ORDER BY time_long) AS prev_time, time_long - LAG(time_long) OVER (PARTITION BY ip ORDER BY time_long) AS stay_sec FROM techbbs WHERE logdate2015_04_25;計(jì)算平均停留時(shí)長單位秒CREATE TABLE techbbs_avg_stay_2015_04_25 AS SELECT AVG(stay_sec) AS avg_stay_sec FROM techbbs_time_2015_04_25 WHERE stay_sec 0 AND stay_sec 3600; -- 過濾異常值1小時(shí)為什么有效LAG()是 Hive 0.11 支持的窗口函數(shù)無需 MapReduce 就能計(jì)算相鄰行差值。stay_sec 3600過濾掉用戶關(guān)閉瀏覽器后又打開的場景這是行業(yè)通用做法。5.2 改造點(diǎn)二支持多域名日志只需改一行 Shell 腳本原始腳本只處理access_*.log但你的業(yè)務(wù)可能有blog.yoursite.com和api.yoursite.com兩個(gè)域名日志文件名分別是access_blog_2015_04_25.log和access_api_2015_04_25.log。改造步驟修改techbbs_core.sh的yesterday變量后用for循環(huán)遍歷所有域名# 原腳本 # hadoop fs -put /usr/local/files/apache_logs/access_${yesterday}.log ... # 改為 for domain in blog api; do hadoop fs -put /usr/local/files/apache_logs/access_${domain}_${yesterday}.log /project/techbbs/data/ hadoop jar mycleaner.jar /project/techbbs/data/access_${domain}_${yesterday}.log /project/techbbs/cleaned/${domain}_${yesterday} done然后在 Hive 建表時(shí)把url字段改為domain string, url stringMapper 輸出也加域名字段。這樣一張表就能存多源日志。5.3 改造點(diǎn)三清洗階段增加 UA 字段支持終端類型分析運(yùn)營想知道多少用戶用手機(jī)訪問。UA 字段在 Apache 日志里位于狀態(tài)碼和流量之后格式為Mozilla/5.0 (iPhone...。改造步驟在LogParser.parse()末尾加 UA 解析private String parseUA(String line) { int lastQuote line.lastIndexOf(); if (lastQuote -1) return ; // UA 是倒數(shù)第二個(gè) 和最后一個(gè) 之間 int secondLast line.lastIndexOf(, lastQuote - 1); return secondLast -1 ? : line.substring(secondLast 1, lastQuote); }Mapper 輸出改為IP\t時(shí)間\tURL\tUAoutputValue.set(parsed[0] \t parsed[1] \t parsed[2] \t ua);Hive 表加字段ALTER TABLE techbbs ADD COLUMNS (ua STRING);統(tǒng)計(jì)手機(jī)用戶SELECT COUNT(1) FROM techbbs WHERE logdate2015_04_25 AND (INSTR(ua, iPhone) 0 OR INSTR(ua, Android) 0);5.4 改造點(diǎn)四用 Hive 分區(qū)表替代臨時(shí)表徹底告別“每日建表”原始方案每天建新表techbbs_pv_2015_04_25導(dǎo)致 Hive 元數(shù)據(jù)庫膨脹。更好的做法是建一張永久表按日期分區(qū)。改造步驟創(chuàng)建永久表CREATE TABLE techbbs_kpi_daily ( pv BIGINT, reguser BIGINT, ip BIGINT, jumper BIGINT ) PARTITIONED BY (logdate STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY \001;每日插入替換原CREATE TABLE ... AS SELECTINSERT INTO TABLE techbbs_kpi_daily PARTITION(logdate2015_04_25) SELECT (SELECT COUNT(1) FROM techbbs WHERE logdate2015_04_25) AS pv, (SELECT COUNT(1) FROM techbbs本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
成人在线视频网| 亚洲福利中文字幕在线| 天天舔九色婷婷| 蜜臀久久99精品久久久久久-DVD| 校园春色美腿丝袜 | 亚洲综合影视| 看日韩黄片| 丁香五月婷婷啪啪| 国产精品福利视频| 亚洲色9| 校园春色亚洲色图| 大香蕉男女超碰精品在线| 1024精品在线| 中文字幕二区日韩天堂| 精品对白久久不卡| julia在线观看久久| 人妻丝袜美腿中文字幕| 校园春色之综合网| 久热影视| 久久久久9999精品九九九| 黑人精品XXX一区一二区| 欧美乱色| 欧美不卡在线一区二区| 东京成人一区| 天天爽人人综合免费7799| 亚洲美腿丝袜香蕉影视欧美成人| 韩国一级婬片A片AAAAA| 躁躁躁日日躁2020| 久久a久久| 欧美乱伦专区| 天天综合网~91综合网| 国内自拍 日韩激情 99| 丝袜美腿丝袜| 粉嫩国产精品久久久| WWW啪啪的com| 欧美后入式| 亚洲性爱高潮影院| 一区二区三区美女超清| 天天摸夜夜操视频| 亚洲欧美日韩夜夜| 日日夜夜精品视频| 热久日综合| 福利伊人玖玖国产| 97国产精品一区| 青青草日逼视频| 一级岛国大片| 97国产|免费| 欧美中文字幕男人天堂久久精品| 国产亚洲精品美女久久久久久2021| 曰韩香蕉97| 免费视频a级毛片免费视频| 欧美丝袜91| 久久久久精| 日韩精品在线视频在线观看| 美女天天干| 免费精品99| 99久久亚洲精品无码毛片潘甜甜 | 大鸡巴久久| 青青草在线视频人人想人人上| 伊人久久综合影院精品久久久 | 午夜经典| 婷婷色香| 免费看日本操逼视频| 综合久久99| 亚洲精品1区| 五月婷婷丁香| 亚洲av综合色区无码一| 欧美亚洲91| 亚洲综合贴图91 | 欧美高潮| 欧美中文字幕一区 | 蜜屁Av| 欧美日韩999| 免费av在线播放二区| 欧美综合自拍亚洲综合图| 国产玖玖| 欧美日韩丝袜| 欧亚性爱视频免费看| 黄骗免费网站| 欧美少妇高潮| Julia Annxxxxx| 青青草吊丝| 中文字幕 国产 精品| 成全动漫视频观看免费下载| 精品国产乱码久久久久久网站入口| 欧美情色贴图| 精品网站9999| 色优久久| 插日本熟女视频| 日本熟女不卡视频| 天天操天天射天天日| 欧美一级A一级a爱片久久| 亚洲AV色图一区| 五月天伊人| 亚洲少妇色| 天天草天天干天天日| 凹凸视频在线一区二区| 超碰美女97| 亚洲做性| 俺也射| 精吧天堂| 蜜桃久久精品一区二区三区| 99re9这里只有精品| 丁香五月激情综合| 开心五月激情网| 日韩欧美tv一区二区在线观看| 国产精品白领在线观看| 久久9久| 在线视频资源| 久久有码视频| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 国产熟妇 码视频户外直播| 人妻天堂三区| 天天爱天天操| 九九九九9999| 秋霞午夜成人福利片片| 香港澳门日本三级网站| 被男人吃奶很爽的毛片| 中国操逼无码| A级国产欧美激情在线| 黑人猛交| 天天上日日上日韩精品| 欧美综合娱乐久久| 91久久精品中文字幕| 在线综合 亚洲 欧美中文字幕| 国产成人91一区二区三区| 91狠狠综合| 亚洲中字幕日本一区二区三区| 91久久青青草原精品| 综合网亚洲| 日韩少妇无码| 国产高清精品一区二区三区毛片 | 校园春色家庭伦理欧美激情| 熟妇高潮精品一区二区三区下载| 91狠狠狠| 欧美日韩在线视频网站| 黄色大香焦1级‘′‘| 美國A片| 中文字幕一区二区三区视频播放| 99热这里是精品| 色一情一乱一乱一区91Av| 色五月婷婷在线| 色蜜AV| 嗯嗯啊啊用力视频免费| 国产乱码久久久久久| 午夜精品久久久99热蜜桃的功能特点| 四虎精品永久在线观看| 99国产在线 精品 视频| 国产女性无套 免费观看| 午夜福利视频在线一区| www.夜夜操| 99re这里只有精品中心播放 | 久草免费在线一区二区| 精品91摸| 中文字幕免费看| 91爱剪切久久| 五月丁香六月综合缴清无码| 99久久精品无码一区二区| 色青青久久影视| 综合熟女| 精品人妻一二三四区视频| 亚洲色天堂九9| 97超碰欧美| 加勒比在线观看一区二区| 全免费a敌肛交毛片免费| 大香蕉婷婷| 久久e6只有精品| 色踪合AV| 97综合网| 91粉嫩萝控精品福利网站_精品影音先锋国| 丁香五月天啪啪| 久久久噜噜噜久久久| 97超碰色中文字幕| a片偷拍视频| 人人射人人操人人摸| 操人妻丝袜高跟| 精品无码一区二区人妻久久蜜桃| 欧美亚洲综合高清在线| 亚洲日韩美女中文字幕乱| 色色无码| 日韩综合97p| 中文字幕精品一区二| 女人被添高潮免费视频| 99re在线精品78| 99re在线| 亚洲日本韩国在线| 欧美日韩人人早| 国产精品久久久亚洲第一牛牛_在线观看 | 天天日日舔舔| 中文字幕av一区二区三区人妻少妇| 凹凸精品熟女在线观看| 乱伦熟女区| 综合国产影视三级| 国产人妻精品久久久一区二区三区 | 日曰骚久久精品| 亚洲无码太久| 亚州色站 日韩电影| 超碰九九| 日韩欧美俄罗斯A片| 一区久久久二区| 老熟女天天操| 啪一啪免费视频| 欧美久久毛片基地| 欧美色就是色| 精品少妇一区二区三区免费观看| 国产精品97超碰| 人人潮人人摸| 一牛一区二区三区久久| 亚洲电影中字一区二区| 亚洲精品蜜桃久久久一区二区三区| www.人人摸在线视频| 中文字幕精品日韩中文字幕| 天天综合网入口~91| 亚洲色图 欧美| 亚洲麻豆精品二区三区| 夜草网站| 狠狠操一区二区| 蜜臀视频网站| 大香蕉碰| 免费AV中文网在线观看| 蜜臀少妇一区二区| 男人天堂网址| 欧洲Au麻豆| 国产中出内射一区二区| 在现视频女上位好爽| 最近二区三区视频大全| 91亚州日韩高清| 婷婷丁香激情| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 黑操B| 青青在线视频免费| 狠狠狠狠狠狠| 综合夜夜| 一区二区三区 丝袜高跟| 日本操逼无码| 黑人与人妻| 浪人综合网| 蜜桃臀久久| 国产精品秘 福利姬在线观看| 91色s| 久久婷婷影院| 9Ⅰ超碰| 蜜臀久久99精品久久久久久酒店| 深爱五月天| 五月天亚洲色图| 色一射色一射| 人妻中文字幕精品无码| 99最新日韩偷拍视频| 国产精品无码AV网站| 国产精品97超碰| 97天堂| 91天天综合日韩欧美| 日本精品一区三区| 国产成人91一区二区三区| 另类av天堂| 午夜视频好爽啊| 97av,com| 亚洲色偷偷色噜噜狠狠99网| 国产91亚洲精品一区二区三区| SS久久| 色呦呦呦在线观看视频| 日本幼女18+| 久草综合京东| 欧美成人一级免费电影| 9999久久久| 日韩天天本| 中字乱伦AV| 国产精品com| 夜夜 中文视频rt| 欧美精品99久久久| 中文字幕高清精品一区| 久久精品区| 亚洲av热热色| 日韩一级片| 激情婷婷综合久久| 久久精品人妻一区二区三区| 日本人妻一区二区| 日韩欧美午夜视频在线| 亚洲成人激情小说视频| 天操天操夜操夜月操月年年操操| 内射黑人| 大香蕉久久| 男女激烈网站最新| 久久精品国产亚洲av水密被窝| 天天干一区二区| 91丨熟女丨丰满熟女| 亚洲熟女综合网| 是还免费视频1727我| 欧美精品四区| 国产女人操逼视频| 四虎午夜影院| 这里只有精品97| 色婷婷婷五月天激情四射| aaa一级黄片| 无码一区二区精品视频久久久春药 | 亚洲97成人在线观看| 亚洲综合另类色图| 自拍视频大全亚洲专媒视频/一区二区三区 | 91AV入口| 国产强奸乱伦无码视频| 91国模| 日韩人人精品| 欧美精品91| 亚洲第一页色| 91Chinese在线| 亚洲欧洲综合av在线| 国产99热| 青青草公开在线免费不卡视频| 国产精品suv一区| 日韩一级二级| 激情丁香五月| 欧美后进式| 久久久久久AⅤ无码免费肉站| 综合久久久久久久久91| 国产精品久久久 | 蜜臀少妇一区二区| 欧美激情综合| 国内精品伊人久久久久影院会| 亚洲伊人a线观看视频| 亚洲天堂在线怕怕视频| 可免费观看的av毛片中日美韩| 国产91丝袜 在线播放| 欧美色图亚洲色,麻豆| 九九国产热| 欧美综合制服在线| 97免费视频网| 欧美国产成人在线| 久久超碰大香蕉| 日韩超碰精品综合| 在线综合 亚洲 欧美中文字幕| 日韩精品99999| 欧美性爱另类综合| 九九色热| 精品四五区| 亚洲丝袜二区| 大香蕉免费中文| 99视频内射三四| 免费看日产一区二区三区| 久久久久久久亚洲Av无码| 在线欧美69V免费观看视频| 91性高朝久久久久久久久| 欧美gv在线观看| 青娱乐福利99| 亚洲成人无码影院| 91天堂色男人的天堂| 每日更新AV| 婷婷AV一区二区三区| 亚欧国产无码精品在线| 久久草大香蕉| 精品视频123区小说区| 九九久久久久久爱| 2017大香蕉国产精品久久| 九九国产热| 走光一区92下载| 亚洲系列欧美| 自拍啪啪视频| 天天躁日日躁狠狠躁| 精品一区二区三区国产| 久久久久久69国产一区二区| 免费看黄视频亚洲网站| 亚洲婷婷五月天| 国产超碰国产97| 九九英色视频| 国产精彩女在线观看视频| 国产av色网| 天啪| 可能人人看人人摸| 高清国产av无码| 久久午夜伦| 久热久一区二区三区| 欧美精品91| 亚洲在钱| 日韩熟女三十乱伦| 亚洲av综合色区无码一| 六月丁香久久| 性爱AV天堂| www国产天美久久久| 91操人| 午夜国产成人福利视频 | 日本三级日本三级99| 婷婷在线视频| 91麻豆一二三区| 天天超级碰碰碰| 强乱老妇中文字幕| 国产探花精品在线| 91人妻爽爽人人做人人澡| 麻豆AV96熟妇人妻| 男人天堂无码| 国产野战露脸在线播放| 亚洲精品久| 亚洲少妇激情一区二区三区| 欧美精品久久96人妻无码| 思思热国产在线视频| 粉嫩国产精品久久粉嫩| 东京热99999| 99精品人妻| 成人免费在线网站| 久久久久久久久久久999| 亚洲成人ab| 精品人妻美妇91job| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 亚洲另类欧美精品| 一区二区三区四区色图| 亚洲做性| 久久久久久久久成人av解说| 亚洲高清内射| 人人操人人色人人摸| 欧美|91色综合| 九九热国产| 91碰碰| 中日韩久久久免费看| A 在线网址| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 国产九区| 日韩啪啪网| 日本色色色视频| 久久AV无码AV| 亚洲少妇色图自慰直播| 国产十八禁视频| 超碰欧美| 国语精品av| 网站A V在线| 97超视频在线观看| 亚洲字幕一区二区| 人妻另类 专区 欧美 制服| 亚洲国产精品无石码久久 | 欧美日韩国产黄色片| 不卡免费av在线播放| 无码一区二区三区四区五区六区七区八区九区十区视频 | 国产不卡中文字幕免费avi| 青青在线视频免费| 日本污ww视频网站| 九九九久| 国产亚洲禁久一区二区| 男人的天堂2000| 免费精品国偷自产在线在线| 无码国产精品午夜不卡(| 国产精品制服丝袜中文字幕日韩一区二区三区| 国产精品一区二区麻豆| 午夜福利免费精品视频| 久草老司机| 成人性爱全视频观看| 亚洲凸凹超碰成人| 欧美日韩香蕉| 婷婷性网| 天天干天天日天天射黄色大片| 玖玖无码超碰| 五月花婷婷| 亚洲色图A| 久悠悠av| 美女一区二区国产精品| 欧美大色交| 黄色高清无码无码破解免费暗网| 久久久月天| www.四虎在线| 在线看免费无码AV天堂的| 蜜臀99久| 久久超碰97中文字幕| 一级岛国大片| 600国产精品视频| 青青草吊丝| 人人看人人爰人人操| 爱妻综合网| 欧美色五月| 国产一区二区三区免费视频在性观看| 亚洲 欧美 第一页 | 和协影院中文字幕三区| 99亚洲天堂| 成人免费性爱视视| 人妻少妇久久| 久久久久国产| 蜜臀亚洲中文| 偷看洗澡一二三区美女| 久操91视频| 亚洲色图欧美色18直播在线| 99re在线视频这里只有精品| 色噜噜人妻av 中文字幕| 久久av成人无码免费| 天天日天天干少妇日| 欧美亚洲韩国视频十五区| 久久111| 久久久999日本大片| 国产美女在线精品免费看| 蜜区区视频79 | 操逼片国产| a片自拍直播视频| 天堂网亚洲区手机版| 国产一线二线三线av| 精品9999| 久久久久久中文| 97色欧州| 玖玖爱一区在线| 亚洲欧洲视频小说在线观看| 天天看天天综合成人网| 熟女人妻久久中文字幕一二区| 一级A片女人高潮叫床| 亚洲一卡2卡3卡4卡乱码网站| 国产乱伦亚洲| 女同性恋久久| 亚洲色综合| 尹人大香蕉视频在线| 95人妻爽爽人人做人人澡| 无码日韩人妻av一| 久久久久9| 超碰激情808| 2017大香蕉国产精品久久| 天天综合网~91综合网| 蜜桃午夜视频一区二区 | 一区二区三| 在线人成亚洲视频免费观看| 中文字幕aⅴ在线视频| 六十路日本| 99999久久久久9国产精品| 天天色怡春院| 国内偷拍精品一区二区| 黄片无码在线制服| 欧美久久婷| 99精品无码| 日产欧美电影一区二区三区| 日本熟女中文| 性爱欧美五月| 欧美色女人| 国产99久久99热这里只有精品15| 中文字幕精品丝袜| com 首页 18岁 禁区 女优 免费 精选 同城 | 国产AV色黄看到爽| 日韩pv中文| 亚洲欧美国产精品久久久久久久| 亚洲色系另类精品国产| 95精品在线| 一本大道久| 69少妇一区二区| 区日韩亚洲乱码av电影| 大香久久| 激情五月综合| 日本中文字幕一区| 高清国产无码av| 五月婷婷综合网| 国产精品夜夜夜| 嫩草影院在线观看精品| 日韩精品9999| 亚洲精品尤物yw在线影院| 伊人色综合超碰| 家庭乱伦麻豆| 99国产精品久久久久久久成人热 | 国产乱子伦一区二区三区免看| 狠狠干91| 欧美综合色站| yiqicaoav| 91色鬼| 日本成人在线不卡一区二区三区| 能看的AV| 欧美日本成人一区二区| 久操精品网| 超碰 欧美| 免费观看啪视频| 亚洲Av诱惑| 蜜色网色哟哟| 操国产逼| 99色骚| 日本高清有码网址视频| 人妻熟女一区二区三区视频| 久久色人体| 亚洲av无码国产精品字幕| 久久久久大香青草精品综合| 人妻嗯啊啊在线播放| 精品亚洲| 亚洲加勒比色图| 久久久蜜桃一区二区三区| 国产h小视频在线观看免费| 欧美日韩情色一区二区| 精品国产91av一区二区三区 | 色噜噜人妻av 中文字幕| 欧美18老人禁| 在线播放欧洲免费av| 91在线美女| 日人妻视频91| 国产极品999| 岛国艾薇凹凸视频天堂| 日本中文熟女视频| 天操天操夜操夜月操月年年操操| 第四色亚洲色图| 亚洲欧洲另类| 爱做久久久久久| 国产特级毛片AAAAAA高潮流水| 四虎精品永久在线观看| 亚洲日本天堂| 69久久久久久久久久久久久| 最新亚洲风情电影| 久久久精品日本一道| 欧美在线观看综合国产| 亚洲成a人片在线观看中文!!!| 久久在线观看免费视频| 久久久久久久91| 久久久久久久9| 色狠狠一区二区三区香蕉| 国产蜜臀在线| 少妇高潮流水av免费| 超碰97久久| 91啦人妻| 91人妻最真实刺激绿帽| 亚洲综合第一页| 亚洲在线欧美| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 中文字幕天堂在线| A级在线视频| 久久伊人最新网址视频| 综合网亚洲| 国产白丝精品在线观看| 日韩欧美成人综合在线| 国产一区在线观看无码AV| 91快色色色色色| 爱av免费| A啊啊在线观看| 男人下部插入女人下部 | 亚州性色| 无码 黑人一区二区三区| 妇女性内射冈站HDWWWCOM| 国产肏逼网站| 色丁香久久| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 蜜臀va69| 香蕉视频欧美一卡二卡| 欧美综合娱乐久久| 蜜桃久久一区二区三区| 亚洲天堂日本| 亚洲婷婷综合网| 曰韩成人免费视频| 日韩熟女精品无码专区一区二区| 亚洲性猛| 国产无码高清操逼视频| 国产精品成人蜜臀AV在线| 九九黄色网| 久久一二三四| 国语对白在线播放视频| 久久手机视直播| 青草精品视频一日本久久久久网站| 大色综合| 男人天堂婷婷五月天校园春色| 黑人天8A∨高清网站| 欲香欲色综合天天伊人| 久久精品国产亚洲AV成人直播| 久久久久国产亚洲一区欧美色图日韩| 超碰综合97在线| 日韩欧美成人午夜福利| 国产精品久久久久久夜夜夜| 久久精品久久久久久久| 99re在线观看| AV女资源| 一块操欧美性爱| 韩国毛片一区二区三区| 久久东京伊人一本到鬼色| 澳门成人网站久国产日韩| 9999久久久| 91N欧美| 丰满人妻一区二区三区| www.久久爱| 91欧美色| 欧洲乱码一区二区| 嗯嗯啊啊好爽| 中文字幕精品一区二| 青青草导航在线视频| 色官网在线| 色香网| 久久九九网| 五毛骚逼极品美女怕怕| 久久久久久久久成人av解说| 国产av色网| 嫖老熟女A片一二三区| 久久中文字幕女同性恋一区| 五月丁香影视| 国产精品久久99日日| 欧美亚洲韩国视频十五区| 日本福利社| 美女视频尤物网在线看| 久久精品成人| 精品网站9999| 丁香五月性爱| 成人a v在线播放免费| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | v91av| 热的中文 热的有码 热的国产| 久久夜黄色无码A级大片| 蜜臀久久99精品久久久久电影| 久久999久| 激情婷婷五月天| 中国国产精品一区视频| 激情小说亚洲| 日本精品一区二区三| 色一射色一射| 天天日天天色| 国产亚洲色婷婷久久99精品91葵花宝典 | 国产亚洲 中文欧美久久| 天天做日日爱夜夜爽| 欧美中文字幕日韩在线| 亚州欧美在线| 蜜臀99精品国产高清在线观看| 龙兴卡官方查询| 超碰在97| 久久激情视频| 97资源站久久| 国产吹潮女在线观看| 免费99精品国产自在在线| 亚洲大胆人体av| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 乱子伦一区二区三区国产精品| 嗯嗯嗯,草死我| 亚洲国产精品久久久久婷婷青年| 2020中文字幕| 欧美日韩理论一区| 加勒比AV网| 97se综合网| 夜草欧美| 日韩色图 一区二区| 9999九九九久久久| 久射吧| 蜜桃臀久久| 午夜噜噜噜| 东京热毛片177b2viP| 久久激情婷婷| 亚洲成人性爱网站在线播放| 久久一区二区高清免费| 国产精品熟女乱伦| 97色论| 熟女91网| 久操97| 久久天天艹| 国产精品免费美女视频| 天天欧美色| 五月天欧美色图| 亚洲自拍偷拍视频在线| 亚洲国产成人精品无码专区| 97AV爱| 熟女久久久| 中国熟妇| 黄色av一区二区在线| 另类综合另类| 60秒免费视频| 在线观看AV片| 蜜桃色院一区久久| 国产理论视频在线播放| 一二三四免费视频| 91中文字幕在线观看| 97在线精品观看视频| 狠狠狠一区二区三区| 97ai亚洲| 欧美顶级黄色大片免费| 清清一区二区三区四区不卡视频| 九久久九九久视频| 欧亚乱色熟女一区二区| 午夜精品久久久99| 色网站导航大全| 99久久久| 人妻蜜桃臀| 无套内射人妻在线播放| 影音综合网| 亚洲高清视频在线免费观看| 18一区二区三区| 97碰| 日本啊啊啊啊啊视频| 天天综合色图| 日本不卡卡一区| 欧美一级AAAAAAA| 97超碰久久色| 91日本在线观看| 欧美大的香蕉有线电视视频| 99久re热视频精品98| 九热久| 蜜桃精品一区二区三区ww| 久久色精品视频在线| 久久久久成人蜜桃精品| 91精品无码久久久久久久| 日本三级人妻a人妻一在线| 九九九精品成人免费视频小说| 久操九九九九| A片A5445444| 久草线上视频免费看| 97香蕉碰碰人妻国产欧美| 久久久精精精| 亚洲欧美在线综合| 天天爽夜夜操| 啪啪AV导航| 天美麻豆一区二区三区| 中文字幕丝袜人妻| 国产精品久久久久av| 欧亚无码视频| 超碰超碰超碰超碰的大鸡吧操黑丝袜| 中日无幕一二三四区| 综合欧美日本三级| 国产精品探花色| 欧美九九九| 亚州成人A√| 久久极品伊人| 桃花色涩综合影院| 国产亚洲日韩欧| 亚洲熟女人妻中文字幕一区二区| 欧美91网站| 欧洲射精91| 91N欧美| 大香蕉520| 亚欧高清v| 亚洲 欧美 偷拍 唯美| 色欲久久99国产精品久久久久久| 91少妇通奸网站| 好舒服视频| 亚洲免费97免费| 四虎影视在线| 日日夜夜国产综合| 91美女视频在线| 亚州综合电影| ai欧美亚洲小说| 欧美A√综合网 | 免费网站观看www在线观| 色色综合网站| 欧日韩不卡视.频| 欧美天天插| 欧美日日夜夜| 色www精品视频在线观看| 性色av一区二区| 中亚黄色三级大片| 美女91网址| 夜夜嗨老熟女AV一区二区三区| 综合天天。| 欧美97爱| 国产Av超碰| 在线播放免费av福利片| 国内毛片欧美香蕉精品| 丁香六月激情| 一二三区在线| 天天夜夜久久| 天堂av最新电影网| 国产操逼网站亚洲一级黄色| 99热99在线播放激情| 久久九九综合| 99xav| 国产青青综合伊人| 欧美日韩中文字幕不卡| 乱伦一二三区| 青青草中文-久久青草精品一区二区三 | 精品国产乱码久久久久久口爆网站| 五月丁香大香蕉| 97超碰久久色| 亚洲情色综合| 亚洲av综合色| 大香蕉伊人网WWWn0n| 色偷偷综合91久久噜噜| 中文字幕人妻资源在线| 国产 三级自拍| 国产精品国产自产拍高清AV| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 九九久久一区二区伦理| 九九九综合精品| 亚洲另类色综合网站| 无码 黑人一区二区三区| 中文自拍欧美影视| 另类av综合久久| 被操高清无码视频| 久久欧美1卡2卡3| 熟女熟妇一区二区三四区| 欧美操人视频| 久久精品一区| 精品国产乱码| 久久做97| 1人人看人人摸人人操| 9久热| 0755午夜福利视频| 久久精品国产亚洲AV无码电影| 91精品国久久久久久无码| 岛国激情视频在线观看| 在线视频五十市| 岛国免费黄色网址| 伊人96在线| 9久久精品| 日韩大香蕉| 国产肏屁眼视频| 蜜乳AV一区| 内射卯月麻衣| 操操啪| 2023天天操夜夜操| 超碰碰97| 色官网在线| 啪啪综合网| 久草精品一区 | 日韩黄片视频试看| 欧美午夜色妇色鬼| 日本五十路熟女一区二区| 亚洲天堂久久| 久久久久久久久久久999| 欧美日韩国内不卡| 麻豆精品.欧美精品.日韩精品.| 中文伊人大香蕉视频| 国产91乱伦| 精品国产一区探花在线观看| 97视频在线视频| 欧美亚洲性爱一区二区| 91精品伊人久久久大香线蕉91| 五月天伊人网| 校园春色家庭伦理欧美激情| 综合五月天| 99精品视频在线观看免费| 超碰碰97资源站| 日韩 女同 综合| 欧美精品91| 操我啊啊啊啊啊| 久99热| 日本视频一区二区三区| 欧在线一二区| 成人草草视频| 亚洲久久天堂| 精品女同一区| 久久9免费视频| 国产情色在线| 91国内外在线| 亚州国产成人精品女人久久| 另类av天堂| yazhousetuoumei| 熟妇熟女视频一区二区三区| 99碰碰| 婷婷五月成人| 亚洲欧美日韩综合在线尤物 | 九九九九久久久| 色综合色综合网| 日韩女模中文造逼| 中文字幕一区二区三区视频播放| 欧美成人一区二区三区在线播放| 欧美,日韩综合久久| 国产自产一区视频在线| 亚欧Av| 可以免费观看的av| 免费视频无码| 亚洲另类色图片| 色妇91| 97se亚洲综合自| 亚洲无码一区成人免费午夜| 久操免费观看| 精品免费一区| 午夜一级免费毛片| 日韩欧美经典在线观看| 啊啊啊啊嗯嗯嗯用力好爽 | 蜜臀久久99精品久久久久久-DVD原版全| 一区二区无码视频| 91性色| 伊人网综合在线视频| 97人人射| 欧美日韩免费专区在线| 亚州国产成人精品女人久久 | 91男女啊啊啊| 亚洲精品白丝| 亚洲色图91| 日本视频在线观看污污污| 人人摸人人干| 亚洲熟女一区| 超碰在线人妻中文字幕| 九九性爱网| 亚洲高清少妇| 亚洲成人黄色在线观看| 五月婷婷综合在线| 亚洲综合69| 欧美视频一| 婷婷久久综合久| 97久久国产精品| 成人精品在线免费视频| 在线播放中文字幕| 1204金沙人妻懂旧版免费| 久久这里只有精品9| 青草草免费网站av| 91 国产丝袜在线放观看 | 丝袜足交视频| 亚洲无码久久久久久久| 麻豆国产第一| 看大黄色大片原件| 国产精品午夜成人福利| 日本精品五区| 青青草视频久久久久| 亚洲无 码A片在线观看麻豆| 天美麻豆精品视频99| 欧美少妇人妻| 久久本道| 国产v片在线免费观看| 天天天肏屄欧美| 香蕉欧美| 欧美性暴力猛交XXXX| 超清中文乱码字幕| 性色一线| 免费1级a做爰片观看| 密臀视频一区二区三区| 青娱乐国产精品| 日本三级精品| 啪啪91| 国产色精品午夜大片| 伊人网一本| 丁香五月婷婷啪啪| 亚洲学生妹高清av| 国产熟女精品区| 精品久久久亚洲AV成人网站| 玖玖综合网| 美女大乳久久久久久久女人18| 脫衣舞一区二区三区| 久久久性爱| 麻豆一区二区三区精品| 国产一区二区视频在线播放| 狠狠爱大香蕉| 色拍偷亚洲| 久久理论字幕视频| 亚洲日韩精品在线播放| AV麻豆免费一区| 蜜桃精品视频一区二区三区| 欧美另类色图片| 国产精品久久久久无码A√| 91狠狠狠| 性色高清在线| 日韩久久激情精品| 综合色一区三区二区| 亚洲欧美在线综合| 国产二区三区粉嫩在线| 日韩紧密久久| 岛国精品视频在线观看| 国产三区免费在线观看| 无码区蜜乳| 韩国免费播放一级毛片| 久热这里只有精品9| 呦女网站| 少妇高潮喷水无套久久久久久| 野狼激情网| 激情五月激情综合网| 亚洲日韩成人性爱视频| 亚洲 日本 国产 综合| 又大又大又大又粗爽高潮观看 | 成人一道本免费视频| 91综合在线| 91丝袜在线观看| 思思热国产高清| 国产无码成人无码| 91黑人狂躁丰满熟妇| av影片在线观看不卡| 淫荡网址| 亚洲精品国产熟女| 日本免费一级AAA大片器| 狠狠操官网| 午夜理论片在线观看免费| 囯产操逼片| 男人的天堂2010| 九九热精品在线| 75大香蕉| 中文子幕一二三| 欧美第五页| 999综合网| 国产高清在线观看欧美| 国产激情在线观看| 9/A片| 国产人妻精品一区二区三区秋霞 | 久久精品国产亚洲AV先锋| 日本加勒比无码专区| JIZZJIZZ亚洲女人被躁| 欧美日韩一区二区三区四区蜜桃| 91色久| 97伪v| 91成人无码| 3P乱轮视频| 亚洲色欲一区二区三区| 国产99999久久精品| 免费试看60秒| 黄色高清无码无码破解免费暗网| 欧美天天插| 少妇精品久久久八区九区| 日本性感人妻91| 五月丁香久久| 国产绿奴视频在线观看| 亚洲色图大香| www.成人无码| 亚洲av影音先锋| 自拍盗摄一区| 成年无码动漫av片无尽在线| 91动漫操逼视频| 使劲用力艹少妇视频一区二区| 黄页| 69超碰综合| 亚洲影视第一页| 粉嫩av久久一区二区三区| 东北女人被操| 三级日韩一区二区三区| 亚州操操穴网| 激情小说在线视频| 色噜噜国产在线| 欧美高清18A片| 综精品久久久aaaa| 搡老熟女免费视频| 偷拍欧美激情| 美日韩男女操屄视频| 麻豆精品A片免费观看| a片偷拍视频| 九区国产| 日日碰狠狠添天天爽超| 超碰伊人在线| 丁香五月激情综合国产| 在线观看啊啊啊啊啊| 婷婷99狠狠| 试看60秒 爽| 97大色网| 国产精品无套内谢| 任我爽在线视频免费观看| www激情| 成人免费性爱视视| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 大香蕉乱级| 9久综合网| 亚洲精品国产拍免费91在线| 91爰爱欧美| 欧美日韩精品久久久久久久久东北老熟妇| 超碰日本97美女人妻人人玩人人爱| 逼逼逼逼操操操操操操操操操午夜剧场 | 欧美丝袜91| 高清无码一区二区三区| 欧美AB在线观看| 人人做,人人操,人人摸| 97人妻碰碰中文无码久热丝袜| 免费99精品国产自在在线| 无码人妻精品一区二区中文| 欧洲Au麻豆| 无码外流操逼视频| 麻豆乱码久久精| 日韩欧美福利视频看看| 丝袜视频一区二区在线播放国产中文| 蜜臀久久99精品久久久久| 国产成人资源| 亚洲欧洲综合av在线| 色老牛| 久热伊人| 久久国产成人精品国产成人亚洲| 69超碰综合| 国产成人精品必看| www被窝色com| 色婷婷影视| 老子午夜伦不卡影院| 久久久久亚洲精品| 国产呦精品一区二区三区下载| 国产熟女精品一区二区| 女人的天堂大香蕉网| 强奸a片网| 亚洲密乳AV| 精品人妻少妇| 97视频900| 久久久噜噜噜久久久| 婷婷91| 午夜.DJ高清在线观看免费7| 啊啊啊啊啊啊啊啊啊在线观看| 久久婷婷五月天| 乱伦1色页| 手机午夜电影神马久久| 色欧洲| 后入精品| 都市激情人妻一区二区青青操视频 | 国产AV人人 夜夜人人澡| 中文字幕日本久久| 在线播放一级无码视频| 超碰成人人人爽人人爽| 青青操视频在线| 北条麻妃性愛视频| 国产肏屁眼视频| 亚洲色9|