大數(shù)據(jù)導(dǎo)論-思維、技術(shù)與應(yīng)用 第2章 大數(shù)據(jù)采集_第1頁(yè)
大數(shù)據(jù)導(dǎo)論-思維、技術(shù)與應(yīng)用 第2章 大數(shù)據(jù)采集_第2頁(yè)
大數(shù)據(jù)導(dǎo)論-思維、技術(shù)與應(yīng)用 第2章 大數(shù)據(jù)采集_第3頁(yè)
大數(shù)據(jù)導(dǎo)論-思維、技術(shù)與應(yīng)用 第2章 大數(shù)據(jù)采集_第4頁(yè)
大數(shù)據(jù)導(dǎo)論-思維、技術(shù)與應(yīng)用 第2章 大數(shù)據(jù)采集_第5頁(yè)
已閱讀5頁(yè),還剩57頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

大數(shù)據(jù)導(dǎo)論第二章PART01大數(shù)據(jù)采集概述PART02系統(tǒng)日志采集方法CONTENTS目錄PART03網(wǎng)絡(luò)數(shù)據(jù)采集方法PART04習(xí)題采集是大數(shù)據(jù)處理流程的第一步。數(shù)據(jù)是大數(shù)據(jù)處理的基礎(chǔ),數(shù)據(jù)的完整性和質(zhì)量直接影響著大數(shù)據(jù)處理的結(jié)果。采集是大數(shù)據(jù)處理流程的第一步。數(shù)據(jù)是大數(shù)據(jù)處理的基礎(chǔ),數(shù)據(jù)的完整性和質(zhì)量直接影響著大數(shù)據(jù)處理的結(jié)果。PART01大數(shù)據(jù)采集概念大數(shù)據(jù)采集概述大數(shù)據(jù)采集是指從傳感器和智能設(shè)備、企業(yè)在線系統(tǒng)、企業(yè)離線系統(tǒng)、社交網(wǎng)絡(luò)和互聯(lián)網(wǎng)平臺(tái)等獲取數(shù)據(jù)的過(guò)程。RFID射頻數(shù)據(jù)傳感器數(shù)據(jù)用戶行為數(shù)據(jù)社交網(wǎng)絡(luò)交互數(shù)據(jù)移動(dòng)互聯(lián)網(wǎng)數(shù)據(jù)數(shù)據(jù)包括RFID射頻數(shù)據(jù)、傳感器數(shù)據(jù)、用戶行為數(shù)據(jù)、社交網(wǎng)絡(luò)交互數(shù)據(jù)及移動(dòng)互聯(lián)網(wǎng)數(shù)據(jù)等各種類型的結(jié)構(gòu)化、半結(jié)構(gòu)化及非結(jié)構(gòu)化的海量數(shù)據(jù)。數(shù)據(jù)包括數(shù)據(jù)結(jié)構(gòu)結(jié)構(gòu)化半結(jié)構(gòu)化非結(jié)構(gòu)化大數(shù)據(jù)分類在大數(shù)據(jù)體系中,將傳統(tǒng)數(shù)據(jù)分類為業(yè)務(wù)數(shù)據(jù),而將傳統(tǒng)數(shù)據(jù)體系中沒(méi)有考慮過(guò)的新數(shù)據(jù)源分為線下行為數(shù)據(jù)、線上行為數(shù)據(jù)和內(nèi)容數(shù)據(jù)三大類。消費(fèi)者數(shù)據(jù)、客戶關(guān)系數(shù)據(jù)、庫(kù)存數(shù)據(jù)、賬目數(shù)據(jù)等;業(yè)務(wù)數(shù)據(jù)車流量數(shù)據(jù)、能耗數(shù)據(jù)、PM2.5數(shù)據(jù)等;行業(yè)數(shù)據(jù)應(yīng)用日志、電子文檔、機(jī)器數(shù)據(jù)、語(yǔ)音數(shù)據(jù)、社交媒體數(shù)據(jù)等;內(nèi)容數(shù)據(jù)頁(yè)面數(shù)據(jù)、交互數(shù)據(jù)、表單數(shù)據(jù)、會(huì)話數(shù)據(jù)、反饋數(shù)據(jù)等;線上行為數(shù)據(jù)車輛位置和軌跡、用戶位置和軌跡、動(dòng)物位置和軌跡等。線下行為數(shù)據(jù)大數(shù)據(jù)主要來(lái)源企業(yè)系統(tǒng)機(jī)器系統(tǒng)社交系統(tǒng)互聯(lián)網(wǎng)系統(tǒng)行業(yè)數(shù)據(jù)業(yè)務(wù)數(shù)據(jù)內(nèi)容數(shù)據(jù)線上行為數(shù)據(jù)線下行為數(shù)據(jù)數(shù)據(jù)源數(shù)據(jù)類型大數(shù)據(jù)的主要來(lái)源有:1企業(yè)系統(tǒng):客戶關(guān)系管理系統(tǒng)、企業(yè)資源計(jì)劃系統(tǒng)、庫(kù)存系統(tǒng)、銷售系統(tǒng)等;234機(jī)器系統(tǒng):智能儀表、工業(yè)設(shè)備傳感器、智能設(shè)備、視頻監(jiān)控系統(tǒng)等;互聯(lián)網(wǎng)系統(tǒng):電商系統(tǒng)、服務(wù)行業(yè)業(yè)務(wù)系統(tǒng)、政府監(jiān)管系統(tǒng)等;社交系統(tǒng):微信、QQ、微博、博客、新聞網(wǎng)站、朋友圈等。數(shù)據(jù)源與數(shù)據(jù)類型的關(guān)系圖大數(shù)據(jù)采集方法分類數(shù)據(jù)的采集是指利用多個(gè)數(shù)據(jù)庫(kù)或存儲(chǔ)系統(tǒng)來(lái)接收發(fā)自客戶端(Web、App或者傳感器形式等)的數(shù)據(jù)。比如,電商會(huì)使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)MySQL和Oracle等來(lái)存儲(chǔ)每一筆事務(wù)數(shù)據(jù),在大數(shù)據(jù)時(shí)代,Redis和MongoDB和HBase等NoSQL數(shù)據(jù)庫(kù)也常用于數(shù)據(jù)的采集。在大數(shù)據(jù)的采集過(guò)程中,其主要特點(diǎn)和挑戰(zhàn)是并發(fā)數(shù)高,因?yàn)橥瑫r(shí)有可能會(huì)有成千上萬(wàn)的用戶來(lái)進(jìn)行訪問(wèn)和操作,比如火車票售票網(wǎng)站和淘寶,它們并發(fā)的訪問(wèn)量在峰值時(shí)達(dá)到上百萬(wàn),所以需要在采集端部署大量數(shù)據(jù)庫(kù)才能支撐。根據(jù)數(shù)據(jù)源的不同,大數(shù)據(jù)采集方法也不相同。但是為了能夠滿足大數(shù)據(jù)采集的需要,大數(shù)據(jù)采集方法都使用了大數(shù)據(jù)的處理模式:MapReduce分布式并行處理模式或者基于內(nèi)存的流式處理方式。大數(shù)據(jù)采集方法分類傳統(tǒng)企業(yè)會(huì)使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)MySQL和Oracle等來(lái)存儲(chǔ)數(shù)據(jù)。隨著大數(shù)據(jù)時(shí)代的到來(lái),HBase、Redis和MongoDB這樣的NoSQL數(shù)據(jù)庫(kù)也常用于數(shù)據(jù)的采集。通過(guò)在采集端部署大量數(shù)據(jù)庫(kù),并在這些數(shù)據(jù)庫(kù)之間進(jìn)行負(fù)載均衡和分片來(lái)完成大數(shù)據(jù)采集工作。系統(tǒng)日志采集主要是收集公司業(yè)務(wù)平臺(tái)日常產(chǎn)生的大量日志數(shù)據(jù),供進(jìn)行離線和在線的大數(shù)據(jù)分析系統(tǒng)使用。高可用性、高可靠性、可擴(kuò)展性是日志收集系統(tǒng)所具有的基本特征。系統(tǒng)日志采集工具均采用分布式架構(gòu),能夠滿足每秒數(shù)百M(fèi)B的日志數(shù)據(jù)采集和傳輸需求。1數(shù)據(jù)庫(kù)采集2系統(tǒng)日志采集大數(shù)據(jù)采集方法分類大數(shù)據(jù)采集方法分類網(wǎng)絡(luò)數(shù)據(jù)采集是指通過(guò)網(wǎng)絡(luò)爬蟲(chóng)或網(wǎng)站公開(kāi)API等方式從網(wǎng)站上獲取數(shù)據(jù)信息的過(guò)程。網(wǎng)絡(luò)爬蟲(chóng)會(huì)從一個(gè)或若干初始網(wǎng)頁(yè)的URL開(kāi)始,獲得各個(gè)網(wǎng)頁(yè)上的內(nèi)容,并且在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當(dāng)前頁(yè)面上抽取新的URL放入隊(duì)列,直到滿足設(shè)置的停止條件為止。這樣可將非結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)從網(wǎng)頁(yè)中提取出來(lái),存儲(chǔ)在本地的存儲(chǔ)系統(tǒng)中。感知設(shè)備數(shù)據(jù)采集是通過(guò)傳感器、攝像頭和其他智能終端自動(dòng)采集信號(hào)、圖片或錄像來(lái)獲取數(shù)據(jù)。大數(shù)據(jù)智能感知系統(tǒng)需要實(shí)現(xiàn)對(duì)結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化的海量數(shù)據(jù)的智能化識(shí)別、定位、跟蹤、接入、傳輸、信號(hào)轉(zhuǎn)換、監(jiān)控、初步處理和管理等。主要關(guān)鍵技術(shù)包括針對(duì)大數(shù)據(jù)源的智能識(shí)別、感知、適配、傳輸、接入等。3網(wǎng)絡(luò)數(shù)據(jù)采集4感知設(shè)備數(shù)據(jù)采集大數(shù)據(jù)采集方法分類許多公司的平臺(tái)每天都會(huì)產(chǎn)生大量的日志,并且一般為流式數(shù)據(jù),比如搜索引擎的pv和查詢等。處理這些日志需要特定的日志系統(tǒng)。目前使用最廣泛的用于系統(tǒng)日志采集的海量數(shù)據(jù)采集工具有Hadoop的Chukwa,ApacheFlume,F(xiàn)acebook的Scribe和LinkedIn的Kafka等PART02系統(tǒng)日志采集方法日志系統(tǒng)特征許多公司的平臺(tái)每天都會(huì)產(chǎn)生大量的日志,并且一般為流式數(shù)據(jù),比如搜索引擎的pv和查詢等。處理這些日志需要特定的日志系統(tǒng),這些系統(tǒng)需要具有以下特征:構(gòu)建應(yīng)用系統(tǒng)和分析系統(tǒng)的橋梁,并將它們之間的關(guān)聯(lián)解耦;支持近實(shí)時(shí)的在線分析系統(tǒng)和分布式并發(fā)的離線分析系統(tǒng);具有高可擴(kuò)展性,也就是說(shuō),當(dāng)數(shù)據(jù)量增加時(shí),可以通過(guò)增加節(jié)點(diǎn)進(jìn)行水平擴(kuò)展。3123系統(tǒng)日志采集方法目前使用最廣泛的用于系統(tǒng)日志采集的海量數(shù)據(jù)采集工具有Hadoop的Chukwa,ApacheFlume,F(xiàn)acebook的Scribe和LinkedIn的Kafka等Hadoop的ChukwaApacheFlumeFacebook的ScribeApacheFlume的基本概念Flume是一個(gè)高可用的、高可靠的、分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng)。Flume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù);同時(shí),F(xiàn)lume提供對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單處理,并寫到各種數(shù)據(jù)接受方(比如文本、HDFS、HBase等)的能力。Flume的基本概念Flume的核心是把數(shù)據(jù)從數(shù)據(jù)源(Source)收集過(guò)來(lái),再將收集到的數(shù)據(jù)送到指定的目的地(Sink)。為了保證輸送的過(guò)程一定成功,在送到目的地之前,會(huì)先緩存數(shù)據(jù)到管道(Channel),待數(shù)據(jù)真正到達(dá)目的地后,F(xiàn)lume再刪除緩存的數(shù)據(jù)。ApacheFlume系統(tǒng)架構(gòu)Flume系統(tǒng)的核心就是一個(gè)代理(Agent)。Agent本身是一個(gè)Java進(jìn)程,運(yùn)行在日志收集節(jié)點(diǎn)。Agent里面包含3個(gè)核心的組件:Source、Channel、Sink。

Source組件是專門用來(lái)收集數(shù)據(jù)的,可以處理各種類型、各種格式的日志數(shù)據(jù),包括Avro、Thrift、Exec、JMS、SpoolingDirectory、Netcat、SequenceGenerator、syslog、http、Legacy和用戶自定義的格式。1SourceSinkChannelApacheFlume系統(tǒng)架構(gòu)Sink組件是用于把數(shù)據(jù)發(fā)送到目的地的組件,目的地類型包括HDFS、Hive、Logger、Avro、Thrift、IRC、FileRoll、HBase、AsyncHBase、MorphlineSolr、ElasticSearch、KiteDataset、Kafka、Custom等,或者其它的FlumeAgent。3Channel組件為Source組件提供了臨時(shí)存放收集到的數(shù)據(jù)的能力。也就是說(shuō),Channel組件在Agent中是專門用來(lái)存放臨時(shí)數(shù)據(jù)的,對(duì)采集到的數(shù)據(jù)進(jìn)行簡(jiǎn)單的緩存。所有從Source過(guò)來(lái)的日志數(shù)據(jù)都會(huì)以隊(duì)列的形式存放在里面,管道類型包括:Memory、JDBC、Kafka、File、SpillableMemory、PseudoTransaction、和Custom等類型。使用內(nèi)存性能高但不持久,有可能丟數(shù)據(jù)。使用文件更可靠,但性能不如內(nèi)存。2ApacheFlume系統(tǒng)架構(gòu)Flume串聯(lián)管道處理基于Flume的日志采集是靈活的,既有AvroSink也有AvroSource,既有ThriftSink也有ThriftSource,這意味著我們可以將多個(gè)管道處理串聯(lián)起來(lái),如下圖所示。Flume在Source和Sink端都使用了事務(wù)機(jī)制保證在數(shù)據(jù)傳輸中沒(méi)有數(shù)據(jù)丟失。ApacheFlume系統(tǒng)架構(gòu)Flume多數(shù)據(jù)源合并結(jié)構(gòu)圖Source上的數(shù)據(jù)可以復(fù)制到不同的通道上。每一個(gè)通道也可以連接不同數(shù)量的Sink。這樣連接不同配置的Agent就可以組成一個(gè)復(fù)雜的數(shù)據(jù)收集網(wǎng)絡(luò)。通過(guò)對(duì)agent的配置,可以組成一個(gè)復(fù)雜的數(shù)據(jù)傳輸網(wǎng)絡(luò)。例如可以將多個(gè)管道合并到一個(gè)管道中最終輸出到同一個(gè)Sink中去,如右圖所示

ApacheFlume系統(tǒng)架構(gòu)例如可以設(shè)置同一個(gè)Source對(duì)應(yīng)到多個(gè)Sink上,如下圖所示。Flume單數(shù)據(jù)源多目的地結(jié)構(gòu)ApacheFlume使用方法Flume的用法很簡(jiǎn)單,就是書寫一個(gè)用戶配置文件。在配置文件當(dāng)中描述Source、Channel與Sink的具體實(shí)現(xiàn),而后運(yùn)行一個(gè)Agent實(shí)例。在運(yùn)行Agent實(shí)例的過(guò)程中會(huì)讀取配置文件的內(nèi)容,這樣Flume就會(huì)采集到數(shù)據(jù)。

配置文件的編寫原則如下:從整體上描述代理Agent中Sources、Sinks、Channels所涉及到的組件。#Namethecomponentsonthisagenta1.sources=r1a1.sinks=k1a1.channels=c1ApacheFlume使用方法2)詳細(xì)描述Agent中每一個(gè)Source、Sink與Channel的具體實(shí)現(xiàn):即在描述Source的時(shí)候,需要指定Source到底是什么類型的,即這個(gè)Source是接受文件的、還是接受http的、還是接受Thrift的;對(duì)于Sink也是同理,需要指定結(jié)果是輸出到HDFS中,還是HBase中等;對(duì)于Channel需要指定是內(nèi)存、數(shù)據(jù)庫(kù),還是文件等。#Describe/configurethesourcea1.sources.r1.type=netcata1.sources.r1.bind=localhosta1.sources.r1.port=44444

#Describethesinka1.sinks.k1.type=logger#Useachannelwhichbufferseventsinmemorya1.channels.c1.type=memorya1.channels.c1.capacity=1000a1.channels.c1.transactionCapacity=100ApacheFlume使用方法3)通過(guò)Channel將Source與Sink連接起來(lái)。#Bindthesourceandsinktothechannel a1.sources.r1.channels=c1 a1.sinks.k1.channel=c14)啟動(dòng)agent的shell操作。flume-ngagent–na1-c../conf–f../conf/example.file\ -Dflume.root.logger=DEBUG,console參數(shù)說(shuō)明:-n指定Agent名稱(與配置文件中代理的名字相同)-c指定Flume中配置文件的目錄-f指定配置文件-Dflume.root.logger=DEBUG,console設(shè)置日志等級(jí)ApacheFlume應(yīng)用案例NetCatSource應(yīng)用監(jiān)聽(tīng)一個(gè)指定的網(wǎng)絡(luò)端口,即只要應(yīng)用程序向這個(gè)端口里面寫數(shù)據(jù),這個(gè)Source組件就可以獲取到信息。其中Sink使用logger類型,Channel使用內(nèi)存(Memory)格式。1)編寫配置文件:#Namethecomponentsonthisagent a1.sources=r1 a1.sinks=k1 a1.channels=c1 #Describe/configurethesource a1.sources.r1.type=netcat a1.sources.r1.bind=0 a1.sources.r1.port=44444 #Describethesink a1.sinks.k1.type=logger #Useachannelwhichbufferseventsinmemory a1.channels.c1.type=memory a1.channels.c1.capacity=1000 a1.channels.c1.transactionCapacity=100

#Bindthesourceandsinktothechannel a1.sources.r1.channels=c1 a1.sinks.k1.channel=c1該配置文件定義了一個(gè)名字為a1的Agent,有一個(gè)Source在port44444監(jiān)聽(tīng)數(shù)據(jù);一個(gè)Channel使用內(nèi)存緩存事件;一個(gè)Sink把事件記錄在控制臺(tái)。ApacheFlume應(yīng)用案例2)啟動(dòng)FlumeAgenta1服務(wù)端$flume-ngagent-na1-c../conf-f../conf/netcat.conf\-Dflume.root.logger=DEBUG,console3)使用telnet發(fā)送數(shù)據(jù)從另一個(gè)終端,使用telnet通過(guò)port44444給Flume發(fā)送數(shù)據(jù)。$telnetlocalhost44444 Trying... Connectedtolocalhost.localdomain(). Escapecharacteris'^]'. Helloworld!<ENTER> OKApacheFlume應(yīng)用案例4)在控制臺(tái)上查看Flume收集到的日志數(shù)據(jù)17/06/1915:32:19INFOsource.NetcatSource:Sourcestarting17/06/1915:32:19INFOsource.NetcatSource:CreatedserverSocket:sun.nio.ch.ServerSocketChannelImpl[/:44444]17/06/1915:32:34INFOsink.LoggerSink:Event:{headers:{}body:48656C6C6F20776F726C64210DHelloworld!.}Scribe基本概念Scribe是FaceBook開(kāi)源的日志收集系統(tǒng),在FaceBook內(nèi)部已經(jīng)得到大量的應(yīng)用。它能夠從各種日志源上收集日志,存儲(chǔ)到一個(gè)中央存儲(chǔ)系統(tǒng)(可以是NFS,分布式文件系統(tǒng)等)上,以便于進(jìn)行集中統(tǒng)計(jì)分析處理。它為日志的“分布式收集,統(tǒng)一處理”提供了一個(gè)可擴(kuò)展的,高容錯(cuò)的方案。它最重要的特點(diǎn)是容錯(cuò)性好。當(dāng)后端的存儲(chǔ)系統(tǒng)crash時(shí),scribe會(huì)將數(shù)據(jù)寫到本地磁盤上,當(dāng)存儲(chǔ)系統(tǒng)恢復(fù)正常后,scribe將日志重新加載到存儲(chǔ)系統(tǒng)中。Scribe基本架構(gòu)Scribe從各種數(shù)據(jù)源上收集數(shù)據(jù),放到一個(gè)共享隊(duì)列上,然后推送(push)到后端的中央存儲(chǔ)系統(tǒng)上。當(dāng)中央存儲(chǔ)系統(tǒng)出現(xiàn)故障時(shí),Scribe可以暫時(shí)把日志寫到本地文件中,待中央存儲(chǔ)系統(tǒng)恢復(fù)性能后,Scribe把本地日志續(xù)傳到中央存儲(chǔ)系統(tǒng)上。客戶端可以采用各種語(yǔ)言通過(guò)Thrift向Scribe傳輸數(shù)據(jù)。Scribe可以將不同類型的數(shù)據(jù)存放到不同目錄中,以便于進(jìn)行分別處理。Scribe的架構(gòu)主要包括三部分,分別為ScribeAgent、Scribe和存儲(chǔ)系統(tǒng),如右圖所示。Scribe系統(tǒng)架構(gòu)Scribe基本架構(gòu)ScribeAgentScribeAgent實(shí)際上是一個(gè)ThriftClient。使用ThriftClient是向Scribe發(fā)送數(shù)據(jù)的唯一方法。Scribe在內(nèi)部定義了一個(gè)Thrift接口用來(lái)接收用戶發(fā)送的數(shù)據(jù)。ScribeThriftClient發(fā)送過(guò)來(lái)的數(shù)據(jù)以后,會(huì)根據(jù)配置文件,將不同主題(Topic)的數(shù)據(jù)發(fā)送給不同的對(duì)象。Scribe提供了各種各樣的存儲(chǔ)棧,如NFS文件系統(tǒng)和HDFS等。Scribe可將數(shù)據(jù)加載到這些存儲(chǔ)棧中。存儲(chǔ)系統(tǒng)存儲(chǔ)系統(tǒng)實(shí)際上就是Scribe中的存儲(chǔ)棧。當(dāng)前Scribe支持多種類型的存儲(chǔ)棧,包括file,buffer,network,bucket,null,ThriftFile和multi。Scribe的架構(gòu)主要包括三部分,分別為ScribeAgent、Scribe和存儲(chǔ)系統(tǒng)Scribe使用方法使用Scribe系統(tǒng)主要有兩個(gè)任務(wù)。第一個(gè)是編寫配置文件,第二個(gè)是編寫ThriftClient程序。配置文件描述了Scribe的組成結(jié)構(gòu),Client程序?qū)崿F(xiàn)發(fā)送數(shù)據(jù)的功能。配置文件的編寫原則如下:1)配置全局參數(shù)port=1463max_msg_per_second=2000000max_queue_size=10000000check_interval=3port:Scribe服務(wù)監(jiān)聽(tīng)的端口號(hào),缺省值是0;max_msg_per_second:每秒處理信息的最大量,缺省值是0;max_queue_size:消息隊(duì)列存儲(chǔ)的最大量,缺省值是5Mbytes;check_interval:檢測(cè)存儲(chǔ)棧的時(shí)間間隔值,缺省值是5秒;new_thread_per_category:是否為每個(gè)類型創(chuàng)建一個(gè)新線程,缺省值是yes;num_thrift_server_threads:監(jiān)聽(tīng)消息源消息的線程數(shù),缺省值是3;Scribe使用方法2)配置存儲(chǔ)棧參數(shù)Scribe服務(wù)根據(jù)存儲(chǔ)棧的參數(shù)決定信息的處理,所以每個(gè)存儲(chǔ)棧必須描述自己要處理的信息類型。<store> category=statistics type=file target_write_size=20480 max_write_interval=2</store>category:存儲(chǔ)棧處理的信息的類型type:存儲(chǔ)棧的類型,可以為file、buffer、network、bucket、thriftfile、null、multitarget_write_size:每個(gè)類型待處理信息的最大長(zhǎng)度,缺省值是16Kbytesmax_batch_size:內(nèi)存存儲(chǔ)棧每次可以處理的數(shù)據(jù)量,缺省值是1Mbytes

max_write_interval:向每類存儲(chǔ)棧寫數(shù)據(jù)的間隔時(shí)間,缺省值是1秒must_succeed:當(dāng)處理信息出錯(cuò)以后是不是需要重試,缺省值是yesScribe應(yīng)用案例這里描述如何配置和發(fā)送信息到Scribe服務(wù)器。其中,存儲(chǔ)棧處理信息的類型是default,存儲(chǔ)棧的類型是buffer格式。1)編寫配置文件:port=1463 max_msg_per_second=2000000 check_interval=3 #DEFAULT <store> category=default type=buffer target_write_size=20480 max_write_interval=1 buffer_send_rate=2 retry_interval=30 retry_interval_range=10 <primary> type=file fs_type=std file_path=/tmp/scribetest base_filename=thisisoverwritten max_size=1000000 add_newlines=1 </primary> <secondary> type=file fs_type=std file_path=/tmp base_filename=thisisoverwritten max_size=3000000 </secondary> </store>該配置文件定義了一個(gè)存儲(chǔ)類型為buffer的存儲(chǔ)棧。主存儲(chǔ)和副存儲(chǔ)的類型均為file,但是副存儲(chǔ)的最大容量是3M,而主存儲(chǔ)的最大容量為1M。Scribe應(yīng)用案例2)創(chuàng)建一個(gè)目錄用于存放日志信息$mkdir/tmp/scribetest3)使用example1.conf中的配置信息啟動(dòng)Scribe服務(wù)./bin/scribed./../examples/example1.conf4)打開(kāi)一個(gè)新的終端控制臺(tái),使用scribe_cat發(fā)送一條信息到Scribeecho"hello..."|./bin/scribe_cattest5)確定日志是否被記錄cat/tmp/scribetest/test/test_currentScribe應(yīng)用案例6)使用root查看Scribe的運(yùn)行狀態(tài)./bin/scribe_ctrlstatus7)查看Scribe計(jì)算器./bin/scribe_ctrlcounters8)關(guān)閉Scribe./bin/scribe_ctrlstopApacheChukwa基本概念Chukwa是構(gòu)建在Hadoop的HDFS文件系統(tǒng)、MapReduce計(jì)算框架和HBase系統(tǒng)之上的一個(gè)可靠的大規(guī)模日志收集和處理系統(tǒng)。并繼承了Hadoop的可伸縮性和可靠性。幫助用戶在各個(gè)節(jié)點(diǎn)實(shí)時(shí)監(jiān)控日志文件的變化,增量的將文件內(nèi)容寫入HDFS或HBase,同時(shí)還可以將數(shù)據(jù)去除重復(fù),排序等。因此,經(jīng)過(guò)Chukwa處理以后,Hadoop從HDFS中拿到的文件已經(jīng)是整理好的大的SequenceFile,Hadoop無(wú)需再做任何轉(zhuǎn)換過(guò)程就可以使用MapReduce處理數(shù)據(jù),中間繁雜的過(guò)程都由Chukwa完成?;靖拍睿褐饕δ埽篈pacheChukwa基本概念Chukwa的主要目的是提供一個(gè)靈活的、功能強(qiáng)大的分布式數(shù)據(jù)收集和快速處理的平臺(tái)。Chukwa可以用于監(jiān)控2000個(gè)以上節(jié)點(diǎn)的大規(guī)模的Hadoop集群的整體運(yùn)行情況,并對(duì)它們每天產(chǎn)生數(shù)據(jù)量在T級(jí)別的日志進(jìn)行分析。對(duì)于集群的用戶而言,Chukwa可以展示它們的作業(yè)已經(jīng)運(yùn)行了多久,占用了多少資源,還有多少資源可用,一個(gè)作業(yè)是為什么失敗了,一個(gè)讀寫操作在哪個(gè)節(jié)點(diǎn)出了問(wèn)題。對(duì)于集群的運(yùn)維工程師而言,Chukwa可以展示集群中的硬件錯(cuò)誤,集群的性能變化,集群的資源瓶頸在哪里。對(duì)于集群的管理者而言,Chukwa可以展示集群的資源消耗情況,集群的整體作業(yè)執(zhí)行情況,可以用以輔助預(yù)算和集群資源協(xié)調(diào)。主要目的:使用角度:ApacheChukwa基本架構(gòu)Chukwa旨在為分布式數(shù)據(jù)收集和大數(shù)據(jù)處理提供一個(gè)靈活、強(qiáng)大的平臺(tái)。這個(gè)平臺(tái)不僅可以與現(xiàn)在的存儲(chǔ)系統(tǒng)結(jié)合使用,而且能夠與將來(lái)新的存儲(chǔ)技術(shù)結(jié)合使用。為了保持這種靈活性,Chukwa被設(shè)計(jì)成由多級(jí)收集和處理階段的管道線,在各個(gè)層級(jí)之間有非常明確和狹窄的界面。Adaptors:用于從各種數(shù)據(jù)源收集數(shù)據(jù);Agents:運(yùn)行在每一個(gè)節(jié)點(diǎn),負(fù)責(zé)往節(jié)點(diǎn)外發(fā)送數(shù)據(jù);ETLProcesses:用于對(duì)數(shù)據(jù)進(jìn)行分析和歸檔;數(shù)據(jù)分析腳本:用于集成Hadoop集群的運(yùn)行狀況信息;HICC(HadoopInfrastructureCareCenter):Web界面,用來(lái)負(fù)責(zé)數(shù)據(jù)的展示。Chukwa由5個(gè)主要組件組成:安裝和配置Chukwa基本工作從ApacheChukwa網(wǎng)站下載最新版本,解壓,并且保證每個(gè)希望監(jiān)控的節(jié)點(diǎn)都有一份。我們使用CHUKWA_HOME來(lái)表示存放Chukwa的目錄。設(shè)置Hadoop和HBase:1)復(fù)制Chukwa文件到Hadoop和HBase目錄下:cp$CHUKWA_HOME/etc/chukwa/perties$HADOOP_CONF_DIR/pertiescp$CHUKWA_HOME/etc/chukwa/perties\ $HADOOP_CONF_DIR/pertiescp$CHUKWA_HOME/share/chukwa/chukwa-0.8.0-client.jar\ $HADOOP_HOME/share/hadoop/common/libcp$CHUKWA_HOME/share/chukwa/lib/json-simple-1.1.jar\ $HADOOP_HOME/share/hadoop/common/libcp$CHUKWA_HOME/etc/chukwa/perties$HBASE_CONF_DIR/pertiescp$CHUKWA_HOME/etc/chukwa/perties\ $HBASE_CONF_DIR/pertiescp$CHUKWA_HOME/share/chukwa/chukwa-0.8.0-client.jar$HBASE_HOME/libcp$CHUKWA_HOME/share/chukwa/lib/json-simple-1.1.jar$HBASE_HOME/lib安裝和配置Chukwa2)重新啟動(dòng)Hadoop集群和HBase;3)運(yùn)行下面的命令,初始Chukwa的HBase模型。bin/hbaseshell<$CHUKWA_HOME/etc/chukwa/hbase.schema設(shè)置和啟動(dòng)ChukwaAgent1)編輯CHUKWA_HOME/etc/chukwa/chukwa-env.sh。2)編輯CHUKWA_HOME/etc/chukwa/chukwa-agent-conf.xml。確認(rèn)HADOOP_CONF_DIR,JAVA_HOME,和HBASE_CONF_DIR的值的正確性。確認(rèn)solr.cloud.address的值的正確性。安裝和配置Chukwa3)

在CHUKWA_HOME目錄下,運(yùn)行:sbin/chukwa-daemon.shstartagent4)

設(shè)置Solr存儲(chǔ)索引后的日志文件,使用ChukwaSolr配置文件啟動(dòng)Solr5.5.0:bin/solrstart-cloud-zlocalhost:2181./bin/solrcreate_collection-cchukwa-nchukwa5)啟動(dòng)HICC:sbin/chukwa-daemon.shstarthicc6)

vi. 數(shù)據(jù)可視化,使用瀏覽器訪問(wèn)下述頁(yè)面,用戶名和密碼都是adminhttp://<server>:4080/hicc/網(wǎng)絡(luò)數(shù)據(jù)采集是指通過(guò)網(wǎng)絡(luò)爬蟲(chóng)或網(wǎng)站公開(kāi)API等方式從網(wǎng)站上獲取數(shù)據(jù)信息。該方法可以將非結(jié)構(gòu)化數(shù)據(jù)從網(wǎng)頁(yè)中抽取出來(lái),將其存儲(chǔ)為統(tǒng)一的本地?cái)?shù)據(jù)文件,并以結(jié)構(gòu)化的方式存儲(chǔ)。PART03網(wǎng)絡(luò)數(shù)據(jù)采集方法網(wǎng)絡(luò)數(shù)據(jù)采集方法分類網(wǎng)絡(luò)數(shù)據(jù)采集是指通過(guò)網(wǎng)絡(luò)爬蟲(chóng)或網(wǎng)站公開(kāi)API等方式從網(wǎng)站上獲取數(shù)據(jù)信息。在互聯(lián)網(wǎng)時(shí)代,網(wǎng)絡(luò)爬蟲(chóng)主要是為搜索引擎提供最全面和最新的數(shù)據(jù)。在大數(shù)據(jù)時(shí)代,網(wǎng)絡(luò)爬蟲(chóng)更是為數(shù)據(jù)挖掘從互聯(lián)網(wǎng)上采集數(shù)據(jù)的有利工具。網(wǎng)絡(luò)爬蟲(chóng)工具基本可以分3類:1分布式網(wǎng)絡(luò)爬蟲(chóng)工具:Nutch;2Java網(wǎng)絡(luò)爬蟲(chóng)工具:Crawler4j、WebMagic、WebCollector;3非Java網(wǎng)絡(luò)爬蟲(chóng)工具:Scrapy(基于Python語(yǔ)言開(kāi)發(fā))。網(wǎng)絡(luò)爬蟲(chóng)概述網(wǎng)絡(luò)爬蟲(chóng)(WebCrawler)是一種按照一定的規(guī)則,自動(dòng)地抓取Web信息的程序或者腳本,可以自動(dòng)采集所有其能夠訪問(wèn)到的頁(yè)面內(nèi)容,以獲取或更新這些網(wǎng)站的內(nèi)容和檢索方式。從功能上來(lái)講,爬蟲(chóng)一般分為:數(shù)據(jù)采集

處理存儲(chǔ)·網(wǎng)絡(luò)爬蟲(chóng)原理Web網(wǎng)絡(luò)爬蟲(chóng)系統(tǒng)的功能是下載網(wǎng)頁(yè)數(shù)據(jù),為搜索引擎系統(tǒng)提供數(shù)據(jù)來(lái)源。Google、百度都是基于Web數(shù)據(jù)采集的搜索引擎系統(tǒng)。網(wǎng)頁(yè)中除了包含供用戶閱讀的文字信息外,還包含一些超鏈接信息。Web網(wǎng)絡(luò)爬蟲(chóng)系統(tǒng)正是通過(guò)網(wǎng)頁(yè)中的超連接信息不斷獲得網(wǎng)絡(luò)上的其它網(wǎng)頁(yè)。Web網(wǎng)絡(luò)爬蟲(chóng)系統(tǒng)一般會(huì)選擇一些比較重要的、出度(網(wǎng)頁(yè)中鏈出超鏈接數(shù))較大的網(wǎng)站的URL作為種子URL集合。以這些種子集合作為初始URL,開(kāi)始數(shù)據(jù)抓取網(wǎng)絡(luò)爬蟲(chóng)工作流程種子URL待抓取URL已下載網(wǎng)頁(yè)庫(kù)已抓取URL讀取URL、DNS解析、網(wǎng)頁(yè)下載將已下載URL放入已抓取URL隊(duì)列抽取出新的URL放入待抓取URL隊(duì)列網(wǎng)絡(luò)爬蟲(chóng)工作流程圖1首先選取一部分種子URL;2將這些URL放入待抓取URL隊(duì)列;3從待抓取URL隊(duì)列中取出待抓取的URL,解析DNS,得到主機(jī)的IP地址,并將URL對(duì)應(yīng)的網(wǎng)頁(yè)下載下來(lái),存儲(chǔ)到已下載網(wǎng)頁(yè)庫(kù)中。此外,將這些URL放進(jìn)已抓取URL隊(duì)列;4分析已抓取URL隊(duì)列中的URL,分析其中的其他URL,并且將這些URL放入待抓取URL隊(duì)列,從而進(jìn)入下一個(gè)循環(huán)。流程解釋如下:網(wǎng)絡(luò)爬蟲(chóng)抓取策略的基本概念網(wǎng)頁(yè)間關(guān)系模型從互聯(lián)網(wǎng)的結(jié)構(gòu)看,網(wǎng)頁(yè)之間通過(guò)數(shù)量不等的超鏈接相互連接,形成一個(gè)彼此關(guān)聯(lián)、龐大復(fù)雜的有向圖。如下圖所示:如果將網(wǎng)頁(yè)看成是圖中的某一個(gè)節(jié)點(diǎn),而將網(wǎng)頁(yè)中指向其他網(wǎng)頁(yè)的鏈接看成是這個(gè)節(jié)點(diǎn)指向其他節(jié)點(diǎn)的邊,那么我們很容易將整個(gè)互聯(lián)網(wǎng)上的網(wǎng)頁(yè)建模成一個(gè)有向圖。理論上,通過(guò)遍歷算法遍歷該圖,可以訪問(wèn)到互聯(lián)網(wǎng)上的幾乎所有的網(wǎng)頁(yè)。網(wǎng)絡(luò)爬蟲(chóng)抓取策略的基本概念網(wǎng)頁(yè)分類從爬蟲(chóng)的角度對(duì)互聯(lián)網(wǎng)進(jìn)行劃分,可以將互聯(lián)網(wǎng)的所有頁(yè)面分為五個(gè)部分:已下載未過(guò)期網(wǎng)頁(yè),已下載已過(guò)期網(wǎng)頁(yè),可知網(wǎng)頁(yè)和不可知網(wǎng)頁(yè)。如下圖所示:抓取到本地的網(wǎng)頁(yè)分為已下載未過(guò)期網(wǎng)頁(yè)和已下載已過(guò)期網(wǎng)頁(yè)兩類。因?yàn)榛ヂ?lián)網(wǎng)是動(dòng)態(tài)變化的,當(dāng)一部分內(nèi)容在網(wǎng)上發(fā)生變化的時(shí)候,抓取在本地的網(wǎng)頁(yè)就過(guò)期了。待下載網(wǎng)頁(yè)是指待抓取URL隊(duì)列中的那些頁(yè)面。可知網(wǎng)頁(yè)是指還沒(méi)有抓取下來(lái),也沒(méi)有在待抓取URL隊(duì)列中,但是可以通過(guò)對(duì)已抓取頁(yè)面或者待抓取URL對(duì)應(yīng)頁(yè)面進(jìn)行分析獲取到的URL對(duì)應(yīng)的網(wǎng)頁(yè)。還有一部分網(wǎng)頁(yè),網(wǎng)絡(luò)爬蟲(chóng)是無(wú)法直接抓取下載的,稱為不可知網(wǎng)頁(yè)。通用網(wǎng)絡(luò)爬蟲(chóng)通用網(wǎng)絡(luò)爬蟲(chóng)又稱全網(wǎng)爬蟲(chóng),爬行對(duì)象從一些種子URL擴(kuò)充到整個(gè)Web,主要為門戶站點(diǎn)搜索引擎和大型Web服務(wù)提供商采集數(shù)據(jù)。為提高工作效率,通用網(wǎng)絡(luò)爬蟲(chóng)會(huì)采取一定的爬行策略。常用的爬行策略有:深度優(yōu)先策略、廣度優(yōu)先策略。深度優(yōu)先策略12廣度優(yōu)先策略深度優(yōu)先遍歷策略是指網(wǎng)絡(luò)爬蟲(chóng)會(huì)從起始頁(yè)開(kāi)始,一個(gè)鏈接一個(gè)鏈接跟蹤下去,直到不能再深入為止。廣度優(yōu)先遍歷策略按照網(wǎng)頁(yè)內(nèi)容目錄層次深淺來(lái)爬行頁(yè)面,處于較淺目錄層次的頁(yè)面首先被爬行。當(dāng)同一層次中的頁(yè)面爬行完畢后,爬蟲(chóng)再深入下一層繼續(xù)爬行。聚焦網(wǎng)絡(luò)爬蟲(chóng)聚焦網(wǎng)絡(luò)爬蟲(chóng)又稱主題網(wǎng)絡(luò)爬蟲(chóng),是指選擇性地爬行那些與預(yù)先定義好的主題相關(guān)頁(yè)面的網(wǎng)絡(luò)爬蟲(chóng)。常用的爬行策略有如下四種:基于內(nèi)容評(píng)價(jià)的爬行策略1該算法將用戶輸入的查詢?cè)~作為主題,包含查詢?cè)~的頁(yè)面被視為與主題相關(guān)基于鏈接結(jié)構(gòu)評(píng)價(jià)的爬行策略2基于鏈接結(jié)構(gòu)的搜索策略模式就是利用了這些結(jié)構(gòu)特征來(lái)評(píng)價(jià)頁(yè)面和鏈接的重要性的,以此決定搜索的順序?;谠鰪?qiáng)學(xué)習(xí)的爬行策略3將增強(qiáng)學(xué)習(xí)引入聚焦爬蟲(chóng),利用貝葉斯分類器,根據(jù)整個(gè)網(wǎng)頁(yè)文本和鏈接文本對(duì)超鏈接進(jìn)行分類,為每個(gè)鏈接計(jì)算出重要性,從而決定鏈接的訪問(wèn)順序?;谡Z(yǔ)境圖的爬行策略4通過(guò)建立語(yǔ)境圖(ContextGraphs)學(xué)習(xí)網(wǎng)頁(yè)之間的相關(guān)度,訓(xùn)練一個(gè)機(jī)器學(xué)習(xí)系統(tǒng),通過(guò)該系統(tǒng)可計(jì)算當(dāng)前頁(yè)面到相關(guān)Web頁(yè)面的距離,距離越近的頁(yè)面中的鏈接優(yōu)先訪問(wèn)。增量式網(wǎng)絡(luò)爬蟲(chóng)增量式網(wǎng)絡(luò)爬蟲(chóng)是指對(duì)已下載網(wǎng)頁(yè)采取增量式更新和只爬行新產(chǎn)生的或者已經(jīng)發(fā)生變化網(wǎng)頁(yè)的爬蟲(chóng),它能夠在一定程度上保證所爬行的頁(yè)面是盡可能新的頁(yè)面。增量式爬蟲(chóng)有兩個(gè)目標(biāo):“保持本地頁(yè)面集中存儲(chǔ)的頁(yè)面為最新頁(yè)面“和”提高本地頁(yè)面集中頁(yè)面的質(zhì)量”。為實(shí)現(xiàn)第一個(gè)目標(biāo),增量式爬蟲(chóng)需要通過(guò)重新訪問(wèn)網(wǎng)頁(yè)來(lái)更新本地頁(yè)面集中頁(yè)面的內(nèi)容為實(shí)現(xiàn)第二個(gè)目標(biāo),增量式爬蟲(chóng)需要對(duì)網(wǎng)頁(yè)的重要性排序,常用的策略有:廣度優(yōu)先策略、PageRank優(yōu)先策略等。深層網(wǎng)絡(luò)爬蟲(chóng)深層網(wǎng)頁(yè)是那些大部分內(nèi)容不能通過(guò)靜態(tài)鏈接獲取的、隱藏在搜索表單后的,只有用戶提交一些關(guān)鍵詞才能獲得的網(wǎng)頁(yè)。深層網(wǎng)絡(luò)爬蟲(chóng)體系結(jié)構(gòu)包含六個(gè)基本功能模塊:爬行控制器、解析器、表單分析器、表單處理器、響應(yīng)分析器、LVS控制器;和兩個(gè)爬蟲(chóng)內(nèi)部數(shù)據(jù)結(jié)構(gòu):URL列表、LVS表。其中LVS(LabelValueSet)表示標(biāo)簽/數(shù)值集合,用來(lái)表示填充表單的數(shù)據(jù)源。爬取過(guò)程中最重要部分就是表單填寫,包含基于領(lǐng)域知識(shí)的表單填寫和基于網(wǎng)頁(yè)結(jié)構(gòu)分析的表單填寫兩種。Nutch簡(jiǎn)介Nutch是一個(gè)開(kāi)源Java實(shí)現(xiàn)的搜索引擎。它為用戶提供了運(yùn)行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬蟲(chóng)。Nutch起源于ApacheLucene項(xiàng)目,已經(jīng)是一個(gè)高度可擴(kuò)展和可伸縮的開(kāi)源網(wǎng)絡(luò)爬蟲(chóng)軟件項(xiàng)目。Nutch由爬蟲(chóng)Crawler和查詢Searcher組成。Crawler包含WebDB和Fetchers兩個(gè)組件,主要用于從網(wǎng)絡(luò)上抓取網(wǎng)頁(yè)并為這些網(wǎng)頁(yè)建立索引。Searcher包含Inderxers、Searchers和WebServers三個(gè)部分,主要利用這些索引檢索用戶的查找關(guān)鍵詞來(lái)產(chǎn)生查找結(jié)果。Nutch的架構(gòu)WebDB用來(lái)存儲(chǔ)網(wǎng)頁(yè)(Page)和鏈接(Link)兩種實(shí)體的信息FetchLists是抓取任務(wù)列表,為了用于分布式處理,將要抓取的鏈接分成多個(gè)組。Fetchers根據(jù)FetchList中的鏈接把相關(guān)頁(yè)面下載到本地,共有兩項(xiàng)輸出分別是鏈接的Updates信息和頁(yè)面的內(nèi)容信息ContentUpdates信息用來(lái)更新WebDB的頁(yè)面檢索狀態(tài)。Nutch架構(gòu)圖Content頁(yè)面信息用來(lái)創(chuàng)建查詢索引Nutch的架構(gòu)Indexers對(duì)頁(yè)面Content創(chuàng)建索引,當(dāng)索引內(nèi)容較大時(shí),會(huì)把索引劃分成多個(gè)索引片段(Indexes),然后分配到不同的Seracher。WebServers完成兩種的功能。一種是:作為Nutch查詢客戶端處理用戶的交互請(qǐng)求;另一種是作為HTTPServer從Searchers中獲取查詢結(jié)果。Seracher實(shí)現(xiàn)索引片段進(jìn)行并行檢索。Nutch架構(gòu)圖Nutch的工作流程爬蟲(chóng)部分工作流程如下:1)添加初始化URL2)生成新的Segment3)獲取內(nèi)容4)內(nèi)容解析5)更新crawlDB查詢流程包含兩方面:1)一方面是編制索引2)一方面就是啟動(dòng)Web服務(wù)器,為用戶提供檢索服務(wù)。以索引庫(kù)做分隔,左側(cè)是爬蟲(chóng)部分,右側(cè)是查詢部分。Heritrix簡(jiǎn)介Heritrix是一個(gè)開(kāi)源的、Java開(kāi)發(fā)的、可擴(kuò)展的web爬蟲(chóng)項(xiàng)目。其最出色之處在于它良好的可擴(kuò)展性,方便用戶實(shí)現(xiàn)自己的抓取邏輯。

Heritrix用來(lái)獲取完整的、精確的、站點(diǎn)內(nèi)容的深度復(fù)制,并對(duì)所有內(nèi)容進(jìn)行存儲(chǔ),而不對(duì)頁(yè)面進(jìn)行內(nèi)容的修改。Heritrix是由互聯(lián)網(wǎng)檔案館和北歐國(guó)家圖書館聯(lián)合在2003年初規(guī)范

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論