寫給後端的Hadoop初級入門教程:概念篇

前言:

Hello你們好,我是韓數。距離咱們上一個系列寫給後端的Nginx初級入門教程已通過去整整25天了,中間穿插了兩篇區塊鏈相關的文章,其實吧,這二十來天我一直在憋大招,那就是這個最新的系列寫給後端的Hadoop初級入門教程,因爲Hadoop自己的技術細節仍是不少的,Hadoop基礎環境的搭建分佈式僞分佈式的部署集羣啓動的準備,hdfs文件系統MR編程模型,以及最後的優化等等,整個一套寫下來工做量仍是蠻大的,好在我快放寒假了(開心),這樣使得我有充足的時間和精力去寫這套教程,一來是爲了幫助本身在寫做的時候更加深刻地理解這方面的知識,而來是但願能夠幫助到那些剛剛準備入門大數據的朋友們去理解和使用Hadoop這門技術。畢竟你們都知道,如今網上搜到的那些技術教程,質量良莠不齊,一不當心踩到坑就是:java

一電腦,一根菸,一篇教程學半天,調試半天卻不對,想送做者上青天。git

好溼好溼,本篇文章做爲整套Hadoop入門教程的第一篇,咱們依然從最基礎的概念提及,什麼是大數據,大數據如何影響咱們的生活?什麼是Hadoop,Hadoop和其餘大數據技術相比又有哪些優點?明白了這些問題,我相信再學大數據,雖然不能說有buff加成,可是至少知道本身接下來要學的這玩意兒是個啥了。github

不廢話,直接上東西編程

什麼是大數據:

大數據 (Big Data) : 主要是指沒法在必定範圍內用常規軟件工具進行捕捉,管理和處理的數據集合,是須要新處理模式才能具備更強的決策力,洞察發現力和流程優化能力的海量,高增加率和多樣化的信息資產後端

一句話解釋:大數據就是大量數據,數據多到傳統方案沒法處理的程度。架構

固然數據的體量並非最重要的,重要的是隱藏在這些數據中的信息,這些信息不管是在商業上仍是在研究上都有着巨大的價值,電商經過挖掘這些數據中的信息爲每一個用戶畫像,而且推薦合適的商品給用戶增長購買,固然,也能夠順便調整一下改個價格殺個熟什麼的。框架

大數據的單位:

但咱們畢竟是嚴謹的理科生啊,你說大數據大數據,多大才是大數據?爲了解決這個問題,減小撕逼,科學家就制定了一系列的數據單位,從小到大依次是:運維

bit Byte KB MB GB TB PB EB ZB YB BB NB(牛逼)DB(呆逼)分佈式

固然,光講這些單位有什麼意思,我怎麼能知道這些單位能存多少數據?爲了方便你們更加直接的感覺到這些數據單位的威力,我找了一些小栗子:工具

  • 全世界所產生的印刷材料的數據大概是200PB。
  • 全世界人類總共說過的話大概是5EB。
  • 國外知名網站P站2017年網站產生的總數據量爲 3732PB 。
  • 一百萬個漢字大概所須要的內存是2MB。

剛纔好像混入了什麼奇怪的東西。

大數據的特色:

  • 大量:必須的,不大都很差意思叫大數據。
  • 高速:這麼多數據確定要快速消化掉的,處理幾十年也等不起啊,今年雙十一的成交額總不能算到明年雙十一再公佈吧。
  • 多樣:不一樣的場景會產生不一樣的數據,優酷就是用戶瀏覽數據,視頻數據,QQ音樂就是音樂數據。
  • 低價值密度:這個意思是即便數據量很大,可是咱們關注的始終的特定的部分,而非總體,就像警察叔叔調監控同樣,一年前一個月前的數據一般對他來講是沒什麼用的,他只要那麼幾個關鍵節點的監控數據就能夠了。

應用場景就不說了,哪都是應用場景。

Hadoop是什麼?

知道了什麼是大數據,咱們就得思考另一個問題,弄這麼多的數據我放哪啊?

槓精:不明擺着的麼,固然放硬盤裏啊,要不放哪兒,還能寫紙上? 我:硬盤我知道,但是萬一這塊硬盤壞了,那數據不就沒了嗎?

路人:你係不繫傻,你多放幾塊硬盤,分別放上去不就好了嗎?

這個時候Hadoop來了,弟弟們都往邊上靠靠,大家那種辦法太笨拙,交給我,輕輕鬆鬆地給你搞定,小意思。

Hadoop是一個由Apache基金會所開發的分佈式系統基礎架構,主要用來解決大數據的存儲和分析計算問題。

固然,HadoopSpring同樣,到如今已經無法去僅僅理解爲Hadoop這門技術了,就像你跟別人說,我這個新電商項目基於Spring寫的,那別人確定不會以爲你只用了Spring,會以爲你可能用了Spring MVCbootJPA等一系列Spring生態的技術。一樣地,Hadoop也是如此,不只僅是表明Hadoop自己這項技術,同時也表明圍繞Hadoop的技術生態。

並且你們千萬不要把事情想複雜,覺得分佈式存儲什麼這些概念都是多麼深奧的東西,的確,官方概念確實是有點抽象晦澀了,可是我以爲,任何一項理論都必定來源於生活,由於是生活給予了他們靈感,可是生活並非十分複雜的,因此任何深奧複雜的理論必定能夠在生活中找到一個通俗易懂的解釋。

什麼是分佈式存儲,不跟你們吹,我初中的時候就已經在搞這個了,那時候流行看玄幻小說,那種大部頭知道吧,特厚,一般一個班就只有那麼一本,被教導主任沒收了就完蛋了,誰都沒得看,因而當時盛行把一本玄幻小說一頁一頁撕下來,每一個同窗幾頁,你們互相換着看,就算老師發現了也就只是沒收了一部分,沒辦法所有殲滅。你看,分佈式有了,存儲有了,這不就是分佈式存儲嗎?爲了防止一本書被老師沒收了致使這本書不完整,那就買三本,也這麼幾頁幾頁分開存,這不就是多備份嗎,沒那麼複雜,別老糾結那些學者寫的給學者看的概念。

Hadoop發展史:

這個也沒啥好講的,我這裏就列幾個關鍵的點,感興趣的朋友下去能夠本身搜,網上一搜一大堆。

  • 一個叫Dung Cutting 沒事用java寫了一個全文搜索的框架 - Lucene
  • 數據量大的時候,Lucene性能跟不上了就。
  • 巧了,Google自己也是作全文搜索的,爲啥人家性能就那麼頂呢?
  • 經過學習谷歌,搞了個Nutch
  • 後來谷歌公開了部分GFSMapReduce的細節。
  • Dung Cutting 一看這答案都給本身了,因而花了兩年,注意是業餘時間,本身實現了DFSMapReduce,`Nutch·性能一下字就提上去了,一個字,牛逼。
  • 後來Hadoop做爲Lucene子項目Nutch的一部分被正式引進了Apache基金會。
  • 而後Map-ReduceNDFS一塊被整合進了Hadoop項目裏面,Hadoop就這麼誕生了。

爲啥人家業餘時間就能搞出來這麼牛逼的東西,我業餘時間王者榮耀王者都上不去,難道有中間商賺差價?

Hadoop發行版本:

和Linux差很少,不一樣的公司在此基礎上分別定製了本身的發行版本,Hadoop發行版本主要有三個,分別是:

  • Apache版本:最原始(最基礎)的版本,對於入門學習最好,畢竟是出生地,血統也是最正的。
  • Cloudera :在大型互聯網企業中用的較多。
  • Hortonworks:文檔比較全。

不用想,咱們確定選Apache,也沒啥別的緣由,就是由於它基礎,簡單,不要錢。

Hadoop優點是什麼?

Hadoop爲啥這麼牛逼,致使咱們如今一說大數據開發,就會想到Hadoop?

畢竟寫程序不是談戀愛,沒什麼就算你很差我也依然愛你這回事,咱們壞得很,哪一個好用使哪一個。

Hadoop在江湖中能混到今天的地位主要靠如下四點:

  • 高可靠性Hadoop底層使用多個數據副本,即便Hadoop某個計算元素或存儲出現故障,也不會致使數據的丟失,想一想上面講的分佈式存儲的例子。
  • 高擴展性:在集羣間分配任務數據,能夠方便的擴展數以千計的節點。就是,有一天運維早上一上班,臥槽,集羣存儲不夠了,可是問題不大,由於在集羣中加入一個新的節點或者去掉一個節點都分分鐘的事兒。
  • 高效性:在MapReduce的思想下,Hadoop是並行工做的,以加快任務處理速度。
  • 高容錯性:可以將失敗的任務從新分配。

你說了一堆優勢,Hadoop就沒啥缺點嗎?必須有,可是這個要到後面寫到HDFSMR的時候才能說,要不如今都不知道Hdfs是啥,說缺點的話不形象,就跟說人壞話同樣,當着人家面兒說纔有效果。

下面開始技術總結:

今天這篇文章呢,做爲整套Hadoop系列教程的第一篇,主要是按照我寫博客的習慣講了一些基本的概念,但願你們看過以後內心可以對大數據和Hadoop有個基本的認識,另外,我寫技術文章比較口語化,廢話比較多,這個歡迎你們提建議,放心,提了我也不改,可是我寫小說啥的仍是很是嚴肅的,並且廢話文你讀起來比那些深奧玩弄概念的文章快多了(滑稽),下一篇文章呢,咱們一樣也是概念篇,主要講HDFSYARNMR這三個Hadoop核心概念,以後就是實打實的要和代碼接觸了。

很是感謝能讀到這裏的朋友,大家的支持和關注是我堅持高質量分享下去的動力。

相關代碼已經上傳至本人github。必定要點個star啊啊啊啊啊啊啊

萬水千山老是情,給個star行不行

韓數的開發筆記

歡迎點贊,關注我,有你好果子吃(滑稽)

相關文章
相關標籤/搜索