
大數(shù)據(jù)技術(shù)的體系龐大且復(fù)雜,基礎(chǔ)的技術(shù)包含數(shù)據(jù)的采集、數(shù)據(jù)預(yù)處理、分布式存儲、NoSQL數(shù)據(jù)庫、數(shù)據(jù)倉庫、機(jī)器學(xué)習(xí)、并行計(jì)算、可視化等各種技術(shù)范疇和不同的技術(shù)層面。
數(shù)據(jù)采集與預(yù)處理
對于各種來源的數(shù)據(jù),包括移動互聯(lián)網(wǎng)數(shù)據(jù)、社交網(wǎng)絡(luò)的數(shù)據(jù)等,這些結(jié)構(gòu)化和非結(jié)構(gòu)化的海量數(shù)據(jù)是零散的,也就是所謂的數(shù)據(jù)孤島,此時(shí)的這些數(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ù)量比較小的時(shí)候,可以寫個(gè)定時(shí)的腳本將日志寫入存儲系統(tǒng),但隨著數(shù)據(jù)量的增長,這些方法無法提供數(shù)據(jù)安全保障,并且運(yùn)維困難,需要更強(qiáng)壯的解決方案。
Flume NG作為實(shí)時(shí)日志收集系統(tǒng),支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù),同時(shí),對數(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作為中間臨時(shí)存儲,保存所有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í)時(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í)從多個(gè)來源采集數(shù)據(jù)、轉(zhuǎn)換數(shù)據(jù),然后將數(shù)據(jù)發(fā)送到您最喜歡的“存儲庫”中。一般常用的存儲庫是Elasticsearch。Logstash支持各種輸入選擇,可以在同一時(shí)間從眾多常用的數(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)移的工具,可以將一個(gè)關(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啟用了一個(gè)MapReduce作業(yè)(極其容錯的分布式并行計(jì)算)來執(zhí)行任務(wù)。Sqoop的另一大優(yōu)勢是其傳輸大量結(jié)構(gòu)化或半結(jié)構(gòu)化數(shù)據(jù)的過程是完全自動化的。
流式計(jì)算是行業(yè)研究的一個(gè)熱點(diǎn),流式計(jì)算對多個(gè)高吞吐量的數(shù)據(jù)源進(jìn)行實(shí)時(shí)的清洗、聚合和分析,可以對存在于社交網(wǎng)站、新聞等的數(shù)據(jù)信息流進(jìn)行快速的處理并反饋,目前大數(shù)據(jù)流分析工具有很多,比如開源的strom,spark streaming等。
Strom集群結(jié)構(gòu)是有一個(gè)主節(jié)點(diǎn)(nimbus)和多個(gè)工作節(jié)點(diǎn)(supervisor)組成的主從結(jié)構(gòu),主節(jié)點(diǎn)通過配置靜態(tài)指定或者在運(yùn)行時(shí)動態(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ù)指派、事件處理時(shí)重新指派任務(wù)等)。supervisor進(jìn)程等待nimbus分配任務(wù)后生成并監(jiān)控worker(jvm進(jìn)程)執(zhí)行任務(wù)。supervisor與worker運(yùn)行在不同的jvm上,如果由supervisor啟動的某個(gè)worker因?yàn)殄e誤異常退出(或被kill掉),supervisor會嘗試重新生成新的worker進(jìn)程。
當(dāng)使用上游模塊的數(shù)據(jù)進(jìn)行計(jì)算、統(tǒng)計(jì)、分析時(shí),就可以使用消息系統(tǒng),尤其是分布式消息系統(tǒng)。Kafka使用Scala進(jìn)行編寫,是一種分布式的、基于發(fā)布/訂閱的消息系統(tǒng)。Kafka的設(shè)計(jì)理念之一就是同時(shí)提供離線處理和實(shí)時(shí)處理,以及將數(shù)據(jù)實(shí)時(shí)備份到另一個(gè)數(shù)據(jù)中心,Kafka可以有許多的生產(chǎn)者和消費(fèi)者分享多個(gè)主題,將消息以topic為單位進(jìn)行歸納;Kafka發(fā)布消息的程序稱為producer,也叫生產(chǎn)者,預(yù)訂topics并消費(fèi)消息的程序稱為consumer,也叫消費(fèi)者;當(dāng)Kafka以集群的方式運(yùn)行時(shí),可以由一個(gè)服務(wù)或者多個(gè)服務(wù)組成,每個(gè)服務(wù)叫做一個(gè)broker,運(yùn)行過程中producer通過網(wǎng)絡(luò)將消息發(fā)送到Kafka集群,集群向消費(fèi)者提供消息。Kafka通過Zookeeper管理集群配置,選舉leader,以及在Consumer Group發(fā)生變化時(shí)進(jìn)行rebalance。Producer使用push模式將消息發(fā)布到broker,Consumer使用pull模式從broker訂閱并消費(fèi)消息。大數(shù)據(jù)技術(shù)學(xué)習(xí)交流kou裙,數(shù)字515數(shù)字269數(shù)字485,Kafka可以和Flume一起工作,如果需要將流式數(shù)據(jù)從Kafka轉(zhuǎn)移到hadoop,可以使用Flume代理agent,將Kafka當(dāng)做一個(gè)來源source,這樣可以從Kafka讀取數(shù)據(jù)到Hadoop。
Zookeeper是一個(gè)分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),提供數(shù)據(jù)同步服務(wù)。它的作用主要有配置管理、名字服務(wù)、分布式鎖和集群管理。配置管理指的是在一個(gè)地方修改了配置,那么對這個(gè)地方的配置感興趣的所有的都可以獲得變更,省去了手動拷貝配置的繁瑣,還很好的了數(shù)據(jù)的可靠和一致性,同時(shí)它可以通過名字來獲取資源或者服務(wù)的地址等信息,可以監(jiān)控集群中機(jī)器的變化,實(shí)現(xiàn)了類似于心跳機(jī)制的功能。
以上就是關(guān)于“大數(shù)據(jù)學(xué)習(xí)必須掌握的數(shù)據(jù)采集與預(yù)處理核心技術(shù)”的內(nèi)容介紹,希望對大家學(xué)習(xí)有所幫助。想要了解更多大數(shù)據(jù)學(xué)習(xí)培訓(xùn)相關(guān)資訊歡迎來咨詢。