目錄##
Hadoop背景介紹
Hadoop生態(tài)圈以及各組成部分的簡介
Hadoop案例感性認識
1忍宋、Hadoop 背景介紹###
Hadoop 是什么####
1俗或、Hadoop是apache旗下的一套開源軟件平臺
2、Hadoop提供的功能:利用服務器集群陨亡,根據用戶的自定義業(yè)務邏輯傍衡,對海量數據進行分布式處理
-
3、Hadoop的核心組件有
A.HDFS(分布式文件系統(tǒng))
B.YARN(運算資源調度系統(tǒng))
C.MAPREDUCE(分布式運算編程框架)
廣義上來說负蠕,Hadoop通常是指一個更廣泛的概念——HADOOP生態(tài)圈
Hadoop 產生背景####
1蛙埂、HADOOP最早起源于Nutch。Nutch的設計目標是構建一個大型的全網搜索引擎遮糖,包括網頁抓取绣的、索引、查詢等功能欲账,但隨著抓取網頁數量的增加屡江,遇到了嚴重的可擴展性問題——如何解決數十億網頁的存儲和索引問題。
2赛不、2003年惩嘉、2004年谷歌發(fā)表的兩篇論文為該問題提供了可行的解決方案。
分布式文件系統(tǒng)(GFS)踢故,可用于處理海量網頁的存儲
布式計算框架MAPREDUCE文黎,可用于處理海量網頁的索引計算問題。
3殿较、Nutch的開發(fā)人員完成了相應的開源實現HDFS和MAPREDUCE耸峭,并從Nutch中剝離成為獨立項目HADOOP,到2008年1月斜脂,HADOOP成為Apache頂級項目抓艳,迎來了它的快速發(fā)展期。
2、Hadoop 生態(tài)圈以及各組成部分的簡介
重點組件
HDFS:分布式文件系統(tǒng)
MAPREDUCE:分布式運算程序開發(fā)框架
HIVE:基于大數據技術(文件系統(tǒng)+運算框架)的SQL數據倉庫工具
HBASE:基于HADOOP的分布式海量數據庫
ZOOKEEPER:分布式協(xié)調服務基礎組件
Mahout:基于mapreduce/spark/flink等分布式運算框架的機器學習算法庫
Oozie:工作流調度框架
Sqoop:數據導入導出工具
Flume:日志數據采集框架
3玷或、Hadoop 案例感性認知
通過以下案例儡首,感受以下Hadoop在數據分析系統(tǒng)的宏觀概念及處理流程,初步理解hadoop等框架在其中的應用環(huán)節(jié)偏友。
案例:離線數據分析
一個應用廣泛的數據分析系統(tǒng):“web日志數據挖掘”
3.1 需求分析
案例名稱
“網站或APP點擊流日志數據挖掘系統(tǒng)”
一般中型的網站(10W的PV以上)蔬胯,每天會產生1G以上Web日志文件。大型或超大型的網站位他,可能每小時就會產生10G的數據量氛濒。
具體來說,比如某電子商務網站鹅髓,在線團購業(yè)務舞竿。每日PV數100w,獨立IP數5w窿冯。用戶通常在工作日上午10:00-12:00和下午15:00-18:00訪問量最大骗奖。日間主要是通過PC端瀏覽器訪問,休息日及夜間通過移動設備訪問較多醒串。網站搜索瀏量占整個網站的80%执桌,PC用戶不足1%的用戶會消費,移動用戶有5%會消費芜赌。
對于日志的這種規(guī)模的數據仰挣,用HADOOP進行日志分析,是最適合不過的了缠沈。
需求描述
Web點擊流日志”包含著網站運營很重要的信息膘壶,通過日志分析,我們可以知道網站的訪問量洲愤,哪個網頁訪問人數最多香椎,哪個網頁最有價值,廣告轉化率禽篱、訪客的來源信息,訪客的終端信息等馍惹。
數據來源
本案例的數據主要由用戶的點擊行為記錄
獲取方式:在頁面預埋一段js程序躺率,為頁面上想要監(jiān)聽的標簽綁定事件,只要用戶點擊或移動到標簽万矾,即可觸發(fā)ajax請求到后臺servlet程序悼吱,用log4j記錄下事件信息,從而在web服務器(nginx良狈、tomcat等)上形成不斷增長的日志文件后添。
形如:
58.215.204.118 - - [18/Sep/2013:06:51:35 +0000] "GET /wp-includes/js/jquery/jquery.js?ver=1.10.2 HTTP/1.1" 304 0 "http://blog.fens.me/nodejs-socketio-chat/" "Mozilla/5.0 (Windows NT 5.1; rv:23.0) Gecko/20100101 Firefox/23.0"
3.2 數據處理流程
流程圖解析
本案例跟典型的BI系統(tǒng)極其類似,整體流程如下:
但是薪丁,由于本案例的前提是處理海量數據遇西,因而馅精,流程中各環(huán)節(jié)所使用的技術則跟傳統(tǒng)BI完全不同:
- 數據采集:定制開發(fā)采集程序,或使用開源框架FLUME
- 數據預處理:定制開發(fā)mapreduce程序運行于hadoop集群
- 數據倉庫技術:基于hadoop之上的Hive
- 數據導出:基于hadoop的sqoop數據導入導出工具
- 數據可視化:定制開發(fā)web程序或使用kettle等產品
- 整個過程的流程調度:hadoop生態(tài)圈中的oozie工具或其他類似開源產品
項目技術架構圖
這是對Hadoop的初步認識粱檀,了解Hadoop的一些應用場景洲敢。下一步就要對Hadoop集群進行搭建了。