Hadoop產生的背景
1. HADOOP最早起源於Nutch。Nutch的設計目標是構建一個大型的全網搜索引擎,包括網頁抓取、索引、查詢等功能,但隨着抓取網頁數量的增加,遇到了嚴重的可擴展性問題——如何解決數十億網頁的存儲和索引問題。
2. 2003年開始谷歌陸續發表的三篇論文為該問題提供了可行的解決方案。
——分布式文件系統(GFS),可用於處理海量網頁的存儲
——分布式計算框架MAPREDUCE,可用於處理海量網頁的索引計算問題。
——BigTable 數據庫:OLTP 聯機事務處理 Online Transaction Processing 增刪改
OLAP 聯機分析處理 Online Analysis Processing 查詢
真正的作用:提供了一種可以在超大數據集中進行實時CRUD操作的功能
3.Nutch的開發人員完成了相應的開源實現HDFS和MAPREDUCE,並從Nutch中剝離成為獨立項目HADOOP,到2008年1月,HADOOP成為Apache頂級項目,迎來了它的快速發展期。
Hadoop是啥
Hadoop的官網:http://hadoop.apache.org/
1、Hadoop是Apache旗下的一套開源軟件平台
2、Hadoop提供的功能:利用服務器集群,根據戶自定義業邏輯對海量數進行分布式處理
3、Hadoop的核心組件:
1)Hadoop Common:支持其他Hadoop模塊的常用工具。
2) Hadoop分布式文件系統(HDFS™):一種分布式文件系統,可提供對應用程序數據的高吞吐量訪問。
3) Hadoop YARN:作業調度和集群資源管理的框架。
4) Hadoop MapReduce:一種用於並行處理大型數據集的基於YARN的系統。
大數據的處理主要就是存儲和計算。
如果說安裝hadoop集群,其實就是安裝了兩個東西: 一個操作系統YARN 和 一個文件系統HDFS。其實MapReduce就是運行在YARN之上的應用。
操作系統 文件系統 應用程序
win7 NTFS QQ,WeChat
YARN HDFS MapReduce
4、hadoop的概念:
狹義上: 就是apache的一個頂級項目:apahce hadoop
廣義上: 就是指以hadoop為核心的整個大數據處理體系
5、Apache的其他Hadoop相關項目包括:
- Ambari™:一種用於供應,管理和監控Apache Hadoop集群的基於Web的工具,其中包括對Hadoop HDFS,Hadoop MapReduce,Hive,HCatalog,HBase,ZooKeeper,Oozie,Pig和Sqoop的支持。Ambari還提供了一個用於查看群集運行狀況的儀表板,例如熱圖和可以直觀地查看MapReduce,Pig和Hive應用程序的功能,以及以用戶友好的方式診斷其性能特征的功能。
- Avro™:數據序列化系統。
- Cassandra™:無單點故障的可擴展多主數據庫。
- Chukwa™:管理大型分布式系統的數據收集系統。
- HBase™:可擴展的分布式數據庫,支持大型表格的結構化數據存儲。
- Hive™:提供數據匯總和即席查詢的數據倉庫基礎架構。
- Mahout™:可擴展的機器學習和數據挖掘庫。
- Pig™:用於並行計算的高級數據流語言和執行框架。
- Spark™:用於Hadoop數據的快速和通用計算引擎。Spark提供了一個簡單而富有表現力的編程模型,它支持廣泛的應用程序,包括ETL,機器學習,流處理和圖計算。
- Tez™:一種基於Hadoop YARN的通用數據流編程框架,它提供了一個強大且靈活的引擎,可執行任意DAG任務來處理批處理和交互式用例的數據。Hado™,Pig™和Hadoop生態系統中的其他框架以及其他商業軟件(例如ETL工具)正在采用Tez來替代Hadoop™MapReduce作為底層執行引擎。
- ZooKeeper™:分布式應用程序的高性能協調服務。
HADOOP在大數據、雲計算中的位置和關系
1、雲計算是分布式計算、並行計算、網格計算、多核計算、網絡存儲、虛擬化、負載均衡等傳統計算機技術和互聯網技術融合發展的產物。借助IaaS(基礎設施即服務)、PaaS(平台即服務)、SaaS(軟件即服務)等業務模式,把強大的計算能力提供給終端用戶。1、
2、現階段,雲計算的兩大底層支撐技術為“虛擬化”和“大數據技術”
3、 而HADOOP則是雲計算的PaaS層的解決方案之一,並不等同於PaaS,更不等同於雲計算本身。
Hadoop的技術應用
HADOOP應用於數據服務基礎平台建設
HADOOP用於用戶畫像
該圖是中國電信的用戶畫像標簽體系。
HADOOP用於網站點擊流日志數據挖掘
總結:hadoop並不會跟某個具體的行業或者某個具體的業務掛鈎,它只是一種用來做海量數據分析處理的工具。
HADOOP生態圈以及各組成部分的簡介
重點組件:
HDFS:Hadoop的分布式文件存儲系統。
MapReduce:Hadoop的分布式程序運算框架,也可以叫做一種編程模型。
Hive:基於Hadoop的類SQL數據倉庫工具
Hbase:基於Hadoop的列式分布式NoSQL數據庫
ZooKeeper:分布式協調服務組件
Mahout:基於MapReduce/Flink/Spark等分布式運算框架的機器學習算法庫
Oozie/Azkaban:工作流調度引擎
Sqoop:數據遷入遷出工具
Flume:日志采集工具
獲取數據的三種方式
1、自己公司收集的數據--日志 或者 數據庫中的數據
2、有一些數據可以通過爬蟲從網絡中進行爬取
3、從第三方機構購買
國內HADOOP的就業情況分析
1、HADOOP就業整體情況
A. 大數據產業已納入國家十三五規划
B. 各大城市都在進行智慧城市項目建設,而智慧城市的根基就是大數據綜合平台
C. 互聯網時代數據的種類,增長都呈現爆發式增長,各行業對數據的價值日益重視
D. 相對於傳統JAVAEE技術領域來說,大數據領域的人才相對稀缺
E. 隨着現代社會的發展,數據處理和數據挖掘的重要性只會增不會減,因此,大數據技術是一個尚在蓬勃發展且具有長遠前景的領域
2、 HADOOP就業職位要求
大數據是個復合專業,包括應用開發、軟件平台、算法、數據挖掘等,因此,大數據技術領域的就業選擇是多樣的,但就HADOOP而言,通常都需要具備以下技能或知識:
硬實力
A. HADOOP分布式集群的平台搭建
B. HADOOP分布式文件系統HDFS的原理理解及使用
C. HADOOP分布式運算框架MAPREDUCE的原理理解及編程
D. Hive數據倉庫工具的熟練應用
E. Flume、sqoop、oozie等輔助工具的熟練使用
F. Shell/python等腳本語言的開發能力
軟實力
A. 解決問題的能力(調試,閱讀文檔)
B. 溝通協調能力(尋求幫助)
C. 學習提升自己的能力(自我提高)
D. 組織管控能力(管理能力)