零基礎(chǔ)學(xué)習(xí)Hadoop該如何下手?很多同學(xué)是通過(guò)學(xué)習(xí)hadoop來(lái)學(xué)習(xí)大數(shù)據(jù)的,學(xué)習(xí)資料可能是以圖書(shū)為主要參考方向,《hadoop權(quán)威指南》的確是一本很好的入門(mén)大數(shù)據(jù)圖書(shū),但大數(shù)據(jù)系統(tǒng)本身是分布式系統(tǒng),所以我以為分布式系統(tǒng)的相關(guān)概念才是掌握大數(shù)據(jù)各類(lèi)框架、知識(shí)的基礎(chǔ)。 ![]() 1 入門(mén): hadoop框架是集存儲(chǔ)(hdfs)、計(jì)算(mr計(jì)算模型)、資源管理(yarn)等于一體的綜合框架,當(dāng)然它是一個(gè)歷史的階段產(chǎn)物,刨除此因我們來(lái)看看大家所熟知的wordcount的具體做法(mr)是什么場(chǎng)景下如何進(jìn)行計(jì)算的? 1-1 分布式系統(tǒng) 首先wordcount程序放到傳統(tǒng)單機(jī)模式下也可以處理,這里大家一定會(huì)想到多線程、文件切割等實(shí)現(xiàn)方式,簡(jiǎn)單來(lái)說(shuō)并行計(jì)算的想法由來(lái)已久,隨著硬件的不斷進(jìn)步、性能不斷提升,多核計(jì)算也已發(fā)展多年了,與此同時(shí)這個(gè)世界產(chǎn)生的數(shù)據(jù)更是增長(zhǎng)飛速,那么原來(lái)單機(jī)下多任務(wù)多線程的計(jì)算方式與其后的多核并行都遇到了一個(gè)處理速度與處理數(shù)據(jù)間嚴(yán)重不匹配的問(wèn)題,如何提高計(jì)算能力是發(fā)展的必然,那么集群方式解決了計(jì)算資源水平擴(kuò)展的能力并同時(shí)具有并行性,這是目前的核心思想,我們可以理解目前的集群(一個(gè)黑盒子)類(lèi)比于傳統(tǒng)單機(jī)方式,集群中的節(jié)點(diǎn)間并行計(jì)算涉及到了主從架構(gòu)、集群管理、消息通訊、容錯(cuò)處理等等方面,然后這些都是分布式系統(tǒng)所要考慮和解決的問(wèn)題,因?yàn)樗旧砭褪欠植际较到y(tǒng)。 1-2 分布式存儲(chǔ) 剛才簡(jiǎn)單提到了分布式系統(tǒng),說(shuō)到了計(jì)算方面,其實(shí)還有一個(gè)隱含的問(wèn)題是要計(jì)算必須有數(shù)據(jù),必然涉及到存儲(chǔ),所以存儲(chǔ)才是根本,那么如何使用分布式存儲(chǔ)系統(tǒng)(hdfs)就必須了解其的組成部分(如什么是塊、文件系統(tǒng)、分布式文件系統(tǒng))、使用方式(讀寫(xiě)HDFS),但由于大部分同學(xué)都是相對(duì)熟悉關(guān)系型數(shù)據(jù)庫(kù)及它的使用方式SQL,這些都是應(yīng)用層面的事情具體底層的各種情況并不了解,或者沒(méi)有參與數(shù)據(jù)庫(kù)軟件的開(kāi)發(fā)、對(duì)于文件類(lèi)的學(xué)習(xí)工作經(jīng)驗(yàn)相對(duì)較少,對(duì)其中提到的文件IO操作、序列化、壓縮、內(nèi)置或自定義文件讀寫(xiě)格式、讀寫(xiě)方式有種陌生,因?yàn)?/span>hdfs本質(zhì)是文件系統(tǒng)。 1-3 分布式計(jì)算 mr計(jì)算模型也是之前接觸較少,沒(méi)有具體的實(shí)際經(jīng)驗(yàn)感受,比如mr具體能做什么、什么場(chǎng)景下使用等等,因?yàn)橹按蠹医佑|的是OLTP(聯(lián)機(jī)事務(wù)處理【OLTP Online Transaction Processing】 聯(lián)機(jī)事務(wù)處理,表示事務(wù)性非常高的系統(tǒng),一般都是高可用的在線系統(tǒng),以小的事務(wù)以及小的查詢(xún)?yōu)橹?,以傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)為主要應(yīng)用,主要是基本的、日常的事務(wù)處理,主要為業(yè)務(wù)數(shù)據(jù),例如銀行交易)操作,而大數(shù)據(jù)起初是用來(lái)進(jìn)行數(shù)據(jù)挖掘的它更多的是一個(gè)OLAP(聯(lián)機(jī)分析處理【OLAP Online Analytical Processing】: 聯(lián)機(jī)分析處理,有的時(shí)候也叫DSS決策支持系統(tǒng),就是我們說(shuō)的數(shù)據(jù)倉(cāng)庫(kù),重點(diǎn)主要是面向分析,會(huì)產(chǎn)生大量的查詢(xún),一般很少涉及增刪改。)操作,mr計(jì)算模型的map操作和reduce操作是我們經(jīng)常遇到的需求,map操作負(fù)責(zé)數(shù)據(jù)清洗、轉(zhuǎn)換,reduce操作負(fù)責(zé)數(shù)據(jù)聚合,同時(shí)sql里的select子句和group by子句不也對(duì)應(yīng)了這類(lèi)實(shí)際需求嗎,只是方式方法不同而已。 2 進(jìn)階 2-1 建議以分布式系統(tǒng)的角度來(lái)看待大數(shù)據(jù)中的各類(lèi)框架,了解下分布式理論如CAP理論、主從架構(gòu)方式等等 2-2 當(dāng)然由于這些框架所處理的不是同一方向的問(wèn)題,所以我們首先框架分類(lèi),參考如下 ![]() ![]() 技術(shù)架構(gòu) ``` 1 數(shù)據(jù)采集:flume、logstash 2 數(shù)據(jù)存儲(chǔ):hdfs、hbase、alluxio、es、neo4j、janusGraph、redis、mongodb、tidb 3 數(shù)據(jù)計(jì)算:hive、impala、spark、flink、druid 4 數(shù)據(jù)通道:kafka、pulsar 5 任務(wù)調(diào)度:azkaban、airflow 6 多維數(shù)據(jù)模型:kylin 7 數(shù)據(jù)同步:sqoop、datax、canal 8 數(shù)據(jù)格式:parquet 、orc 、csv 、json 9 協(xié)調(diào)服務(wù):zookeeper 10 監(jiān)控:zabbix、prometheus 3 推薦 3.1 大數(shù)據(jù)的各類(lèi)框架 官網(wǎng)永遠(yuǎn)是第一手資源,一定要看 3.2 大量的公眾號(hào)、stackoverflow、github等 3.3 google查詢(xún)資源 |
|
來(lái)自: 好程序員IT > 《大數(shù)據(jù)培訓(xùn)教程》