先從hadoop說起。
仔細想下,有點道理:如果只是作為業務層面的開發者,對於大資料技術而言,確實只學spark就可以了,但是如果是系統架構師的話,hadoop還是要學的,因為作為大資料的系統架構師,沒辦法迴避hadoop。
hadoop的三個概念元件,
spark在這裡主要替代的是mapreduce,
yarn和hdfs還沒有發現其他東西能替代。
yarn以初學者的理解,就是nodemanager,負責管理分布式檔案系統各個節點的。
hdfs-
hadoop distributed file system 的架構圖挺好看的,給像我這樣的小白們再留念一下
說白了,玩大資料是離不開hadoop的hdfs的,只是hadoop管的挺好,不用系統開發的人操心分布式檔案系統的事了。
說hadoop,就有必要提下hive這個東西,hive是乙個資料倉儲軟體,不是資料倉儲,也就是說它不負責資料儲存,只是提供一種機制去對映hdfs上的資料,並且可以通過比較通俗易懂的類sql語言進行一些資料操作,關於hive與hadoop的關係,有副好圖
spark的spark sql也可以取代hive sql。
好了,分割線---------------------
接下來說data serialization,資料序列化,其實沒啥可說的,作為初學者,只是認為:如果hdfs是資料庫的話,資料序列化就是hibernate的entity,只是這個entity更適合用於網路傳輸。
幾種資料序列化的框架需要了解下,要不出門被人騙:
protocol buffers....google開發的,牛
好了,分割線---------------------
接下來說下 columnar storage 列式儲存,這個主要是對應行式儲存說的,行式儲存就是我們最常見的關係型資料庫,資料記錄是一條一條的。
列式儲存和行式儲存有啥區別呢:
列式儲存的keyspace概念,相當於關係型資料庫的schema;column family概念相當於關係型資料的table
column family裡的資料的格式是這樣的:
column family裡的詳細資料就像這樣:
column family每行資料的列可以是不同的,名字不同、個數也不同,至於這樣儲存的好處,相信dba們一眼就可以看出來,分庫、擴充套件,都方便很多,而且資料更容易壓縮,對於資料的載入和查詢,效率會更高。
說這麼多,乙個大資料系統,要列式儲存幹嘛啊?
大資料架構一直流行lambda架構,lambda架構把大資料系統分成三層,批處理層、服務層和速度層,分這麼多層幹嘛,因為大資料的查詢速度慢啊,高延遲,所以lambda架構在批處理層做查詢的預處理,就是先在hdfs查出乙個批處理檢視,然後把批處理檢視儲存到更快的更方便查詢的介質上,以便更快的響應查詢,這個更快的更方便查詢的介質
,就是列式儲存的檔案格式了。
好了,分割線---------------------
接下來說下nosql, nosql 不是no sql!的意思,是not only sql的意思,nosql資料庫可謂已經百花齊放了。
《大資料系統構建》這本書作者是lambda架構的提出者,他在該書上說,「在很多方面,選擇使用nosql資料庫,就像在程式中,在hashmap、sortedmap、linkedlist或者vector之間選擇使用資料結構一樣。你事先要知道自己想做什麼,然後恰當的進行選擇」。
這樣就可以了,不必把自己侷限在選擇哪一種資料庫上,用的時候,直接用就可以了,因為每種nosql資料庫確實是為了解決某一方面的問題而存在的。
現在的nosql資料庫大概可分為三類:列式儲存的、面向文件的和圖形化的。
列式儲存的nosql資料庫主要面向大資料,包括cassandra、hbase等。
面向文件的nosql資料庫包括:mongodb、couchdb等
圖形化nosql資料庫主要是描述關係的,包括neo4j、graphdb等。
至於各種nosql資料庫的對比,下次再談吧。
好了,分割線---------------------
還有最後乙個要介紹的:distributed sql query engine 分布式sql查詢引擎,分布式sql查詢引擎的大部分是為了取代mapreduce而存在的,有的支援更多,比如支援nosql資料庫的查詢,甚至支援jdbc/odbc介面,包括:
impala
presto
apache drill 等
以上就是乙個初學者看到的大資料生態圈,更深入的,以後我們一起探索吧。
大資料生態圈所涉及的技術
tb pb 海量資料的處理需求不再侷限在離線計算當中 但是這種價值需要在海量資料之上,通過資料分析與機器學習更快速的挖掘出來 所謂資料採集並不是我們理解的資料爬蟲,尤其是我們在工作中遇到的資料很多都是來自系統內的資料,來自資料庫的資料來自日誌的資料。但是這些資料維度是非常多並且複雜的,所以在分析前我...
大資料初學者怎樣學習?
很多人都知道 大資料很火,就業很好,薪資很高,想往大資料方向發展。但該學哪些技術,學習路線是什麼樣的呢?用不用參加大資料培訓呢?如果自己很迷茫,為了這些原因想往大資料方向發展,也可以,那麼大講台老師就想問一下,你的專業是什麼,對於計算機 軟體,你的興趣是什麼?是計算機專業,對作業系統 硬體 網路 伺...
大資料大綱 大資料生態圈所涉及的技術
大資料帶來的革命性變革 1 成本降低 2 軟體容錯,硬體故障視為常態 3 簡化分布式平行計算 資料分析師的必備技能 資料採集 所謂資料採集並不是我們理解的資料爬蟲,尤其是我們在工作中遇到的資料很多都是來自系統內的資料,來自資料庫的資料來自日誌的資料。但是這些資料維度是非常多並且複雜的,所以在分析前我...