好程式設計師大資料分享零基礎學習Hadoop該如何下手
零基礎學習Hadoop 該如何下手,很多同學是透過學習 hadoop 來學習大資料的 , 學習資料可能是以圖書為主要參考方向,《 hadoop 權威指南》的確是一本很好的入門大資料圖書,但大資料系統本身是分散式系統,所以我以為分散式系統的相關概念才是掌握大資料各類框架、知識的基礎。
1 入門:
hadoop 框架是集儲存 (hdfs) 、計算 (mr 計算模型 ) 、資源管理 (yarn) 等於一體的綜合框架,當然它是一個歷史的階段產物,刨除此因我們來看看大家所熟知的 wordcount 的具體做法 (mr) 是什麼場景下如何進行計算的?
1-1 分散式系統
首先wordcount 程式放到傳統單機模式下也可以處理,這裡大家一定會想到多執行緒、檔案切割等實現方式,簡單來說平行計算的想法由來已久,隨著硬體的不斷進步、效能不斷提升,多核計算也已發展多年了,與此同時這個世界產生的資料更是增長飛速,那麼原來單機下多工多執行緒的計算方式與其後的多核並行都遇到了一個處理速度與處理資料間嚴重不匹配的問題,如何提高計算能力是發展的必然,那麼叢集方式解決了計算資源水平擴充套件的能力並同時具有並行性,這是目前的核心思想,我們可以理解目前的叢集(一個黑盒子)類比於傳統單機方式,叢集中的節點間平行計算涉及到了主從架構、叢集管理、訊息通訊、容錯處理等等方面,然後這些都是分散式系統所要考慮和解決的問題,因為它本身就是分散式系統。
1-2 分散式儲存
剛才簡單提到了分散式系統,說到了計算方面,其實還有一個隱含的問題是要計算必須有資料,必然涉及到儲存,所以儲存才是根本,那麼如何使用分散式儲存系統(hdfs )就必須瞭解其的組成部分(如什麼是塊、檔案系統、分散式檔案系統)、使用方式(讀寫 HDFS ),但由於大部分同學都是相對熟悉關係型資料庫及它的使用方式 SQL ,這些都是應用層面的事情具體底層的各種情況並不瞭解,或者沒有參與資料庫軟體的開發、對於檔案類的學習工作經驗相對較少,對其中提到的檔案 IO 操作、序列化、壓縮、內建或自定義檔案讀寫格式、讀寫方式有種陌生,因為 hdfs 本質是檔案系統。
1-3 分散式計算
mr 計算模型也是之前接觸較少,沒有具體的實際經驗感受,比如 mr 具體能做什麼、什麼場景下使用等等,因為之前大家接觸的是 OLTP (聯機事務處理【 OLTP Online Transaction Processing 】
聯機事務處理,表示事務性非常高的系統,一般都是高可用的線上系統,以小的事務以及小的查詢為主,以傳統的關係型資料庫為主要應用,主要是基本的、日常的事務處理,主要為業務資料,例如銀行交易)操作,而大資料起初是用來進行資料探勘的它更多的是一個OLAP (聯機分析處理【 OLAP Online Analytical Processing 】:
聯機分析處理,有的時候也叫DSS 決策支援系統,就是我們說的資料倉儲,重點主要是面向分析,會產生大量的查詢,一般很少涉及增刪改。)操作, mr 計算模型的 map 操作和 reduce 操作是我們經常遇到的需求, map 操作負責資料清洗、轉換, reduce 操作負責資料聚合,同時 sql 裡的 select 子句和 group by 子句不也對應了這類實際需求嗎,只是方式方法不同而已。
2 進階
2-1 建議以分散式系統的角度來看待大資料中的各類框架,瞭解下分散式理論如 CAP 理論、主從架構方式等等
2-2 當然由於這些框架所處理的不是同一方向的問題,所以我們首先框架分類,參考如下
技術架構
```
1 資料採集: flume 、 logstash
2 資料儲存: hdfs 、 hbase 、 alluxio 、 es 、 neo4j 、 janusGraph 、 redis 、 mongodb 、 tidb
3 資料計算: hive 、 impala 、 spark 、 flink 、 druid
4 資料通道: kafka 、 pulsar
5 任務排程: azkaban 、 airflow
6 多維資料模型: kylin
7 資料同步: sqoop 、 datax 、 canal
8 資料格式: parquet 、 orc 、 csv 、 json
9 協調服務: zookeeper
10 監控: zabbix 、 prometheus
3 推薦
3.1 大資料的各類框架 官網永遠是第一手資源,一定要看
3.2 大量的公眾號、 stackoverflow 、 github 等
3.3 google 查詢資源
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2656762/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 零基礎學習Hadoop,該如何下手?Hadoop
- 好程式設計師大資料學習路線Hadoop學習乾貨分享程式設計師大資料Hadoop
- 好程式設計師大資料學習路線分享Hadoop機架感知程式設計師大資料Hadoop
- 好程式設計師大資料學習路線分享大資料之基礎語法程式設計師大資料
- 好程式設計師大資料學習路線分享MAPREDUCE程式設計師大資料
- 好程式設計師大資料學習路線分享SparkSQl程式設計師大資料SparkSQL
- 好程式設計師分享Java轉行大資料該怎麼規劃學習?程式設計師Java大資料
- 好程式設計師大資料培訓分享Hadoop入門學習線路圖程式設計師大資料Hadoop
- 好程式設計師大資料學習路線分享Hbase指令學習程式設計師大資料
- 好程式設計師大資料學習路線分享大資料之字串程式設計師大資料字串
- 好程式設計師大資料學習路線分享hadoop常用四大模組檔案程式設計師大資料Hadoop
- 好程式設計師大資料教學點睛:Hadoop基礎篇程式設計師大資料Hadoop
- 好程式設計師大資料學習路線分享Scala系列之基礎篇程式設計師大資料
- 好程式設計師大資料學習路線分享Hadoop階段的高可用配置程式設計師大資料Hadoop
- 好程式設計師大資料學習路線分享Map學習筆記程式設計師大資料筆記
- 好程式設計師大資料學習路線分享HDFS學習總結程式設計師大資料
- 好程式設計師大資料學習路線分享hdfs學習乾貨程式設計師大資料
- 好程式設計師大資料學習路線分享Actor學習筆記程式設計師大資料筆記
- 好程式設計師大資料學習路線分享Lambda表示式程式設計師大資料
- 好程式設計師大資料學習路線分享UDF函式程式設計師大資料函式
- 好程式設計師大資料學習路線分享spark之Scala程式設計師大資料Spark
- 好程式設計師大資料學習路線分享HDFS讀流程程式設計師大資料
- 好程式設計師大資料學習路線分享AWK詳解程式設計師大資料
- 好程式設計師大資料學習路線分享大資料之執行緒程式設計師大資料執行緒
- 好程式設計師大資料培訓分享:Hadoop叢集同步程式設計師大資料Hadoop
- 好程式設計師大資料教程分享之Hadoop優缺點程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享大資料還學嗎?程式設計師大資料
- 好程式設計師大資料學習路線分享Scala系列之物件程式設計師大資料物件
- 好程式設計師大資料學習路線分享高階函式程式設計師大資料函式
- 好程式設計師大資料培訓分享Hadoop怎樣處理資料?程式設計師大資料Hadoop
- 好程式設計師大資料學習路線分享TCP和UDP學習筆記程式設計師大資料TCPUDP筆記
- 好程式設計師大資料培訓分享Hadoop入門進階程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享Hadoop的shuffle過程程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享Hadoop分散式叢集程式設計師大資料Hadoop分散式
- 好程式設計師大資料培訓分享怎樣進行大資料入門學習程式設計師大資料
- 好程式設計師Java分享零基礎學Java要掌握哪些技能?程式設計師Java
- 好程式設計師大資料學習路線分享什麼是Hash表程式設計師大資料
- 好程式設計師大資料學習路線分享Scala系列之抽象類程式設計師大資料抽象