大数据技术综合分析!数据采集与预处理
對于各種來源的數(shù)據(jù),包括移動互聯(lián)網(wǎng)數(shù)據(jù)、社交網(wǎng)絡(luò)的數(shù)據(jù)等,這些結(jié)構(gòu)化和非結(jié)構(gòu)化的海量數(shù)據(jù)是零散的,也就是所謂的數(shù)據(jù)孤島,此時的這些數(shù)據(jù)并沒有什么意義,數(shù)據(jù)采集就是將這些數(shù)據(jù)寫入數(shù)據(jù)倉庫中,把零散的數(shù)據(jù)整合在一起,對這些數(shù)據(jù)綜合起來進(jìn)行分析。
數(shù)據(jù)采集包括文件日志的采集、數(shù)據(jù)庫日志的采集、關(guān)系型數(shù)據(jù)庫的接入和應(yīng)用程序的接入等。在數(shù)據(jù)量比較小的時候,可以寫個定時的腳本將日志寫入存儲系統(tǒng),但隨著數(shù)據(jù)量的增長,這些方法無法提供數(shù)據(jù)安全保障,并且運(yùn)維困難,需要更強(qiáng)壯的解決方案。
在這里我還是要推薦下我自己建的大數(shù)據(jù)學(xué)習(xí)交流qq裙:522189307 , 裙 里都是學(xué)大數(shù)據(jù)開發(fā)的,如果你正在學(xué)習(xí)大數(shù)據(jù) ,小編歡迎你加入,大家都是軟件開發(fā)黨,不定期分享干貨(只有大數(shù)據(jù)開發(fā)相關(guān)的),包括我自己整理的一份最新的大數(shù)據(jù)進(jìn)階資料和高級開發(fā)教程,歡迎進(jìn)階中和進(jìn)想深入大數(shù)據(jù)的小伙伴。上述資料加群可以領(lǐng)取
?
?
?
Flume NG作為實(shí)時日志收集系統(tǒng),支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù),同時,對數(shù)據(jù)進(jìn)行簡單處理,并寫到各種數(shù)據(jù)接收方(比如文本,HDFS,Hbase等)。
Flume NG采用的是三層架構(gòu):Agent層,Collector層和Store層,每一層均可水平拓展。其中Agent包含Source,Channel和 Sink,source用來消費(fèi)(收集)數(shù)據(jù)源到channel組件中,channel作為中間臨時存儲,保存所有source的組件信息,sink從channel中讀取數(shù)據(jù),讀取成功之后會刪除channel中的信息。
?
NDC,Netease Data Canal,直譯為網(wǎng)易數(shù)據(jù)運(yùn)河系統(tǒng),是網(wǎng)易針對結(jié)構(gòu)化數(shù)據(jù)庫的數(shù)據(jù)實(shí)時遷移、同步和訂閱的平臺化解決方案。它整合了網(wǎng)易過去在數(shù)據(jù)傳輸領(lǐng)域的各種工具和經(jīng)驗(yàn),將單機(jī)數(shù)據(jù)庫、分布式數(shù)據(jù)庫、OLAP系統(tǒng)以及下游應(yīng)用通過數(shù)據(jù)鏈路串在一起。除了保障高效的數(shù)據(jù)傳輸外,NDC的設(shè)計(jì)遵循了單元化和平臺化的設(shè)計(jì)哲學(xué)。
?
?
Logstash是開源的服務(wù)器端數(shù)據(jù)處理管道,能夠同時從多個來源采集數(shù)據(jù)、轉(zhuǎn)換數(shù)據(jù),然后將數(shù)據(jù)發(fā)送到您最喜歡的 “存儲庫” 中。一般常用的存儲庫是Elasticsearch。Logstash 支持各種輸入選擇,可以在同一時間從眾多常用的數(shù)據(jù)來源捕捉事件,能夠以連續(xù)的流式傳輸方式,輕松地從您的日志、指標(biāo)、Web 應(yīng)用、數(shù)據(jù)存儲以及各種 AWS 服務(wù)采集數(shù)據(jù)。
?
Sqoop,用來將關(guān)系型數(shù)據(jù)庫和Hadoop中的數(shù)據(jù)進(jìn)行相互轉(zhuǎn)移的工具,可以將一個關(guān)系型數(shù)據(jù)庫(例如Mysql、Oracle)中的數(shù)據(jù)導(dǎo)入到Hadoop(例如HDFS、Hive、Hbase)中,也可以將Hadoop(例如HDFS、Hive、Hbase)中的數(shù)據(jù)導(dǎo)入到關(guān)系型數(shù)據(jù)庫(例如Mysql、Oracle)中。
Sqoop 啟用了一個 MapReduce 作業(yè)(極其容錯的分布式并行計(jì)算)來執(zhí)行任務(wù)。Sqoop 的另一大優(yōu)勢是其傳輸大量結(jié)構(gòu)化或半結(jié)構(gòu)化數(shù)據(jù)的過程是完全自動化的。
?
流式計(jì)算是行業(yè)研究的一個熱點(diǎn),流式計(jì)算對多個高吞吐量的數(shù)據(jù)源進(jìn)行實(shí)時的清洗、聚合和分析,可以對存在于社交網(wǎng)站、新聞等的數(shù)據(jù)信息流進(jìn)行快速的處理并反饋,目前大數(shù)據(jù)流分析工具有很多,比如開源的strom,spark streaming等。
?
?
Strom集群結(jié)構(gòu)是有一個主節(jié)點(diǎn)(nimbus)和多個工作節(jié)點(diǎn)(supervisor)組成的主從結(jié)構(gòu),主節(jié)點(diǎn)通過配置靜態(tài)指定或者在運(yùn)行時動態(tài)選舉,nimbus與supervisor都是Storm提供的后臺守護(hù)進(jìn)程,之間的通信是結(jié)合Zookeeper的狀態(tài)變更通知和監(jiān)控通知來處理。nimbus進(jìn)程的主要職責(zé)是管理、協(xié)調(diào)和監(jiān)控集群上運(yùn)行的topology(包括topology的發(fā)布、任務(wù)指派、事件處理時重新指派任務(wù)等)。
supervisor進(jìn)程等待nimbus分配任務(wù)后生成并監(jiān)控worker(jvm進(jìn)程)執(zhí)行任務(wù)。supervisor與worker運(yùn)行在不同的jvm上,如果由supervisor啟動的某個worker因?yàn)殄e誤異常退出(或被kill掉),supervisor會嘗試重新生成新的worker進(jìn)程。
?
當(dāng)使用上游模塊的數(shù)據(jù)進(jìn)行計(jì)算、統(tǒng)計(jì)、分析時,就可以使用消息系統(tǒng),尤其是分布式消息系統(tǒng)。Kafka使用Scala進(jìn)行編寫,是一種分布式的、基于發(fā)布/訂閱的消息系統(tǒng)。
?
?
Kafka的設(shè)計(jì)理念之一就是同時提供離線處理和實(shí)時處理,以及將數(shù)據(jù)實(shí)時備份到另一個數(shù)據(jù)中心,Kafka可以有許多的生產(chǎn)者和消費(fèi)者分享多個主題,將消息以topic為單位進(jìn)行歸納;Kafka發(fā)布消息的程序稱為producer,也叫生產(chǎn)者,預(yù)訂topics并消費(fèi)消息的程序稱為consumer,也叫消費(fèi)者;當(dāng)Kafka以集群的方式運(yùn)行時,可以由一個服務(wù)或者多個服務(wù)組成,每個服務(wù)叫做一個broker,運(yùn)行過程中producer通過網(wǎng)絡(luò)將消息發(fā)送到Kafka集群,集群向消費(fèi)者提供消息。
Kafka通過Zookeeper管理集群配置,選舉leader,以及在Consumer Group發(fā)生變化時進(jìn)行rebalance。Producer使用push模式將消息發(fā)布到broker,Consumer使用pull模式從broker訂閱并消費(fèi)消息。
Kafka可以和Flume一起工作,如果需要將流式數(shù)據(jù)從Kafka轉(zhuǎn)移到hadoop,可以使用Flume代理agent,將Kafka當(dāng)做一個來源source,這樣可以從Kafka讀取數(shù)據(jù)到Hadoop。
?
Zookeeper是一個分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),提供數(shù)據(jù)同步服務(wù)。它的作用主要有配置管理、名字服務(wù)、分布式鎖和集群管理。配置管理指的是在一個地方修改了配置,那么對這個地方的配置感興趣的所有的都可以獲得變更,省去了手動拷貝配置的繁瑣,還很好的保證了數(shù)據(jù)的可靠和一致性,同時它可以通過名字來獲取資源或者服務(wù)的地址等信息,可以監(jiān)控集群中機(jī)器的變化,實(shí)現(xiàn)了類似于心跳機(jī)制的功能。
總結(jié)
以上是生活随笔為你收集整理的大数据技术综合分析!数据采集与预处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Problem 2. number题解
- 下一篇: 页面中切换echarts主题