大資料初步瞭解
- 資料採集
- flume kafka logstash filebeat ...
- 資料儲存
- mysql redis hbase hdfs ...
- 雖然mysql不屬於大資料範疇 但是我在這也列出來了,因為你在工作中離不開它
- mysql redis hbase hdfs ...
- 資料查詢
- hive impala elasticsearch kylin ...
- 資料計算
- 實時計算
- storm sparkstreaming flink ...
- 實時計算
-
- 離線計算
- hadoop spark ...
- 離線計算
- 其他框架
-
zookeeper ...
-
hadoop生態圖
初步掌握
-
zookeeper
- zookeeper是很多大資料框架的基礎,中文名稱是動物園的意思,因為目前的大資料框架的圖示很多都是動物的形狀,所以zookeeper其實就是可以管理很多大資料框架的。針對這個框架,主要掌握如何搭建單節點和叢集,以及掌握如何在zkcli客戶端下對zookeeper的節點進行增刪改查操作即可。
-
hadoop
- 目前企業中一般都是用hadoop2.x的版本了,所以就沒有必要再去學hadoop1.x版本了,hadoop2.x主要包含三大塊
- hdfs 前期,主要學習hdfs的一些命令即可,上傳,下載,刪除,移動,檢視等命令...
- mapreduce 這個需要重點學習下,要理解mr的原理以及程式碼實現,雖然現在工作中真正寫mr的程式碼次數很少了,但是原理還是要理解的。
- yarn 前期瞭解即可,只需要知道yarn是一個資源排程平臺,主要負責給任務分配資源即可,yarn不僅可以給mapreduce任務排程資源,還可以為spark任務排程資源...yarn是一個公共的資源排程平臺,所有滿足條件的框架都可以使用yarn來進行資源排程。
- 目前企業中一般都是用hadoop2.x的版本了,所以就沒有必要再去學hadoop1.x版本了,hadoop2.x主要包含三大塊
-
hive
- hive是一個資料倉儲,所有的資料都是儲存在hdfs上的,具體【資料倉儲和資料庫】的區別大家可以去網上搜尋一下,有很多介紹。其實如果對mysql的使用比較熟悉的話,使用hive也就簡單很多了,使用hive主要是寫hql,hql是hive的sql語言,非常類似於mysql資料庫的sql,後續學習hive的時候主要理解一些hive的語法特性即可。其實hive在執行hql,底層在執行的時候還是執行的mapredce程式。
- 注意:其實hive本身是很強大的,資料倉儲的設計在工作中也是很重要的,但是前期學習的時候,主要先學會如何使用就好了。後期可以好好研究一下hive。
-
hbase
- hbase是一個nosql 資料庫,是一個key-value型別的資料庫,底層的資料儲存在hdfs上。在學習hbase的時候主要掌握 row-key的設計,以及列簇的設計。要注意一個特點就是,hbase基於rowkey查詢效率很快,可以達到秒級查詢,但是基於列簇中的列進行查詢,特別是組合查詢的時候,如果資料量很大的話,查詢效能會很差。
-
redis
- redis也是一個nosql 資料庫和key-value型別的資料庫,但是這個資料庫是純基於記憶體的,也就是redis資料庫中的資料都是儲存在記憶體中的,所以它的一個特點就是適用於快速讀寫的應用場景,讀寫可以達到10W次/秒,但是不適合儲存海量資料,畢竟機器的記憶體是有限的,當然,redis也支援叢集,也可以儲存大量資料。在學習redis的時候主要掌握string,list,set,sortedset,hashmap這幾種資料型別的區別以及使用,還有pipeline管道,這個在批量入庫資料的時候是非常有用的,以及transaction事務功能。
-
flume
- flume是一個日誌採集工具,這個還是比較常用的,最常見的就是採集應用產生的日誌檔案中的資料。一般有兩個流程,一個是flume採集資料儲存到kafka中,為了後面使用storm或者sparkstreaming進行實時處理。另一個流程是flume採集的資料落盤到hdfs上,為了後期使用hadoop或者spark進行離線處理。在學習flume的時候其實主要就是學會看flume官網的文件,學習各種組建的配置引數,因為使用flume就是寫各種的配置。
-
kafka
- kafka 是一個訊息佇列,在工作中常用於實時處理的場景中,作為一箇中間緩衝層,例如,flume->kafka->storm/sparkstreaming。學習kafka主要掌握topic,partition,replicate等的概念和原理。
-
storm
- storm是一個實時計算框架,和hadoop的區別就是,hadoop是對離線的海量資料進行處理,而storm是對實時新增的每一條資料進行處理,是一條一條的處理,可以保證資料處理的時效性。學習storm主要學習topology的編寫,storm並行度的調整,以及storm如何整合kafka實時消費資料。
-
spark
- spark 現在發展的也很不錯,也發展成了一個生態圈,spark裡面包含很多技術,spark core,spark steaming,spark mlib,spark graphx。
- spark生態圈裡麵包含的有離線處理spark core,和實時處理spark streaming,在這裡需要注意一下,storm和spark streaming ,兩個都是實時處理框架,但是主要區別是:storm是真正的一條一條的處理,而spark streaming 是一批一批的處理。
- spark中包含很多框架,在剛開始學習的時候主要學習spark core和spark streaming即可。這個一般搞大資料的都會用到。spark mlib和spark graphx 可以等後期工作需要或者有時間了在研究即可。
-
elasticsearch
- elasticsearch是一個適合海量資料實時查詢的全文搜尋引擎,支援分散式叢集,其實底層是基於lucene的。在查詢的時候支援快速模糊查詢,求count,distinct,sum,avg等操作,但是不支援join操作。elasticsearch目前也有一個生態圈,elk(elasticsearch logstash kibana)是一個典型的日誌收集,儲存,快速查詢出圖表的一整套解決方案。在學習elasticsearch的時候,前期主要學習如何使用es進行增刪改查,es中的index,type,document的概念,以及es中的mapping的設計。
後續內容 再更新
相關文章
- TypeScript初步瞭解TypeScript
- Docker初步瞭解Docker
- ActiveMQ的初步瞭解MQ
- **大資料hadoop瞭解**大資料Hadoop
- 瞭解這幾個大資料應用案例,讓你更瞭解大資料!大資料
- 初步瞭解 JS 繼承JS繼承
- Java集合類初步瞭解Java
- iOS-WKWebView 初步瞭解iOSWebView
- 五個故事瞭解大資料大資料
- JDBC的初步瞭解及使用JDBC
- 初步瞭解軟體測試
- 對函式的初步瞭解函式
- 彙編初步瞭解筆記筆記
- Git 系列(二):初步瞭解 GitGit
- AI時代,還不瞭解大資料?AI大資料
- 初步瞭解AQS是什麼(二)AQS
- Tomcat伺服器初步瞭解Tomcat伺服器
- 初步瞭解PE檔案格式(上)
- 對於加密解密的初步瞭解加密解密
- vue瞭解與初步接觸/使用Vue
- 學習大資料必須瞭解的大資料開發課程大綱大資料
- Flask入門學習---初步瞭解模板Flask
- 初步瞭解URL(介面測試必備)
- 委託初步瞭解(程式碼段展示)
- 大資料瞭解母嬰知識–資訊圖大資料
- 大資料是什麼?一文帶你瞭解大資料的概念!大資料
- 瞭解用於大資料解決方案的邏輯層大資料
- 初步瞭解Windows7下部署SonarWindows
- java基礎-多執行緒初步瞭解Java執行緒
- python之對元組的初步瞭解Python
- 初步瞭解C語言Windows程式設計C語言Windows程式設計
- 你必須瞭解的大資料分析軟體大資料
- 大資料可以幫助企業瞭解金融風險大資料
- 大資料時代下,App資料隱私安全你真的瞭解麼?大資料APP
- 初步瞭解表單操作
- 大資料如何應用在智慧城市中?讓你瞭解什麼是城市大資料。大資料
- 瞭解Oracle資料字典Oracle
- 今夜,大資料帶你瞭解當代青年加班狗大資料