關於從0到1搭建大資料平台,之前的一篇博文《如何從0到1搭建大資料平台》已經給大家介紹過了,接下來我們會分步講解搭建大資料平台的具體注意事項。
當你需要搭建大資料平台的時候一定是傳統的關係型資料庫無法滿足業務的儲存計算要求了,所以首先我們面臨的是海量的資料。
複雜資料的概念和理想資料完全相反。所有資料集都有一定的複雜性,但有一些天生更難處理。通常這些複雜資料集沒有定義結構(沒有行列結構),經常變化,資料質量很差。比如更新的網頁日誌,json資料,xml資料等。
高速資料通常被認為是實時的或是準實時的資料流。資料流本質上是在生成後就發給處理器的資料報,比如物聯網的穿戴裝置,製造業的感測器,車聯網的終端晶元等等。處理實時資料流有很多挑戰,包括在採集時不丟失資料、處理資料流中的重覆記錄、資料如何實時寫入磁碟儲存、以及如何進行實時分析。
具體組價的相關配置可以參考之前的文章《日誌收集元件—flume、logstash、filebeat對比》
企業一般都會會使用傳統的關係型資料庫mysql或oracle等來儲存業務系統資料。每時每刻產生的業務資料,以資料庫一行記錄的形式被直接寫入到資料庫中儲存。
大資料分析一般是基於歷史海量資料,多維度分析,我們不能直接在原始的業務資料庫上直接操作,因為分析的一些複雜sql查詢會明顯的影響業務資料庫的效率,導致業務系統不可用。所以我們通常通過資料庫採集系統直接與企業業務後台資料庫伺服器結合,在業務不那麼繁忙的凌晨,抽取我們想要的資料到分析資料庫或者到hdfs上,最後有大資料處理系統對這些資料進行清洗、組合進行資料分析。
常用資料庫抽取工具:
datax 是乙個異構資料來源離線同步工具,致力於實現包括關係型資料庫(mysql、oracle等)、hdfs、hive、odps、hbase、ftp等各種異構資料來源之間穩定高效的資料同步功能。開源的datax貌似只能單機部署。
sqoop(發音:skup)是一款開源的工具,主要用於在hadoop(hive)與傳統的資料庫(mysql、postgresql...)間進行資料的傳遞,可以將乙個關係型資料庫(例如 : mysql ,oracle ,postgres等)中的資料導進到hadoop的hdfs中,也可以將hdfs的資料導進到關係型資料庫中。可以集群化部署。
有很多外部資料,比如天氣、ip位址等資料,我們通常會爬取相應的**資料儲存。目前常用的爬蟲工具是scrapy,它是乙個爬蟲框架,提供給開發人員便利的爬蟲api介面。開發人員只需要關心爬蟲api介面的實現,不需要關心具體框架怎麼爬取資料。scrapy框架大大降低了開發人員開發速率,開發人員可以很快的完成乙個爬蟲系統的開發。
2023年,google發布**gfs,啟發apache nutch開發了hdfs。2023年,google 又發布了**《mapreduce: simplified data processing on large clusters》,doug cutting等人實現計算框架mapreduce ,並與hdfs結合來更好的支援該框架。2023年專案從butch搜尋引擎中獨立出來,成為了現在的hadoop。
gfs隱藏了底層的負載均衡,切片備份等細節,使複雜性透明化,並提供統一的檔案系統介面。其成本低,容錯高,高吞吐,適合超大資料集應用場景。
通常關係型資料庫儲存的都是結構化的資料,我們抽取後會直接放到hdfs上作為離線分析的資料來源。
在實際應用中,我們有很多資料可能不需要複雜的分析,只需要我們能儲存,並且提供快速查詢的功能。hbase在hdfs基礎上提供了bigtable的能力; 並且基於列的模式進行儲存。列儲存設計的有事減少不必要的字段占用儲存,同時查詢的時候也可以只對查詢的指定列有io操作。hbase可以儲存海量的資料,並且可以根據rowkey提供快速的查詢效能,是非常好的明細資料儲存方案,比如電商的訂單資料就可以放入hbase提供高效的查詢。
當然還有其他的儲存引擎,比如es適合文字搜尋查詢等。
了解了上面的技術棧後,在實際資料接入中,你還會面臨各種問題,比如如何考慮確保資料一致性,保障資料不能丟失,資料採集儲存的效率,不能產生資料積壓等,這些都需要對每個元件進行研究,適配適合你自己業務系統的引數,用最少的資源,達到最好的結果。
歷史好文推薦
如何從0到1搭建大資料平台
日誌收集元件—flume、logstash、filebeat對比
你是分析師,還是「提數機」?
談談etl中的資料質量
從0到1搭建自助分析平台
自助分析平台是構建在大資料平台之上的,依託於大資料平台的資料研發能力,通過統一的資料服務,實現對資料查詢 分析的統一管理,為企業業務分析提供高效的資料決策支援,同時也避免資料工程師陷入繁雜的提數需求中。自助分析平台是有計算機基礎的業務人員能夠快速上手的前端產品,既要有大資料的處理效能,有需要有簡單好...
大資料從0到一 Hadoop
系統瓶頸 google大資料技術 儲存容量 bigtable 讀寫速度 gfs 計算效率 mapreduce 在官方 進行學習 在官方 學習英文文件進行學習 專案實戰對知識點進行鞏固和融會貫通 社群活動 meetup infoq hadoop 分布式儲存 計算 可拓展 穩定的開源框架 可以做 搭建大...
從0學大資料 1初識HDFS
hdfs是在乙個大規模分布式伺服器集群上,對資料分片後進行並行讀寫及冗餘儲存。hdfs的關鍵元件有兩個 datanode,namenode。datanode負責檔案資料的儲存和讀寫操作,hdfs將檔案資料分割成若干資料塊 block 每個datanode儲存一部分資料塊,這樣檔案就分布儲存在整個hd...