第一節(jié) 會跳舞的大象(什么是Hadoop大數(shù)據(jù))

【Hadoop大數(shù)據(jù)基礎(chǔ)】##


【第一課】會跳舞的大象(什么是Hadoop大數(shù)據(jù))

1.1 什么是大數(shù)據(jù)
1.2 Hadoop的由來
1.3 為什么要使用Hadoop
1.4 Hadoop的生態(tài)圈
1.5 Hadoop的應(yīng)用
1.6 課后作業(yè)


1.1 什么是大數(shù)據(jù)


最近小張網(wǎng)校<分布式架構(gòu)初探>實戰(zhàn)班的童鞋問我可不可以學習Hadoop大數(shù)據(jù)。
  答案是當然可以。
  大數(shù)據(jù)的架構(gòu)正好是一種分布式架構(gòu)的體現(xiàn)。
  我們就以Hadoop作為入口,學習正在流行的大數(shù)據(jù)生態(tài)圈。

什么是大數(shù)據(jù)?
  前段時間我去廣州野生動物園玩耍,看到了大象,好多大象,就是這樣

1.1-01.jpg

走起路來,慢悠悠的,那真的是穩(wěn)重,應(yīng)該說是笨重 ,就像

《我的滑板鞋》里面唱的樣:一步兩步 一步兩步 一步一步 似爪牙似魔鬼的步伐 摩擦 摩擦

想想我們自己,長的胖的人好像走起路來是很“笨重”,這個就跟我們開發(fā)過的系統(tǒng)一樣,剛開始數(shù)據(jù)量級比較小的時候很輕盈,數(shù)據(jù)量大了以后,就像大象一樣,笨重、反應(yīng)遲鈍。
  動物園里見到的大家都是那種笨重的,那么有沒有理想中輕盈的大象呢,有,就是下面這一只了,世上也只有這一只會跳舞的大象。

1.1-02.jpg

讓大象變的輕盈那是Hadoop要解決的事情,從上面可以看出,何為大數(shù)據(jù),數(shù)據(jù)量大就是大數(shù)據(jù)?
不僅僅如此
Volume(大量)、Velocity(高速)、Variety(多樣)、Value(價值)
大量:數(shù)據(jù)量大 至少是GB/TB/PB 級別的
高速:數(shù)據(jù)變化快,快速分析、及時響應(yīng)變化
多樣:數(shù)據(jù)的多樣性,文本、圖像、視頻等
價值:我們需要從大量的數(shù)據(jù)中提取有價值的部分

1.2 Hadoop的由來


Hadoop 最開始是來自于搜索引擎的技術(shù),因為搜索引擎爬蟲爬取的數(shù)據(jù)非常大,
而爬取到的文本信息又需要處理,進行數(shù)據(jù)整理、排序等操作。
  2008年4月,Hadoop打破世界紀錄,成為最快排序1TB數(shù)據(jù)的系統(tǒng)。運行一個910節(jié)點的集群,Hadoop在209秒內(nèi)排序了1TB的數(shù)據(jù)(還不到三分鐘),擊敗了前一年的297秒冠軍。
  2009年5月,Yahoo的團隊使用Hadoop對1TB的數(shù)據(jù)進行排序只花了62秒時間。

1.3 為什么要使用Hadoop


想想以(現(xiàn))前(在)你們是怎么分析數(shù)據(jù)的呢?
  寫一個JAVA程序分析還是Python腳本分析?
  舉個例子:去年深圳一家互聯(lián)網(wǎng)公司請我們給他們做顧問,他們公司生產(chǎn)環(huán)境的數(shù)據(jù)日志是每天從生產(chǎn)數(shù)據(jù)庫導出到數(shù)據(jù)服務(wù)器,再通過一個Python腳本分析這些日志并存入MySQL當中,這種方式在數(shù)據(jù)量小的情況下還沒什么事數(shù)據(jù)量一大,所需時間是幾何增長。有段時間他們服務(wù)器每天光log解壓之后就有幾十個G,雖然通過很多手段比如減少查詢,減少單條數(shù)據(jù)插入,使用LOAD將數(shù)據(jù)導入數(shù)據(jù)庫,但所需時間還是要很久。為了減少每天log分析的時間以及數(shù)據(jù)的穩(wěn)定性,決定搭建一個Hadoop系統(tǒng),使用hadoop map/reduce來并行的處理log。

1.4 Hadoop的生態(tài)圈


Hadoop 現(xiàn)在已經(jīng)逐漸發(fā)展成為了一個生態(tài)圈,我們來看一張圖:

1.4-01.jpg

看到這個圖是不是有點懵逼了,不要緊,我們緊抓Hadoop這條線,然后跟著課程慢慢擴展,整個生態(tài)圈的學習就會輕松自如的,接下來簡單的介紹一下整個生態(tài)圈每個部分的作用。
Pig:Pig是一種編程語言,它簡化了Hadoop常見的工作任務(wù)。Pig可加載數(shù)據(jù)、表達轉(zhuǎn)換數(shù)據(jù)以及存儲最終結(jié)果。
Sqoop:主要用于將傳統(tǒng)的關(guān)系型數(shù)據(jù)庫mysql等數(shù)據(jù)轉(zhuǎn)換到Hadoop中
Zookeeper:是一個分布式協(xié)調(diào)服務(wù)
Flume:是Cloudera提供的一個高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng)
Hive:hive是基于Hadoop的一個數(shù)據(jù)倉庫工具
YARN:Apache Hadoop YARN (Yet Another Resource Negotiator,另一種資源協(xié)調(diào)者)是一種新的 Hadoop 資源管理器
MapReduce:Hadoop的計算框架
Oozie:Oozie是一個工作流引擎服務(wù)器,用于運行Hadoop Map/Reduce和Pig 任務(wù)工作流
Cascading:是一個架構(gòu)在Hadoop上的API,用來創(chuàng)建復雜和容錯數(shù)據(jù)處理工作流。
Mahout:Mahout 是 Apache Software Foundation(ASF) 旗下的一個開源項目,提供一些可擴展的機器學習領(lǐng)域經(jīng)典算法的實現(xiàn),旨在幫助開發(fā)人員更加方便快捷地創(chuàng)建智能應(yīng)用程序
Impala:Impala是Cloudera公司主導開發(fā)的新型查詢系統(tǒng),它提供SQL語義,能查詢存儲在Hadoop的HDFS和HBase中的PB級大數(shù)據(jù)。
Hue:Hue 是運營和開發(fā)Hadoop應(yīng)用的圖形化用戶界面
Storm: Storm是一個免費開源、分布式、高容錯的實時計算系統(tǒng)。
HBase:HBase是基于Google BigTable模型開發(fā)的,典型的key/value系統(tǒng);

Hadoop生態(tài)圈的東西太多了,看的是不是眼花繚亂的,其實這些還不是全部,但是我們只要了解他們每個在整個大數(shù)據(jù)系統(tǒng)中的作用,就很容易理解了,這里大家只要了解一下就可以。

1.5 Hadoop的應(yīng)用


** 中國移動智慧交通項目 **

接下來我們會以這個項目來做實戰(zhàn):

在中國移動智慧交通項目中,用基站的數(shù)據(jù)來對人群的行動軌跡進行分析,分析出高鐵、CBD商圈等地段人群的軌跡以及分布,來預測未來的交通情況以及規(guī)律,給出合理的交通疏導的方案,讓交通更智能,合理分配資源,也讓我們出行更方便,這就是大數(shù)據(jù)的威力。

Hadoop在購物商城的應(yīng)用

一家購物網(wǎng)站上每日產(chǎn)生的數(shù)據(jù)約50G,需要從以往購物的數(shù)據(jù)中分析出用戶的喜好。
如:

1.展示用戶近期購物的類型,是男裝還是女裝或者是家電也有可能是零食。將所關(guān)注的放在一眼就能讓用戶看到的地方。
2.用戶的行為分析,通過用戶最近三個月的登陸時間/瀏覽過的店鋪/購買過或咨詢過的商品/購買過以往商品的價格平均值/停留時長來分析用戶搜索某商品的展示順序(其中也包含了賣家的信用綜合信息)。
3.展示用戶近期的消費記錄走勢等等

1.6 課后作業(yè)


  1. 大數(shù)據(jù)的四個特征?
  2. Hadoop中有個很經(jīng)典的入門,類似HelloWorld , 他是WordCount
1.5-01.jpg

功能很簡單,有一個文本數(shù)據(jù)格式如下:

  小張網(wǎng)校 麒麟 小張 網(wǎng)校
  JAVA 開發(fā) 小張 分布式
   Hadoop HDFS MapReduce 小張網(wǎng)校

我們先用JAVA語言寫出這個文本中每個詞出現(xiàn)的次數(shù),結(jié)果以下面格式輸出
(下一節(jié)我們用Hadoop的方式來重寫這個功能,來體驗區(qū)別)

   小張網(wǎng)校  2
   麒麟 1
   小張 2

barcode.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容