久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

Hadoop+MapReduce+HBase離線日志分析集群搭建實戰(zhàn)

Hadoop+MapReduce+HBase離線日志分析集群搭建實戰(zhàn) 最近有個項目要做離線日志分析和實時查詢數(shù)據(jù)量不大但增長很快我們最后選擇了CentOS 8.1 Hadoop MapReduce HBase這套組合。這套方案最直接的優(yōu)勢在于Hadoop負責(zé)海量文件的分布式存儲MapReduce處理批量計算HBase承接最終結(jié)果的高效查詢各司其職又天然配套。這篇文章就復(fù)現(xiàn)一下當時從零搭建環(huán)境、跑通全流程的完整過程適合剛接觸大數(shù)據(jù)生態(tài)、或者準備在本地/測試環(huán)境構(gòu)建這套技術(shù)棧的讀者參考。為了避免紙上談兵我會先講清楚技術(shù)選型的判斷邏輯再逐步拆解三節(jié)點集群的環(huán)境初始化、Hadoop核心配置、HBase與Hadoop的集成要點最后用一個可復(fù)現(xiàn)的離線訂單統(tǒng)計Demo串聯(lián)MapReduce讀寫HBase的代碼鏈路。整個過程盡量落在具體命令和參數(shù)上也會把踩過的坑原樣交代出來。1. 為什么選CentOS 8.1HadoopHBase從業(yè)務(wù)需求反推技術(shù)棧1.1 業(yè)務(wù)場景倒逼出的存儲與計算架構(gòu)先說背景。我們接到的任務(wù)是處理某智能硬件每日產(chǎn)生的設(shè)備上報日志單日數(shù)據(jù)量在2000萬條左右原始文件以JSON格式落盤總量約15GB。需求有兩層一是定期把這些日志做清洗、聚合算出一系列統(tǒng)計指標二是運營后臺要能按設(shè)備ID或時間范圍快速查出明細。針對這類場景我首先排除掉傳統(tǒng)關(guān)系型數(shù)據(jù)庫。按單日2000萬條來算一個月就是6億行MySQL即使分庫分表也扛不住這種寫入壓力更別說后臺還要求毫秒級的在線查詢。于是存儲層選擇了HBase理由很實際它天生支持稀疏寬表rowkey設(shè)計得當就能讓查詢直接命中某個Region不需要像Hive那樣啟動一個大任務(wù)去掃全表同時它可以建立在HDFS之上直接復(fù)用Hadoop的副本機制不用額外維護一套持久化鏈路。計算層選MapReduce是因為這個項目對實時性沒有過高要求統(tǒng)計任務(wù)在每天凌晨跑一次T1出結(jié)果完全能接受。MapReduce雖被人詬病“笨重”但在這類離線批處理上是極其穩(wěn)定的提交一個作業(yè)YARN負責(zé)分配資源任務(wù)失敗自動重試不需要額外部署Spark之類的計算引擎??紤]到團隊后續(xù)還打算引入Hive做SQL化分析Hadoop這套底層更是繞不開的依賴。1.2 版本選擇與兼容性這道坎版本組合必須提前定死否則后面全是淚。我經(jīng)過踩坑后固定下來的版本是CentOS 8.1 JDK 1.88u212 Hadoop 3.2.4 HBase 2.4.17 ZooKeeper 3.6.3。有人可能問CentOS 8.1已經(jīng)停止維護了為什么還要選它。這里有個現(xiàn)實原因項目現(xiàn)場那批服務(wù)器出廠預(yù)裝的就是8.1且業(yè)務(wù)方短期沒有遷移計劃。如果你是從零規(guī)劃用CentOS 7.9或Rocky Linux完全沒問題本文的部署命令除了yum源細節(jié)外基本通用。兼容性上特別注意兩點Hadoop 3.2.x系列官方支持JDK 8必須避開JDK 11因為Hadoop 3.2雖然能在JDK 11上啟動但很多第三方插件會發(fā)現(xiàn)ClassNotFound或SecurityManager異常HBase 2.4.x官方兼容矩陣里明確列出的Hadoop版本是3.2.x如果你硬要配Hadoop 3.3.x很可能在HBase Master啟動時碰到protobuf版本沖突。組件版本備注操作系統(tǒng)CentOS 8.1內(nèi)核4.18若生產(chǎn)環(huán)境建議7.9或更新替代版JDK1.8.0_212不要用JDK 11跑Hadoop 3.2Hadoop3.2.4含HDFS和YARN計算層用MRHBase2.4.17與Hadoop 3.2.x官方兼容ZooKeeper3.6.3用于HBase協(xié)調(diào)生產(chǎn)必須獨立部署部署方式三節(jié)點1臺Master 2臺Worker2. 三節(jié)點集群環(huán)境初始化那些不寫進官方文檔的細節(jié)2.1 主機規(guī)劃與SSH免密登錄配置我這邊準備了3臺虛擬機每臺分配4核CPU、8GB內(nèi)存、100GB磁盤。主機名分別規(guī)劃為node01、node02、node03其中node01跑NameNode、ResourceManager、HMasternode02和node03作為DataNode和RegionServer。ZooKeeper三臺都放一份構(gòu)成3節(jié)點ZooKeeper集群。開始部署前先把每臺機器的hostname和/etc/hosts整明白這個環(huán)節(jié)出問題會導(dǎo)致后面HBase RegionServer注冊不上我第7節(jié)會專門講。hostnamectl set-hostname node01 cat /etc/hosts EOF 192.168.10.11 node01 192.168.10.12 node02 192.168.10.13 node03 EOFSSH免密登錄是啟動Hadoop腳本的硬前提否則每次啟動都得輸密碼。我在node01上執(zhí)行ssh-keygen -t rsa -P -f ~/.ssh/id_rsa ssh-copy-id node01 ssh-copy-id node02 ssh-copy-id node03注意Hadoop部分命令是通過rpc遠程調(diào)用執(zhí)行的所以node01必須能免密登錄到所有節(jié)點。HBase啟動時也會經(jīng)由Master去SSH到各臺RegionServer拉起進程這個權(quán)限同樣需要提前打通。2.2 JDK安裝與系統(tǒng)參數(shù)調(diào)整Hadoop 3.x對系統(tǒng)的要求比舊版嚴格文件句柄打開數(shù)和進程數(shù)必須改否則運行一段時間后DataNode會報“Too many open files”。我用root用戶完成以下配置yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel cat /etc/security/limits.conf EOF * soft nofile 65536 * hard nofile 131072 * soft nproc 65536 * hard nproc 131072 EOF同時三臺機器都執(zhí)行關(guān)閉防火墻和SELinux。很多初學(xué)者跳過這步然后發(fā)現(xiàn)9000端口、16010端口對外不通排查半天方向完全錯了systemctl stop firewalld systemctl disable firewalld sed -i s/^SELINUX.*/SELINUXdisabled/ /etc/selinux/config setenforce 0時間同步是另一個大坑。HBase的RegionServer非常依賴集群時鐘一致如果節(jié)點間時間偏差超過30秒HBase Master會把RegionServer直接踢下線。我這里用最簡單的方式配置NTP指向一臺內(nèi)網(wǎng)時間源yum install -y chrony sed -i 3,6s/^pool/server 192.168.10.1 iburst/ /etc/chrony.conf sed -i s/^pool.*/# pool./ /etc/chrony.conf systemctl restart chronyd chronyc sources -v2.3 軟件包目錄規(guī)劃與環(huán)境變量統(tǒng)一Hadoop和HBase都解壓在/opt目錄下通過軟鏈指向具體版本這樣后續(xù)升級版本不用改一大堆配置。我按自己的習(xí)慣創(chuàng)建了如下布局/opt/hadoop-3.2.4 - /opt/hadoop /opt/hbase-2.4.17 - /opt/hbase /opt/zookeeper-3.6.3 - /opt/zookeeper環(huán)境變量統(tǒng)一寫入/etc/profile.d/bigdata.sh讓所有節(jié)點加載同一份內(nèi)容export JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk export HADOOP_HOME/opt/hadoop export HBASE_HOME/opt/hbase export ZOOKEEPER_HOME/opt/zookeeper export PATH$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$ZOOKEEPER_HOME/bin這里有個建議不要用root用戶運行大數(shù)據(jù)組件因為Hadoop在安全檢查上對root有額外限制。我創(chuàng)建了一個hadoop用戶把/opt/hadoop、/opt/hbase、/opt/zookeeper三目錄的屬主都改到該用戶下后續(xù)所有啟停操作都切到這個用戶執(zhí)行。3. Hadoop核心配置逐項拆解不只是照抄官方模板3.1 core-site.xml與hdfs-site.xml的關(guān)鍵參數(shù)Hadoop部署最忌諱拿一個模板到處拷貝卻不理解每個參數(shù)的含義。我這份配置是在排掉三個不同問題后最終定稿的。core-site.xml里最關(guān)鍵的是fs.defaultFS它決定了整個集群的“根文件系統(tǒng)”指向哪里。我設(shè)置為hdfs://node01:9000后面的9000是NameNode RPC端口。hadoop.tmp.dir則指定了HDFS元數(shù)據(jù)等臨時文件的存放路徑獨立掛載的磁盤比系統(tǒng)盤更穩(wěn)妥configuration property namefs.defaultFS/name valuehdfs://node01:9000/value /property property namehadoop.tmp.dir/name value/data/hadoop/tmp/value /property /configurationhdfs-site.xml這里重點配置了三項副本數(shù)、NameNode元數(shù)據(jù)目錄、DataNode數(shù)據(jù)目錄。由于節(jié)點數(shù)只有3我設(shè)置dfs.replication為2既保證容錯又節(jié)省一半存儲若數(shù)據(jù)重要程度高保持默認的3也不是問題configuration property namedfs.replication/name value2/value /property property namedfs.namenode.name.dir/name valuefile:///data/hadoop/namenode/value /property property namedfs.datanode.data.dir/name valuefile:///data/hadoop/datanode/value /property property namedfs.namenode.handler.count/name value100/value /property /configurationdfs.namenode.handler.count這項容易被忽略并發(fā)請求一多NameNode會成為瓶頸。經(jīng)驗值上4核機器配100足夠線程過多反而加大上下文切換開銷。3.2 YARN資源削峰小內(nèi)存機器的保命配置Hadoop 3.2.4的默認配置是按大內(nèi)存機器設(shè)計的ResourceManager默認會為每個容器分配很大的內(nèi)存如果你直接在小內(nèi)存機器上提交任務(wù)會看到作業(yè)無限期pending。我在這臺8GB內(nèi)存的節(jié)點上做了如下收斂configuration property nameyarn.nodemanager.resource.memory-mb/name value6144/value /property property nameyarn.nodemanager.resource.cpu-vcores/name value4/value /property property nameyarn.scheduler.minimum-allocation-mb/name value1024/value /property property nameyarn.scheduler.maximum-allocation-mb/name value3072/value /property /configuration這里計算邏輯是系統(tǒng)自身占用約1.5GBZooKeeper和HBase還需要各自預(yù)留內(nèi)存真正能分給YARN的只有6GB左右。maximum-allocation-mb設(shè)得比剛提交的MR任務(wù)所需更大同時minimum設(shè)為1GB避免小任務(wù)也要湊出一個大容器。3.3 格式化NameNode與安全模式處置首次啟動HDFS前必須格式化NameNode這一步會在namenode目錄生成fsimage。格式化命令要注意只需在node01執(zhí)行一次執(zhí)行前確認core-site.xml和hdfs-site.xml已經(jīng)分發(fā)到所有節(jié)點hdfs namenode -format格式化完成后在node01上執(zhí)行start-dfs.sh在node02和node03執(zhí)行start-yarn.sh。為什么分開因為我們把ResourceManager放在了node01但NodeManager需要在每個節(jié)點拉起。配置文件里通過yarn-site.xml的yarn.resourcemanager.hostname指定node01。啟動后第一件事不是急著看日志而是確認HDFS狀態(tài)退出安全模式。安全模式是HDFS啟動后自動進入的保護期此間不允許寫數(shù)據(jù)只能等待各DataNode上報塊信息hdfs dfsadmin -safemode get hdfs dfsadmin -safemode leave hdfs dfsadmin -report如果report里顯示的Live datanode數(shù)量小于3多半是DataNode沒起來或者被防火墻擋了。一個比較隱蔽的原因是DataNode進程起來后遇到磁盤空間不足主動退出這時候datanode日志會顯示“Data volume failed”字樣我第7節(jié)會專門復(fù)盤。4. HBase集成Hadoop的版本兼容與參數(shù)調(diào)優(yōu)4.1 為什么非要獨立ZooKeeperHBase的HMasia正常情況下需要ZooKeeper來協(xié)調(diào)RegionServer與Master之間的心跳以及保存meta表的位置信息。HBase內(nèi)置ZooKeeper在開發(fā)環(huán)境圖省事可以直接啟用但生產(chǎn)環(huán)境三節(jié)點的集群我選擇獨立部署ZooKeeper否則一旦HBase一停ZooKeeper也跟著沒了后續(xù)想用HBASE自帶工具排查問題非常別扭。ZooKeeper的配置文件zoo.cfg里只改三個地方dataDir、clientPort、server列表。dataDir建議放在獨立磁盤server.1、server.2、server.3必須與三臺機器對應(yīng)每臺機器都要創(chuàng)建myid文件并寫入對應(yīng)數(shù)字。dataDir/data/zookeeper server.1node01:2888:3888 server.2node02:2888:3888 server.3node03:2888:3888ZooKeeper啟動順序也有講究三臺各自執(zhí)行zkServer.sh start后用zkServer.sh status確認其中一臺leader、兩臺follower任何一個節(jié)點狀態(tài)為standalone都是沒搭成功。4.2 hbase-site.xml里容易被誤解的配置項HBase集成Hadoop的核心配置有四個維度rootdir、zookeeper地址、RegionServer相關(guān)調(diào)優(yōu)、以及容錯參數(shù)。我貼一版實際穩(wěn)定運行很久的配置configuration property namehbase.rootdir/name valuehdfs://node01:9000/hbase/value /property property namehbase.cluster.distributed/name valuetrue/value /property property namehbase.zookeeper.quorum/name valuenode01,node02,node03/value /property property namehbase.zookeeper.property.clientPort/name value2181/value /property property namehbase.regionserver.handler.count/name value30/value /property property namehbase.hregion.memstore.flush.size/name value134217728/value /property property namehbase.client.write.buffer/name value8388608/value /property /configurationhbase.rootdir必須帶上完整的HDFS路徑不要只寫到node01:9000這一層否則HBase會試圖把表數(shù)據(jù)寫到根路徑下與HDFS的目錄結(jié)構(gòu)混淆。hbase.cluster.distributed必須設(shè)為true否則HBase認為你是單機模式根本不會往HDFS寫數(shù)據(jù)。hbase.regionserver.handler.count可以直接理解為RegionServer同時能處理的RPC請求數(shù)這個值設(shè)得太大沒什么意義因為CPU核數(shù)有限并發(fā)請求再多也是排隊設(shè)得太小MR任務(wù)批量寫入時會頻繁報超時。30是我在4核環(huán)境下的經(jīng)驗值。4.3 RegionServer的目錄分區(qū)與內(nèi)存比例HBase要求每臺RegionServer在本地保存寫前日志W(wǎng)AL這個路徑默認在hbase.tmp.dir下通常會被系統(tǒng)盤限制住。我在每臺機器上單獨掛載了/data/hbase并在hbase-env.sh里設(shè)置HBASE_LOG_DIR和堆大小。內(nèi)存分配是HBase最容易崩潰的根源。默認情況下HBase的RegionServer堆大小是1GB但面對較大的寫緩存或讀緩存時1GB完全不夠GC頻繁觸發(fā)stop-the-world最終被Master判定心跳超時而移除。我把HBASE_HEAPSIZE調(diào)到4GB同時確保YARN的NodeManager不會把內(nèi)存全部搶走畢竟它們在同一臺物理機上。這里有個細節(jié)如果你的MapReduce作業(yè)會直接讀寫HBase就必須在MR JVM和HBase RegionServer之間留出足夠空間。我當時設(shè)置時每臺機器給YARN 6GB、給HBase 4GB再加系統(tǒng)1.5GB剛好超出8GB一點于是又把HBase堆降到3.5GB留出余量這才穩(wěn)定下來。5. MapReduce直連HBase讀寫兩端的代碼實現(xiàn)5.1 為什么要讓MR直接讀寫HBase離線統(tǒng)計任務(wù)的典型流程是先由MR讀取HDFS上的日志文件做清洗然后把聚合結(jié)果寫入HBase供查詢端讀取。這里有兩種方案一種是把MR結(jié)果落地成HDFS文件再由HBase做bulk load另一種是MR直接通過TableOutputFormat寫入HBase。我選擇后者因為項目表數(shù)據(jù)量還達不到幾十TB需要bulk load的規(guī)模直接寫更省事代碼也更直觀。但前提是你得搞清楚TableOutputFormat和TableInputFormat的用法以及它們對MR job設(shè)置的特殊要求。5.2 寫入端用TableOutputFormat把計算結(jié)果落到HBase寫入端的核心思路是Mapper的輸出key為ImmutableBytesWritable或NullWritablevalue為Put對象。TableOutputFormat的OutputCommitter會把這些Put按所屬Region分發(fā)到正確的RegionServer整個過程不需要reduce參與。以下是我項目里把訂單統(tǒng)計結(jié)果寫入HBase訂單表的Mapper代碼核心部分public static class WriteMapper extends MapperLongWritable, Text, NullWritable, Put { private byte[] family Bytes.toBytes(detail); Override protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { String[] fields value.toString().split(,); String orderId ord_ fields[0]; Put put new Put(Bytes.toBytes(saltKey(orderId) orderId)); put.addColumn(family, Bytes.toBytes(device_id), Bytes.toBytes(fields[1])); put.addColumn(family, Bytes.toBytes(status), Bytes.toBytes(fields[2])); put.addColumn(family, Bytes.toBytes(timestamp), Bytes.toBytes(Long.parseLong(fields[3]))); context.write(NullWritable.get(), put); } private String saltKey(String orderId) { int hash Math.abs(orderId.hashCode() % 8); return String.valueOf(hash); } }saltKey函數(shù)是rowkey預(yù)分區(qū)的一種簡單實現(xiàn)。HBase按rowkey的字典序把數(shù)據(jù)分布到各個Region如果直接用自增ID或時間戳當rowkey寫入熱點會集中在最后一個Region。我按訂單ID哈希取0到7的前綴加上前綴后數(shù)據(jù)能均勻落到默認8個預(yù)分區(qū)里。作業(yè)配置上關(guān)鍵點是必須指定輸出表名和輸出格式Job job Job.getInstance(conf, WriteOrderToHBase); job.setJarByClass(WriteOrderToHBase.class); job.setMapperClass(WriteMapper.class); job.setNumReduceTasks(0); job.setMapOutputKeyClass(NullWritable.class); job.setMapOutputValueClass(Put.class); job.setOutputFormatClass(TableOutputFormat.class); job.getConfiguration().set(TableOutputFormat.OUTPUT_TABLE, order_info);注意TableOutputFormat會主動讀取TableName參數(shù)如果你的代碼里沒有set輸出表運行時大概率報“Cannot resolve output table”之類異常。另一個容易踩的坑是TableOutputFormat要求作業(yè)輸出Path不能重復(fù)文件所以每次跑任務(wù)前最好清理輸出目錄或使用動態(tài)路徑。5.3 讀取端用TableInputFormatScan做批量分析讀取端是另一個鏡像問題把一張HBase表作為MR的輸入源。關(guān)鍵API是TableMapReduceUtil.initTableMapperJob它會基于Scan自動創(chuàng)建InputFormat并切分InputSplitpublic static class ReadMapper extends TableMapperText, IntWritable { private Text outKey new Text(); Override protected void map(ImmutableBytesWritable rowKey, Result result, Context context) throws IOException, InterruptedException { String status Bytes.toString( result.getValue(Bytes.toBytes(detail), Bytes.toBytes(status))); outKey.set(status); context.write(outKey, new IntWritable(1)); } }作業(yè)初始化時需要構(gòu)建Scan對象并傳入需要讀取的列族Scan默認全表掃描所有列族全部版本導(dǎo)致網(wǎng)絡(luò)IO暴增。推薦的寫法是Scan scan new Scan(); scan.addFamily(Bytes.toBytes(detail)); scan.setCaching(500); scan.setCacheBlock(false); TableMapReduceUtil.initTableMapperJob( order_info, scan, ReadMapper.class, Text.class, IntWritable.class, job);scan.setCaching默認值是100設(shè)為500能減少客戶端與RegionServer的RPC次數(shù)代價是占用更多客戶端堆內(nèi)存。scan.setCacheBlock(false)是關(guān)鍵性能開關(guān)——它告訴RegionServer在掃描過程中不要將數(shù)據(jù)塊駐留在堆緩存中因為大批量Scan很快就會把BlockCache擠滿導(dǎo)致熱點隨機讀性能大幅下降。對于離線MR任務(wù)這幾乎是必須調(diào)的一項。6. 離線訂單統(tǒng)計Demo從建表到MR任務(wù)結(jié)果全流程驗證6.1 表設(shè)計rowkey鹽值前綴與列族規(guī)劃整個Demo圍繞一個虛構(gòu)的“設(shè)備訂單上報系統(tǒng)”展開。每天有設(shè)備上報訂單狀態(tài)我們需要在第二天凌晨統(tǒng)計每臺設(shè)備當天的訂單總數(shù)以及各狀態(tài)占比。HBase里建兩張表order_info存訂單明細user_order_count存每個人/設(shè)備的統(tǒng)計結(jié)果。通過HBase Shell建表時我特意加了預(yù)分區(qū)和壓縮hbase shell EOF create order_info, {NAME detail, COMPRESSION SNAPPY, TTL 604800}, {SPLITS [0,1,2,3,4,5,6,7]} create user_order_count, {NAME cf}, {SPLITS [a,m,z]} EOF預(yù)分區(qū)數(shù)量不必太多8個Region對于一個測試集群足夠但已經(jīng)能演示“寫入分散到多個RegionServer”的效果。TTL設(shè)置為7天讓過期明細自動清理省去后續(xù)手動刪除數(shù)據(jù)的麻煩。SNAPPY壓縮是我強烈推薦在生產(chǎn)表開啟的選項它在CPU消耗和壓縮比之間平衡最好。需要說明的是如果你啟用SNAPPY所有RegionServer節(jié)點必須安裝libsnappy庫否則HBase寫入時會報壓縮編解碼器無法加載。6.2 造數(shù)腳本與數(shù)據(jù)導(dǎo)入鏈路的坑為了驗證整條鏈路我寫了一個簡單的Python腳本生成100萬條模擬數(shù)據(jù)包括device_id、order_status、timestamp三個關(guān)鍵字段輸出成CSV格式python3 /opt/scripts/gen_data.py --rows 1000000 --output /data/input/orders.csv然后把CSV上傳到HDFS的/input目錄hdfs dfs -mkdir -p /input hdfs dfs -put /data/input/orders.csv /input/這時有個容易犯的錯誤HDFS上的數(shù)據(jù)塊默認副本數(shù)為2我們通過hdfs dfs -put上傳的文件實際會按當前集群副本數(shù)存儲。如果需要保存原始日志長期不刪可以把這個文件目錄單獨設(shè)置更高的副本數(shù)。Demo階段無所謂但生產(chǎn)環(huán)境要留意。接著執(zhí)行第5節(jié)的寫入端MR作業(yè)將訂單數(shù)據(jù)批量寫入order_info表。提交命令走yarnhadoop jar /opt/jars/WriteOrderToHBase-1.0.jar com.example.WriteOrderToHBase6.3 統(tǒng)計任務(wù)運行結(jié)果與驗證寫入完成后執(zhí)行讀取端統(tǒng)計作業(yè)匯總每個狀態(tài)的數(shù)量再通過另一個Mapper按device_id聚合出各自的訂單數(shù)hadoop jar /opt/jars/CountOrderFromHBase-1.0.jar com.example.CountOrderFromHBase作業(yè)跑完我直接在HBase Shell里查詢統(tǒng)計表hbase shell EOF scan user_order_count, {LIMIT 5} EOF返回結(jié)果里每條rowkey對應(yīng)一個device_id列cf:order_count就是統(tǒng)計數(shù)。拿這些數(shù)和原始CSV做對照用wc -l統(tǒng)計各狀態(tài)總量結(jié)果一致鏈路驗證通過。整個流程跑下來大約耗時12分鐘其中寫入作業(yè)5分鐘、統(tǒng)計作業(yè)6分鐘、其余為YARN調(diào)度和HBase flush時間。相比單機用awk處理100萬行數(shù)據(jù)這個速度沒有明顯優(yōu)勢但它的意義在于當數(shù)據(jù)量從100萬漲到10億時這套架構(gòu)的擴展性才真正體現(xiàn)出來。6.4 數(shù)據(jù)正確性校驗MR結(jié)果與預(yù)期對不上怎么辦第一次跑統(tǒng)計作業(yè)時我注意到統(tǒng)計結(jié)果比預(yù)想的少了一部分數(shù)據(jù)。檢查后發(fā)現(xiàn)是Scan的startRow和stopRow沒有設(shè)置好導(dǎo)致漏掉了開頭或結(jié)尾的Region數(shù)據(jù)。排查方法是拿同一批數(shù)據(jù)先后跑兩個不同Scan范圍的作業(yè)對比輸出條數(shù)與HBase表行數(shù)是否一致hbase org.apache.hadoop.hbase.mapreduce.RowCounter order_info detail:statusRowCounter是HBase自帶的行數(shù)統(tǒng)計工具它可以繞過MR直接讀取Region元數(shù)據(jù)做精確計數(shù)。用它作為基準就能判斷自己的Scan寫漏了還是寫重了。另一個導(dǎo)致結(jié)果不一致的原因是InputSplit切分時正好跨越Region邊界某個分片包含了一個完整Region的掃描結(jié)果而另一個分片又從該Region讀了一次重復(fù)數(shù)據(jù)。遇到這種問題把作業(yè)的mapred.reduce.tasks暫時設(shè)為0觀察Map輸出條數(shù)與RowCounter結(jié)果是否吻合。7. 排障實錄四類高危問題與排查鏈路7.1 NameNode進入安全模式且長時間不退現(xiàn)象是HDFS啟動后執(zhí)行hdfs dfs -put一直報錯提示“Name node is in safe mode”。剛開始我以為等多一會兒就能自動退出但等了十分鐘依舊卡死。排查鏈路先hdfs dfsadmin -safemode get確認狀態(tài)再hdfs dfsadmin -report看DataNode上報情況。結(jié)果發(fā)現(xiàn)有兩臺DataNode顯示為Dead原因是它們的/data/hadoop/datanode磁盤分區(qū)滿了。DataNode上報塊信息時發(fā)現(xiàn)剩余空間不足閾值就主動拒絕注冊NameNode等不到足夠數(shù)量的活動節(jié)點于是遲遲不退出安全模式。解決方式清理磁盤后重啟DataNode再手動執(zhí)行hdfs dfsadmin -safemode leave強制退出。之后的預(yù)防手段是把dfs.datanode.du.reserved設(shè)為一個絕對值比如10GB讓DataNode認為磁盤已滿的空間預(yù)留出來避免磁盤被業(yè)務(wù)數(shù)據(jù)徹底寫滿才觸發(fā)保護。7.2 HBase RegionServer反復(fù)被移除時鐘偏移HBase集群另一個反復(fù)出現(xiàn)的怪象是RegionServer啟動后一兩分鐘就被Master標記為DOWN并踢出集群日志顯示“RegionServer is not online”或“Clock skew too large”。根因在HBase的分布式協(xié)調(diào)機制RegionServer上報心跳時Master會校驗該節(jié)點與自身的時間差一旦超過底層連接容忍范圍就判定異常。我在三臺機器上執(zhí)行date命令發(fā)現(xiàn)node03的系統(tǒng)時間比node01慢了接近40秒。原因是在部署虛擬機時班車時間同步服務(wù)沒有成功啟動。解決方式安裝chrony并強制校準一次systemctl restart chronyd chronyc makestep校準后連續(xù)觀察三天沒有再出現(xiàn)RegionServer掉線。7.3 MapReduce作業(yè)一直Pending不執(zhí)行作業(yè)提交到Y(jié)ARN后狀態(tài)始終停在ACCEPTEDResourceManager頁面顯示容器始終沒有被分配。這個問題的本質(zhì)是資源調(diào)度失效。排查鏈路先看yarn logs --applicationId檢查ApplicationMaster日志發(fā)現(xiàn)一直等待NODE_IDLE資源再看NodeManager配置發(fā)現(xiàn)yarn.nodemanager.resource.memory-mb默認值8192MB大于物理機可用內(nèi)存NodeManager啟動時判定物理資源不足主動把可用資源標記為0所有作業(yè)只能排隊。解決方式按第3.2節(jié)調(diào)的參數(shù)改小nodeManager資源上限并重啟NodeManageryarn nodemanager --daemon stop yarn nodemanager --daemon start這里也暴露了另一個隱藏問題如果你在yarn-site.xml里同時設(shè)置了yarn.scheduler.maximum-allocation-mb大于physical memory調(diào)度器也會直接拒絕分配容器。7.4 MR寫HBase時Put超時與批量重試風(fēng)暴跑寫入作業(yè)時Map端偶爾報“Call to node02/... failed on local exception: java.net.SocketTimeoutException”重試幾次后任務(wù)失敗。排查下來發(fā)現(xiàn)是RegionServer上的handler.count默認為10而MR的Map Task數(shù)有32個寫請求并發(fā)一高RegionServer的RPC線程池被打滿SocketTimeout自然頻繁出現(xiàn)。把hbase.regionserver.handler.count調(diào)到30并把hbase.client.retries.number適當調(diào)低避免無謂的重試風(fēng)暴property namehbase.client.retries.number/name value3/value /property重試次數(shù)默認是10次在批量寫入場景里10次重試會拖慢整個作業(yè)。調(diào)到3次后失敗任務(wù)快速失敗并由MR框架重新調(diào)度整體成功率反而更高。注意這里的取舍在線查詢場景下重試次數(shù)不宜太低否則瞬時網(wǎng)絡(luò)抖動會直接丟請求。7.5 一個容易被忽視的元兇文件句柄耗盡最后說一個讓DataNode和RegionServer同時異常退出的共性問題文件句柄耗盡。我們有一臺機器曾經(jīng)在一周內(nèi)突然出現(xiàn)DataNode退出的告警但日志里沒有任何異常堆棧最后看了dmesg才發(fā)現(xiàn)大量“too many open files”信息。Linux默認單進程文件句柄限制是1024對HDFS這種大量打開小文件的系統(tǒng)來說遠遠不夠。按第2.2節(jié)的limits.conf提高上限后務(wù)必重啟DataNode、RegionServer等守護進程因為limits.conf對已經(jīng)啟動的進程不生效。我還額外在hbase-env.sh里加了一句ulimit -n 65536這確實是個偏門的兜底方式但能確保即使limits.conf被某些初始化腳本覆蓋HBase進程依然有充足句柄額度。最后再分享兩個擴展方向如果這篇文章只幫你把環(huán)境搭起來那任務(wù)只完成了一半。跑通Demo之后我強烈建議在同一個集群上嘗試兩個方向一是集成Hive把HBase通過StorageHandler映射成外部表這樣運營同學(xué)能用SQL查HBase數(shù)據(jù)不需要寫Java代碼二是給HBase加Phoenix或換個思路直接用Spark讀取HBase這些上層引擎可以復(fù)用同一套HDFS存儲不會額外增加運維復(fù)雜度。我在實際項目中因為在建表階段就規(guī)劃好了預(yù)分區(qū)和壓縮后續(xù)接入Hive和Spark都沒有返工。愿這篇文章能讓你少走點彎路尤其是第7節(jié)那些問題趁早排查總比上線當晚發(fā)現(xiàn)好。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
一本久道在线综合视频| 手机看片日韩人妻| 欧美另类综合久久| 亚洲色图8| 亚欧国产无码精品在线| 精品国产乱码久久久久久免费| 久久国产乱子伦精品免费女人| 91电影色诱| 亚洲小电影免费涩涩成人在线高清 | 天天干天天狼在线视频| 精品日韩人妻视频| 午夜精品视频777| 久久久久久久久久久精| 东京热亚洲一区二区| 亚洲97在线观看| 欧美熟妇乱码在线一区| 美国aaaaa一级黄片| 97视频新免费| 欧美综合自拍成人自拍第二十页| 免费视频在线一区二区不卡| 97视频免费| 天天天乱色综合全| 精品国产精品一区二区| blacked精品一区国产| 人人模人人看| 国内精品99999| 日韩紧密久久| 91网站18在线观看| 国产无套粉嫩白浆在| 蜜臀99精品国产高清在线观看| 国模不卡一本二本三电影| 日韩Va亚洲va欧美Ⅴa久久| 91白嫩| 91亚洲影院综合| 亚洲成人免费在线| 成年女人黄网站| 天天谢天天干| 伊人国产成人av网站| 97网址97| 超碰97网址| 无码91| 五月天激情视频| 国产精品婬乱一级毛片彝族| 久久av成人无码免费| 综合欧美激情网| 干干干天天| 超碰无码加勒比| 超碰地址久久| 99热这里都是精品| 精品无吗m| 国产一区二区精品在线视频| 亚洲自拍另类丝袜综合| 91久久国产综合精品| 女色视频社区| 欧美综合站| 色色激情| 中文字幕精品日韩中文字幕| 国产精品熟女乱伦| 91操碰| 人妻少妇精品一区二区三区| 日本三级日本三级三级人妇四虎| 人人超碰在线观看黄| 欧美另类自拍 | 天天日天天舔东京热| 日本999精品视频| 一级黄碟| 好涩综合| 久草网站免费在线观看| 色情婷婷| 爱干爱射网啊啊啊| 久久99草| 欧美午夜熟妇黑人精品91| 偷偷人人精品女女久久| 欧美黑人熟妇精品91| 日韩欧无码一区二区三区免费不卡| 色色青青久久| 九月丁香综合网| 国模不卡| 国产一级久久久| 国产熟女| 亚洲文学偷乱拍啪啪啪啪| 裸体1区| jiujiujiujingpin| 大香蕉中文网| www.夜夜操| 麻豆国产免费影片| 超碰 av 女人天堂| 国产精品久久泡妞网站| 日本熟女中文字幕一区| 婷婷五月天久久久| 美女网站黄页| 精品中文字幕一区二区l - 百度| 91 丝袜在线| 一起草在线视频| 黄片不用下载在线观看| 亚洲熟女偷拍在线观看| 国产91av在线播放| 太久视频| 久久久久久久78| 欧美亚洲特P| 久久‘黄片视频| 99在线精品观看99| 青青草原伊人网| 日本欧美亚洲高清在线看| 色色丁香| 91综合无码| 草草网站影院白丝内射| 伊人色综合欧美| 日本操逼视频不卡直接放| 色综合五月天| 亚洲黄色| 蜜臀久久久久久999| 成人青青草原伊人| 中文无码一二三区| 日夜伊人网| 啊啊啊操一区| 91综合网| 色五91| 青青青在线高清视频在线一二三四区| 在线视频日韩欧美国产| 天欧美在线| 太久视频| 亚洲97资源| 久久久久久国产精品免费网站| 久偷拍欧美日韩三区| 欧美日韩制服| 91精品人妻电影| 377p欧洲日本亚洲大胆| 综合激情97| 欧州一区二区三区四区| 婷婷五月综合在线| 久热这里只有精品9| 依人大香蕉| 丝袜 中出 制服 人妻 美腿 中文字幕| 成年女人18级毛片毛片免费观看| 国产乱码久久久| 五月丁香久久| 91av熟女人妻| 涩亚洲欧洲| 中文字幕人成乱码熟女香港| 91欧美另类| 精品人体无圣光凹凸| 午夜综合在线| 香蕉久久国产AV一区二区| 亚洲激情久久久伊人综合| 狠狠干,狠狠操| 久久精品—区二区三区内射| 天天摸天天插天天日| 久久成年片色大黄全免费网站| 欧美综合97www| 黄色免费一级在线毛片| 久草久日| 男女91| 搡老女人老91妇女老熟女| 情色日播放AV| 中文字幕av亚洲在线| 男女啊啊啊| 久久久久久性爱视频| 中文字幕奈奈美被公侵犯| 9997se| 久久草草欧美精品| 家庭乱伦性爱av| 少妇人妻在线| 观看免费区二区三区二| 久久香蕉综合一本到3atv| 久久视频,这里只有精品| 久久精品国产免费观看99| 91春色| 亚洲国产丝袜在线观看| 日本免费不卡二区| 精品国产一区二区三区在线播出| 精品国产a∨一区天美传媒| 欧美少妇第一页| 337p大胆噜噜噜噜噜91Av| 夜草网站| 999 久久久| 五月婷婷五月天| 日本东京热加勒比久久| 91肉丝| 欧美视频激情久久久久久| 亚洲无吗在线视频| 日产欧美电影一区二区三区| 亚洲欧美激情小说| 东北女人操比视频| 狠狠搞 亚洲91| 色色丁香| 男人的天堂2019AV| 国产欧美一区激情交| 国产精品一区av在线| 蜜臀久久99精品久久久久久婷婷| 亚洲做性| 99re久久| 中文字幕人妻丝袜乱一区三区| 美性中文综合网| 91红杏| 精精夜夜| 久久不卡一区二区| AV色天香在线| 丝袜AV一二三区| 99热婷婷| 日韩人妻资源在线看| 国产人妻天天干精品| 国产精品一区二区校花| 欧 美 自 拍 偷 拍| 精品国产av一区二区三区四区入口| 欧洲精品二区| 玖玖爱影院| AV女资源| 亚州一区二区| 免费国产视频| 色色色色日本| 人人摸人人添人人操| 久久首页| www狠狠| 五月天综合| 精品妇女一区二区三区| 国产免费大片| 91天天c| 亚洲永久AV无码精品秋霞| 亚洲欧美天堂在线| 国产乱青青草久久| 99re99在线视频| 精品玖九九久| 国产亚洲色婷婷久久99精品91 - 百度| 男人亚洲天堂| 国产日产精品久久快鸭的功能介绍| 亚洲成人在线高清| 啪一啪免费视频| 成人性爱电影一区二区| 欧美日不卡| 色婷婷成人综合| 夜夜操av亚洲一区二区| 91少妇香蕉久久精品| 欧美第二页午夜| 欧综合网| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 婷婷操视频| 国产又黄又粗的视频| 91快色色色色色| 婬女免费一二三区A片| 亚洲男人天堂2019| 丝袜亚洲91| 人妻丝袜二区| 隔壁邻居波多野结衣中文字幕| 亚洲一区二区三区欧美日韩| 日韩精品99999| 久久综合久久综合人久久夜精品| 欧美综合亚洲| 日本人妻丰满熟妇久久久久久| 日本三级A片网站com| 精品国产久热在线观看| n1038 一二三区| 女人天堂网| 精品无码久久久久久久杏吧| 多乙久久久久久| 中文字幕在线观看AV| 亚洲色图综合网| 久久久亚洲| 国产小黄片在线免费观看| 白嫩嫩一区| 超碰国产在线| 伊人aaa| 五十路一区无码| caoni国产亚洲av| 久久秀这里有精品| 九九热av| 澳门特级毛片免费观看| 99色婷婷中文字幕乱色| 久久精品国产亚洲AV先锋| 明星性猛交ⅹxxx乱大交| 粉嫩不卡一区二区性爱| 色天堂综合| 中文一区二区三区影院| 午夜丁香| 欧美精品97| AV无码久久久精品| 国产1727欧美| 精品毛片av一区二区| 麻豆国产尤物AV| 中出91视频| 日人妻视频91| 亚洲性综合| 欧美高清无码免费视频高清版| 99九九精品| 中文字幕乱偷人妻久久艾草网| 午夜操逼不卡| 国产精品粉嫩福利在线| 手机看av网站在线看| 久久久111| 熟妇xxxxx性春色| 亚洲图片欧美制度| 可以免费看黄片的视频| 大香蕉黄色一区| 天天天操天天天爱| 丁香五月成人| 97超碰色色| 一区二区 韩日AV| 久久黄人人爽视频| 亚洲精品蜜桃久久久一区二区三区| 97手机日韩| 色爽爽文学| 超碰免费人妻在线| 伊人大香蕉在线| 爱妃国产亚洲视频中文字幕| 欧美青青视频| 91久操| 97欧美精品| 色诱中文字幕| 国产一区二区a毛片| 美女爽爽爽刺痛洞洞| 探花一区在线| 亚洲国产综合图区中文字幕 | 一区二区三区成人| 伊人久久88国产女| 久久婷婷电影网| 麻豆AV96熟妇人妻| 日本污ww视频网站| 中文操逼字幕| 超碰一区二区| 亚州精品一区二区三区香中文字幕在线| 亚洲小说视频| 久久久久大香青草精品综合| 首页亚洲国产高跟丝袜诱惑视频| 东北少妇高潮zzzz| 超碰 国产熟女精品一区| 五月天激情四射| 91色狼| 亚洲在高跟鞋自慰久久在色线| 午夜无码精品免费看性色| 亚洲性刺激| 超碰在线974| 99久久精品国产高潮| 精品少妇99| 亚洲淫乱骚妇AV| 国产精品青草综合久久| 国产精品久久久吖| 欧美激情 亚洲色图| 97天天摸天天碰| 久久成人国产精品| 精品午夜福利| 日韩91网| 久久原创中文| 人妻精品4K4K4K4K4| 亚洲免费成人精品电影| 99无码狠狠久久| 一区二区播放| 内射卯月麻衣| 涩爱AV在线| 婷婷五月综合在线| 欧美系列在线一区二区| 91看黄片| 亚洲综合20p| 青青操视频在线| 国产白领连续中出在线观看| 久9热| 操高情无码| 精品国模无码| 国产精品视频在线观看| 婷婷探花久久精品一区| 久久色一区二区| 日韩另类色图| 丁香五月激情综合| 日韩中文字幕视频在线观看| www.av在线视频| www.色吧5.com| 欧美精品精品一区二区| 亚洲成人贴图| 嗯嗯啊好爽| 亚春色色| 亚洲区小说| 久久99深爱久久99精品| 91九九九吃| 粉嫩AV一区夜夜嗨| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 亚洲精品三| 欧美极品性爱天天射| 无码精品久久| 亚洲乱色熟女一区| 99久国产精品午夜性色福利| 国产黄色影片在线观看| 天天干人人干天天日97| 亚洲欧美综合区自拍另类| 成人av性爱电影在线观看| 大学生美女口爆| 亚州综合色| 亚洲一二三四区| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 日韩精品区二区三区不卡| 爱我干综合| 日本三级日本三级99| 午夜男人一级A片7777| 日本精品第一视频在'| 免费操逼视频下载| 综合激情婷婷| 国产黄a三级三级三级av在线看 | 国产日韩精品人妻久久久久色欲网站| 性久久| 性色av蜜臀av色欲aV| 久久精品国产亚洲AV片多多 | 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 亚洲欧美另类激情小说| 大二网站亚洲| 日韩卡一卡二卡三在线| 亚洲老熟妇xxx| 1956日韩精品| 狠狠亚洲| 亚洲毛片久久| 成人免费视瓶| 国产人妻天天干精品| 九九热在线视频| 亚洲伊人久久精品狠狠在线| 精品九九淫乱男| 青青青草原| 探花精品 一区二区| 国产兽交视频在线播放| 多乙久久久久久| 天天淫人人妻日日色| 97干天天| 亚洲欧美另类图片| 男女性感激情网站| 91久久国产综合久久| 青青草伊人久久| 日韩丨制服丨中文|在线| 亚洲色图A| 中文字幕日韩人妻视频| 探花精品视频| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 午夜毛片亚洲精品片国产久久久| 中文字幕奈奈美被公侵犯| 日本污ww视频网站| 精品人妻一区二区乱码一区二区| 少妇九九九九| 亚洲第2页| 亚洲国产一区二区三区在线| 综合熟妇一区二区三区| 人妻干天天| 97色碰| 日本新免费二区三区| 久久久精品网| 免费观看啪视频| 91天堂视频| 青青草国产欧美非洲黑人| 国语精品内射在线观看| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 91九九| 久久免费精品视频免一| 一区二区三区蜜桃成人撸久久东京热| 久久久不卡| 亚洲成人性爱在线观看| 亚洲第91页 | 日本91白丝| 福利五区| 日本色色色视频| 2019AV天堂| 欧美一区二区男人天堂| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 久久精品国产亚洲AV片多多| 97精品视频免费| 美欧色综合| 色色色999| 99热这里只有精品1| 操逼国产免费| 骚人妻少妇视频| 欧美,日韩综合久久| 青草香蕉网| 日韩欧美福利视频看看| 欧亚日韩三区| 高清成年美女黄网站免费大全 | 四虎在线观看视频| 丰满人妻一区二区三区免费,| 96国产精品| www色婷婷| 97精品一区| www.丁香五月| 四虎精品一区二区| 色噜噜国产在线| 亚洲无码精品AV久久久| 中文字幕亚洲欧美在线不卡| 人人操我人人干| 欧洲精品网| 色呦呦呦在线观看视频| 久草成人影片| 亚洲.欧美.丝袜.中文.综合| 亚洲欧美不卡线| 日本不卡高清免v欧美日韩在线观看| 日韩欧美性爱电影在线观看| 在线视频五十市| 国产成年精品高清在线观看91| 久神马| 探花激情视频| 狠狠操狠狠操操| 精产国品一区二三产品| 青青久久手机线视频| 熟女91网| 色嘟嘟人妻天堂网| 日韩免费看在线黄色片| 男人的天堂三级| 欧美性天天影视| 日韩中文字幕视频| 美女天天干| 国产av白丝| av无线看| 黄页| 伦在线97| 夜夜爽77777| 国产人妖的免费的视频| 中文字幕国产| 伊人久久大香线综合无码| 影音先锋乱| 亚洲天堂男人天堂网| 麻豆人妻少妇在线免费观看| 曰韩av中文字幕专区| 家庭乱伦麻豆| 97色欧洲| 国产地址二三| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 在线观看亚洲成人精品| 夜夜嗨一区二区三区三州加勒比| 涩爱AV在线| 欧美亚洲激情小说| 亚洲伊人成综合成人网| 天天日骚逼熟女| 蜜桃臀一区二区三区久久| 久久久精品一区二区| 一本一首道人妻少妇免费久久| 少妇一区二区三区在线观看| 欧美78P| 污啪啪啪视频| 91动漫操逼视频| 大象AV在线| 亚洲日韩狠狠撸视频| 操操操操操操| 亚洲欧美一区二区三区在钱蜜桃 | 国产家庭乱伦表演| 超碰97丝袜| 亚洲97网站| 欧美色图成人网一区二区 | 久久春色| 久操免费观看| 撸无码不卡免费视频| 久久AV色| 亚洲熟女乱色一区二区三区久久久| 久久久精品日本一道| 婷婷久久大香蕉| 成人网站 免费观看| 翔田千里无码中出中文字幕| 看全色黄大色大片免费视频| 97亚洲欧美| 不卡视频一区蜜桃视频 | 国产成人精品无码久久| 97人人夜夜精品视频| 日韩欧无码一区二区三区免费不卡| 九九热re99re6在线精品| 人妻大香蕉| 亚州男人的天堂| 亚洲综合九| 91丝袜熟女| 欧美熟妇亚洲版| 久啪| 日韩一级二级三级免费看完整版国语版| 男女91| 亚洲污一污二| 亚洲中亚日激情视频| 台湾佬中文娱乐网久久久久久久久久com| 国产午夜福利视频在线| 五十路熟女工口| 91欧美美女日韩国产婷婷| 中文字幕亚洲欧美在线不卡| 三上制服丝AV| 久草精品视频| 人妻人久久精品中文字幕| 亚洲蜜臀精品视频久久| 久久久91| 人人模人人看| 男女激情黄色网址| 九九激情网| 俺去久久| 亚洲十八禁止| 色图四区| 一区二区免费电影久久| 亚洲一卡2卡3卡4卡乱码网站| 在线观看日韩av不卡| 丁香六月婷婷久久综合| 蜜臀AV一区二区三区激情综合| 毛片17S| 亚洲精品白丝| 天天看片青娱乐| 极品欧美一区二区三区| 国模无码一区二区三区在线| 激情六月婷婷| 欧亚日韩三区| 东京热,男人的天堂| 最新亚洲黄色免费电影| 亚洲国产一区二区入口| 亚洲久热| 都市激情人妻一区二区青青操视频 | 97色欧洲| 久久欲| 丁香九月激情啪| 精品久久久久9999| 天天综合麻豆视频| 色激情综合网站| 免费看A片毛毛片在线播| 91视频国品一二三区| 97AV在线免费观看| 啊啊啊草死我| 五月丁香社区婷婷日韩欧美精品影院 | 亚洲中文国际强奸字幕| 人人乐大香蕉| 九九九只有精品| 国产亚洲精品久久久久小| 婷婷AV一区二区三区| 第四色色综合91| 天天色综合影视网| 久久91精品国产9丨久久分亭 | 青娱乐福利99| 蜜臀国产AV中文字幕| 精品久久久不卡一区二区| 在线亚洲欧美| 五月天婷婷基地| 天堂综合| 中文字幕一区二区三区高清| 国产怡红院| 四虎影视精品| www狠狠| 久久亚洲色图中文字幕| 日韩簧片免费看| 日本天天吊| 国产AV中文| 国产成人久久久精品免费AV| 日韩欧美天天爽爽爽天天爽爽| 人人爱人人乐人人操| 五月丁香影视| 欧美日韩狠狠爱| 最近的最新的中文字幕视频| 后入福利视频| 成人5码视频| 亚州色图片在线色| 中国女人内射6XXXXX| 狠狠图片青青草| 国产亚洲99久久精品熟| 日韩在线女优天天干| 天天综合网在线观看| 五月色综合| 超碰美国| 欧美AB在线观看| 国产v亚洲v日韩v欧美v片另类| 天天爱天天韩国日本牛牛牛牛 | av优播| 91香蕉国产尤物视频| 91精品电影18| 欧美精品精品一区二区| 亚洲精品天天影视综合网| 国产无码三级视频在线观看| 抽查国产福利主播| 肏逼福利网站| 99蜜桃臀亚洲成人在线观看| 国产精品 久久久精品一牛| 91中文精品日韩欧美在线 | 亚洲日韩AV视色| 久久久新亚洲AV| 久久精品72| 欧美黄片欧美黄片xxx| 久草成人影片| 天综合中文| 国产精品第一区第一页| 东京热熟女亚洲视频网站| 久久久免费一级黄片| 久久久亚洲精品中文字幕人妻| 色色99| 一级片视频啪啪| 亚洲综合九| 操99| 精品国模无码| 操逼无毒无码免费视频| 水野优香在线观看| 国产精品原创巨作?v网站| 青青草久久在线| 红杏大香蕉| 成人免费看吃奶视频网站| 9997se| 久热伊人99re| 日人妻视频91| 高清国产精品福利网站| 欧美综合网1| 亚洲精品99| 在线岛| 992大香蕉| 欧美熟妇操操视频| www.婷婷五月天| 久久久久亚洲av综合波多野制衣| 超碰久草| 久久精品国产99国产精品亚洲| 蜜臀操逼黄色视频操的好爽| 97视频网站| 亚洲综合大片| 区一在线观看| 亚洲九九夜夜| www.91逼逼.com| 九九九免费视频| 职场同事知名国产国产精品久久欧美日韩 | 日本不卡二三区| 五月婷婷六月丁香| 国岛片视频| 伊人网青青| 午夜精品久久99蜜桃的功能章节| Aa东京男人的天堂| 色婷婷综合久久中文字幕雪峰| 久久性爱城| 乱伦Av网| 亚洲性爱电影| 黑人免费福利视频| 91亚洲情色| 久草综合网| 美女91av| 天美传媒AV国产在线| 青青11操操操操操操操操| 免费一级欧美片片线观看| 欧美一区二区三区另类精品| 无码精品久久久久久亚洲| 美欧色综合| 97美日韩视频| 精品熟妇视频一区二区| 亚洲九九视频在线观看| www.男人天堂| 大乔未久88一区| 色大香蕉97N| 中文字幕97色| 超碰天天操你比| 欧美日韩亚洲高清不卡一区二区三区| 久都青青视频 | 日本精品五区| 亚洲美女AV无码| 欧美亚洲中文| 永久免费观看的毛片的网站| 国产深夜福利| 久久永久无码人妻视频| 秋霞网无码| 日韩有码 一区二区三区| V A在线| 精品人妻免费观看| 黄人人操人人操| 91av一区二区在线观看| 国产又色又粗又黄又爽| 欧美一区二区福利在线| 精品中文字幕第一页| 日韩欧美tv一区二区在线观看| 在线A日本| 高清无码 国产精品| 国产三级中文有码在线视频| 熟妇操花| 超碰在线99| 狠狠狠一区二区三区| 精品久久久中文字幕不| 久热精品色情| 97草草| 亚州欧美在线| 懂色Av| 在线人成亚洲视频免费观看| 在线观看高清AV| 日本高清_区二区三区| 日本一级性爱| 天天透伊人| 日本大香蕉| 精品少妇一区二区三区| 亚洲日韩精品一区二区| 精品三级在线专区| 日韩一级成人毛片免费观看| 97人人超| 91jk色拍| 欧美黑人与女人91| 国产精品久久aV| 成人福利视频网| 亚码激情| 69丨亚洲丨精品丨入口免费播放| 99re久久| 综合在线导航一区| 亚洲第一页色| 91丝袜在线视频| 60秒不遮不挡| 国内毛片婷婷六月色| 很很干很很操| 亚洲drav色图| 亚洲无码精品AV久久久| 91干熟女| 日本蜜桃| 日本不卡五区| 日本一区二区不卡精品| 久久不卡一区二区| 少妇色欲综合网2| 蜜乳AV.COM| Julia在线播放亚洲久久| 热久日综合| 屁股久久久久久| 日韩精品中文字幕一| 亚洲情色五月天 | 日韩成人大片在线观看| 久久免费看高潮毛片韩国| 日韩欧美三级| 欧美经典一区二区三区| 婷婷国产精品九区| 大香蕉淫人| 国产乱人伦AVA麻豆软件.| 久久e6只有精品| 校园春色亚洲色图| 26uuu国产成人综合| 97色爱| 日少妇视频| 日本午夜久久电影| 欧美国产操逼| 国产一区免费午夜视频| 久操B网| 亚洲激情在线| 色官网在线| 日韩精品一区,二区 九九...老司机| 亚洲视频中文一区| 狠狠中文字幕| 国产精品视频在线观看| 丁香五月天激情| 久久一二三四五六七八九区| 天天操夜夜操狠很操| 啊嗯好大视频在线观看| 亚洲情欲| 亚洲欧美一区二区三区在钱蜜桃| 国产一区二区在线看| 精品中文字幕一区二区l - 百度| 97精品视频网站| 先锋激情∨在线视频播放| 久久9精品视频| 久久久亚洲| 国产一区96在线| 国产精品噜噜噜日日日| 99久久综合| 鸥美中出| 精品久久久九九九孕妇| 免费观看一区| 久久久9品一区二区三区| 999999精品| 婷婷情色综合网| 秋霞色色影院| 97超碰热线| 日韩欧美成人综合在线| 亚洲综合骚逼| 一区二区三区精品视频| 97中文字幕一区| 99色婷婷| 3PAV乱伦视频| 欧美日韩国产电影| 三级三级三级a级全黄三| 久久精品电影| 免费看日产一区二区三区| 蜜臀Av一区二区三区| 婷婷六月色| 国产精品点击进入在线影院高清| 色九月综合| 先锋色眉乱伦资源| 91操熟妇| 人人手机欧洲亚洲国产人妻| 日本性交操一区二区不卡系列| 日本欧美色| 黑人精品成人一区二区三区| 亚洲男人天堂网站| 国产精品肉丝自拍| 国产精品嫩草影院免费| 91制服丝袜| 亚洲国产剧情少妇激情| 芊芊操逼视频无码| 精品国产乱码久久久久久久久久毛片| 五月丁香网站| 国产精品 久久久精品一牛| 狠狠干2020| 男人的天堂2010| 亚洲小电影免费涩涩成人在线高清| 色网综合网| 色色色热| 少妇人妻好深太紧了vr91| 久久久无码精品人妻二区| 北条麻妃99精品青青久久| 性爱视频无打码在线观看| 亚洲国产97在线精品一区| 亚洲精品一二三四区| 久久精品国产亚洲AV片多多| 特色a在线上| 欧美熟女丝袜| 久久婷婷国产一区二区色| 九色精品视频导航1| 亚洲美女精品九九视频| 欧美日韩精品久久| 99re9在线| 青青操综合网| 亚洲春色一区二区三区| 超碰97人人乐| 青青国产在线拍揄自揄拍| 天天插天天插| 五月天丁香婷婷综合网站| 中文字幕三四区| 蜜桃臀久久| 青青草啪啪网| 国产一区二区三区中文字幕| 国模无码一区二区三区在线| 欧美日韩在线视频网站| 超碰久超碰久| 日本精品九九九| 丝袜无码a片| 九九九九九九九九九九九免费国产| 在线可观看的黄色网址| 成人性爱AV在线免费观看| 91色香| 极品少妇久久久久| 日本熟妇色熟妇在线视频播放| 日本免费一区二| 婷婷成人五月天| 中文字幕性感少妇av| 强奸乱伦大香蕉| av网站免费线看| 看全色黄大色大片免费视频| 全国男人天堂网| 欧美日本视频一区| 东京热99999| 新视频sss国产| 中 文字幕一区二区三四 五 区日 日 骚| 日韩有码免费视频| 熟女精品一区二区三区| 色吧五月| 婷婷色五月激情| 天天干天天狼在线视频| 人妻aa| 日本一区二区做爱的视频| 丰满人妻一区二区三区四区| 中国AV美女| 欧美一区二区一级岛国大片| av网站国产主播在线| 国产成人在线观看网址| 加勒比综合| 综合久久少妇中文字幕| 97视频网站| 色综合av综合久久| 久久国产在线一区二区| 亚洲第一页第二页激情| 激情黄色片在线观看| A片大香蕉在线| 一本色道综合久久欧美| 国产日韩色综合| 国产精品视频麻豆入口| 日本欧美一区二区三区免费| 性开放中文AV高清无码免费看| 日本欧美一区二区三区免费| 夜色AV无码手机在线影院| 亚洲熟女中文字幕在线| 99色在线观看| 国产精品一区二区三区在线密挑| 亚洲图片 91| 亚洲国产剧情少妇激情| 热热热热日日漂亮永久永久国产日| 97AV在线免费观看| 精品女同一区| 啊啊啊啊啊啊啊啊在线观看| 成人国产视频在线观看| 国产毛片久久久久久久| 久久一区二区三区入口| 屌色在线97视频| 尤物av网站| 日韩中文字幕宗合在线| 中国91AV| 激情小说图片亚洲首页| 91成人精品在线播放| 婷婷午夜| 欧美激情片一区二区| 欧美最大综合网| 2017天天插| 日韩操逼性鲍| 激情久久久| 射丝袜高跟鞋99| 日韩97精| 日本一二区不卡| 为用户提供免费看黄网址在线观看| 国产精品久久久久久片| 国产11页| 91欧美性| 夜夜精品视频| 国产AV精久久| A V少妇特黄三级| 蜜桃视频一区二区三区| 欧美亚洲首页| 翔田千里AⅤHD无码| 国产动漫操逼视频| 久久AV无码1区2区3区| 久久后入制服| AAAA欧美日韩| www.久久爱| 精品久久久不卡一区二区| 亚洲熟女综合一区二区| 国产操操日韩三级黄| www.狠狠干.coom| 日韩二区三四区五区六区在线看| 超碰95| 日韩av乱伦| 97操在线| 男啪女色黄无遮挡免费观看| 国内自拍 日韩激情 99| 五十路熟女工口 | 熟女一区二区| 精品97久久| 午夜精品五区| 啊啊啊啊二区好大| 女人综合网| 色色婷| 97久久国产亚洲精品超碰热| 国产丝袜美女在线一区| 人妻少妇蜜桃视频欧美一区| 超碰偷拍| 久久久久久国产手机AV| 久草色悠悠在线视频| 久久人| 婷婷色综合| 四虎精品亚洲| 精品黑人一区二区| 人妻超碰青青草98| 一个国产在线综合网站| 人妻在线臀日韩| 九九九久久久| 96精品在线| 人妻第一页| 99热99色| 婷婷10月天青娱乐| 亚洲蜜桃V妇女| 欧洲精品欧洲精品| 日本激情免费大片| 老熟妇一区二区三区啪啪| 大香蕉www.超碰| 五月天久久婷婷亚洲 | 亚洲色图欧美色图制服丝袜| 看全色黄大色大片免费视频| 天天影视色香色欲| 九月伊人中文字幕| 91美女中出| 国产精品视频在线观看| 中文字幕高清20页视频| 亚洲97在线观看| 无码人妻一区二区一牛影视| 五十路熟女人妻一区二区在线观看| 狠狠干狠狠干| 中日韓欧美高清| 偷拍 亚洲| 天天射天天操天天干天天吃2018| 久久久久久久 九九九九九九九| 91天天综合日韩欧美| 91亚州日韩高清| TS人妖另类精品视频系列| 亚洲最大的黄色电影网站。| 一本色道无码DVD中文字幕| 亚洲丝袜色图| 久久黄色视频一区二区三区| 色网1| 色情五月丁香| 亚洲超碰97| 欧美狠狠操| 国产av强奸美女| 春色综合免费| 一区二区日韩欧美久久| 久久久久少妇| 超碰精品| 五月天玖玖资源站| 欧美姓爱综合网| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 在线无码操| 亚欧美综合网| 久久AV无码1区2区3区| 日本视频一区二区三区| 国产精品另类| 黄色二级片网站| 国产欧美岛国精品一区| 欧美一级二级三级| 亚洲影院小综合| 亚洲蜜桃V妇女| 男人久久天堂| 老司机久久| 99熟女| 日韩免费高清大片在线| 免费99精品国产自在在线| 亚洲另类综合欧美| 亚洲中文字幕久久人妻| 久久九九97| 99亚洲人人| www.狠狠操| 99精品欧美一区二区三区桃色| 国产9熟妇视频网站| 爱欲AV| www.激情| 精品高清一区二区三区三州| 天干天干天干天天做| 人人摸人人干| 久久亚洲av成人无码国产| 豆花视频操逼网址| 婷婷激情丁香| 欧美91精彩| 性色一线| 国产精品视频精品一二| 免费视频在线一区二区不卡| 色狠狠一区二区三区香蕉| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 青娱乐啪啪视频| 无码不卡亚洲成?人片| 加勒比伊人综合| 狠狠久久四虎| 免费看日产一区二区三区| 欧美伊人久久综合网| 网友自拍第1页| 999熟女精品| 大香伊人在线一区| av优播| 操婷婷逼| 人妻 丝袜美腿 中文字幕| 天天综合网日韩| 天美麻豆一区二区三区| 麻豆人妻偷人精品无码视频| 欧美成不卡网| 99色| 九九综合久久| 91精品伊人久久久大香线蕉91| 亚洲āv网址在线观看| 78超碰| 中国91AV| 性欧美999| 99精品无码| 丁香7月婷婷| 超碰97久久国| 亚码人妻| 欧美亚洲AN| 久草精品国产蜜臀| 青青草自拍视频在线播放| 亚洲va综合va国产va中文| 国产一区二区三区精品观看啪| 日韩乱伦影音先锋| 中国国产精品一区视频| 大香蕉一区二区在线观看.| 亚洲无码精品AV久久久| 91香蕉国产尤物视频| 啊啊啊啊网站| 久热一区二区| 蜜臀久久99精品久久久久久-DVD原版全| 91熟女丨老女人| 丝袜综合网| 99热在线观看| 成人线上超碰| 日本αv| 92性色国产午夜福利在线661| 国产二区三区免费视频| 天天看夜夜看日日干| 国产亚洲色停停久久99精品91| 中文字幕国产在线天堂| yw尤物av无码点击进入麻豆| 久久狠狠色噜噜狠狠狠狠97| 欧美色999| 被窝影院午夜看片无码| 日韩簧片免费看| 色网在线视频观看免费| 日本一区二区不卡精品| 91黑人无码激情在线| 亚洲操操|