【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)班的童鞋問我可不可以學(xué)習(xí)Hadoop大數(shù)據(jù)郭宝。
答案是當(dāng)然可以褒繁。
大數(shù)據(jù)的架構(gòu)正好是一種分布式架構(gòu)的體現(xiàn)柠衅。
我們就以Hadoop作為入口跛锌,學(xué)習(xí)正在流行的大數(shù)據(jù)生態(tài)圈辐脖。
什么是大數(shù)據(jù)?
前段時間我去廣州野生動物園玩耍,看到了大象,好多大象鳞贷,就是這樣
走起路來,慢悠悠的虐唠,那真的是穩(wěn)重搀愧,應(yīng)該說是笨重 ,就像
《我的滑板鞋》里面唱的樣:一步兩步 一步兩步 一步一步 似爪牙似魔鬼的步伐 摩擦 摩擦
想想我們自己凿滤,長的胖的人好像走起路來是很“笨重”妈橄,這個就跟我們開發(fā)過的系統(tǒng)一樣,剛開始數(shù)據(jù)量級比較小的時候很輕盈翁脆,數(shù)據(jù)量大了以后,就像大象一樣鼻种,笨重反番、反應(yīng)遲鈍。
動物園里見到的大家都是那種笨重的叉钥,那么有沒有理想中輕盈的大象呢罢缸,有,就是下面這一只了投队,世上也只有這一只會跳舞的大象枫疆。
讓大象變的輕盈那是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ù)非常大,
而爬取到的文本信息又需要處理扮叨,進(jìn)行數(shù)據(jù)整理缤弦、排序等操作。
2008年4月,Hadoop打破世界紀(jì)錄,成為最快排序1TB數(shù)據(jù)的系統(tǒng)甫匹。運行一個910節(jié)點的集群,Hadoop在209秒內(nèi)排序了1TB的數(shù)據(jù)(還不到三分鐘),擊敗了前一年的297秒冠軍甸鸟。
2009年5月,Yahoo的團隊使用Hadoop對1TB的數(shù)據(jù)進(jìn)行排序只花了62秒時間。
1.3 為什么要使用Hadoop
想想以(現(xiàn))前(在)你們是怎么分析數(shù)據(jù)的呢?
寫一個JAVA程序分析還是Python腳本分析?
舉個例子:去年深圳一家互聯(lián)網(wǎng)公司請我們給他們做顧問兵迅,他們公司生產(chǎn)環(huán)境的數(shù)據(jù)日志是每天從生產(chǎn)數(shù)據(jù)庫導(dǎo)出到數(shù)據(jù)服務(wù)器抢韭,再通過一個Python腳本分析這些日志并存入MySQL當(dāng)中,這種方式在數(shù)據(jù)量小的情況下還沒什么事數(shù)據(jù)量一大恍箭,所需時間是幾何增長刻恭。有段時間他們服務(wù)器每天光log解壓之后就有幾十個G,雖然通過很多手段比如減少查詢扯夭,減少單條數(shù)據(jù)插入鳍贾,使用LOAD將數(shù)據(jù)導(dǎo)入數(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)圈咆爽,我們來看一張圖:
看到這個圖是不是有點懵逼了,不要緊置森,我們緊抓Hadoop這條線斗埂,然后跟著課程慢慢擴展,整個生態(tài)圈的學(xué)習(xí)就會輕松自如的凫海,接下來簡單的介紹一下整個生態(tài)圈每個部分的作用呛凶。
Pig:Pig是一種編程語言,它簡化了Hadoop常見的工作任務(wù)行贪。Pig可加載數(shù)據(jù)漾稀、表達(dá)轉(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)建復(fù)雜和容錯數(shù)據(jù)處理工作流翁授。
Mahout:Mahout 是 Apache Software Foundation(ASF) 旗下的一個開源項目,提供一些可擴展的機器學(xué)習(xí)領(lǐng)域經(jīng)典算法的實現(xiàn),旨在幫助開發(fā)人員更加方便快捷地創(chuàng)建智能應(yīng)用程序
Impala:Impala是Cloudera公司主導(dǎo)開發(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ù)來對人群的行動軌跡進(jìn)行分析夫植,分析出高鐵讹剔、CBD商圈等地段人群的軌跡以及分布,來預(yù)測未來的交通情況以及規(guī)律详民,給出合理的交通疏導(dǎo)的方案延欠,讓交通更智能,合理分配資源沈跨,也讓我們出行更方便由捎,這就是大數(shù)據(jù)的威力。
Hadoop在購物商城的應(yīng)用
一家購物網(wǎng)站上每日產(chǎn)生的數(shù)據(jù)約50G,需要從以往購物的數(shù)據(jù)中分析出用戶的喜好饿凛。
如:1.展示用戶近期購物的類型,是男裝還是女裝或者是家電也有可能是零食隅俘。將所關(guān)注的放在一眼就能讓用戶看到的地方。
2.用戶的行為分析,通過用戶最近三個月的登陸時間/瀏覽過的店鋪/購買過或咨詢過的商品/購買過以往商品的價格平均值/停留時長來分析用戶搜索某商品的展示順序(其中也包含了賣家的信用綜合信息)笤喳。
3.展示用戶近期的消費記錄走勢等等
1.6 課后作業(yè)
- 大數(shù)據(jù)的四個特征?
- Hadoop中有個很經(jīng)典的入門碌宴,類似HelloWorld , 他是WordCount
功能很簡單,有一個文本數(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