柚子快報邀請碼778899分享:大數(shù)據(jù)和Hadoop簡單介紹
柚子快報邀請碼778899分享:大數(shù)據(jù)和Hadoop簡單介紹
一.大數(shù)據(jù)
大數(shù)據(jù)(big data),或稱巨量資料,指的是所涉及的資料量規(guī)模巨大到無法透過主流軟件工具,在合理時間內(nèi)達到擷取、管理、處理、并整理成為幫助企業(yè)經(jīng)營決策更積極目的的資訊。
在維克托·邁爾-舍恩伯格及肯尼斯·庫克耶編寫的《大數(shù)據(jù)時代》中大數(shù)據(jù)指不用隨機分析法(抽樣調(diào)查)這樣捷徑,而采用所有數(shù)據(jù)進行分析處理。大數(shù)據(jù)的5V特點(IBM提出):Volume(大量)、Velocity(高速)、Variety(多樣)、Value(低價值密度)、Veracity(真實性)。?
“大數(shù)據(jù)”一詞列出了商務(wù)印書館推出的《漢語新詞語詞典(2000—2020)》中國這20年生命活力指數(shù)最高的十大“時代新詞”。?
大數(shù)據(jù)需要特殊的技術(shù),以有效地處理大量的容忍經(jīng)過時間內(nèi)的數(shù)據(jù)。適用于大數(shù)據(jù)的技術(shù),包括大規(guī)模并行處理(MPP)數(shù)據(jù)庫、數(shù)據(jù)挖掘、分布式文件系統(tǒng)、分布式數(shù)據(jù)庫、云計算平臺、互聯(lián)網(wǎng)和可擴展的存儲系統(tǒng)。
最小的基本單位是bit,按順序給出所有單位:bit、Byte、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB。
它們按照進率1024(2的十次方)來計算:
1 Byte =8 bit
1 KB = 1,024 Bytes = 8192 bit
1 MB = 1,024 KB = 1,048,576 Bytes
1 GB = 1,024 MB = 1,048,576 KB
1 TB = 1,024 GB = 1,048,576 MB
1 PB = 1,024 TB = 1,048,576 GB
1 EB = 1,024 PB = 1,048,576 TB
1 ZB = 1,024 EB = 1,048,576 PB
1 YB = 1,024 ZB = 1,048,576 EB
1 BB = 1,024 YB = 1,048,576 ZB
1 NB = 1,024 BB = 1,048,576 YB
1 DB = 1,024 NB = 1,048,576 BB
二.Hadoop介紹
狹義上Hadoop指的是Apache軟件基金會的一款開源軟件。
用java語言實現(xiàn),開源
允許用戶使用簡單的編程模型實現(xiàn)跨機器集群對海量數(shù)據(jù)進行分布式計算處理
Hadoop核心組件
Hadoop HDFS(分布式文件存儲系統(tǒng)):解決海量數(shù)據(jù)存儲
Hadoop YARN(集群資源管理和任務(wù)調(diào)度框架):解決資源任務(wù)調(diào)度
Hadoop MapReduce(分布式計算框架):解決海量數(shù)據(jù)計算
廣義上Hadoop指的是圍繞Hadoop打造的大數(shù)據(jù)生態(tài)圈
Hadoop發(fā)展簡史
Hadoop之父:Doug Cutting
Hadoop起源于Apache Lucene子項目:Nutch
Nutch的設(shè)計目標是構(gòu)建一個大型的全網(wǎng)搜索引擎。遇到瓶頸:如何解決數(shù)十億網(wǎng)頁的存儲和索引問題
Google三篇論文
《The Google file system》:谷歌分布式文件系統(tǒng)GFS《MapReduce: Simplified Data Processing on Large Clusters》:谷歌分布式計算框架MapReduce《Bigtable: A Distributed Storage System for Structured Data》:谷歌結(jié)構(gòu)化數(shù)據(jù)存儲系統(tǒng)
Hadoop現(xiàn)狀
HDFS作為分布式文件存儲系統(tǒng),處在生態(tài)圈的底層與核心地位;YARN作為分布式通用的集群資源管理系統(tǒng)和任務(wù)調(diào)度平臺,支撐各種計算引擎運行,保證了Hadoop地位;MapReduce作為大數(shù)據(jù)生態(tài)圈第一代分布式計算引擎,由于自身設(shè)計的模型所產(chǎn)生的弊端,導(dǎo)致企業(yè)一線幾乎不
再直接使用MapReduce進行編程處理,但是很多軟件的底層依然在使用MapReduce引擎來處理數(shù)據(jù)。
Hadoop特性優(yōu)點、國內(nèi)外應(yīng)用
Hadoop國外應(yīng)用
Yahoo
支持廣告系統(tǒng)用戶行為分析支持Web搜索反垃圾郵件系統(tǒng)
存儲處理數(shù)據(jù)挖掘和日志統(tǒng)計構(gòu)建基于Hadoop數(shù)據(jù)倉庫平臺(Apache Hive來自FB)
IBM
藍云基礎(chǔ)設(shè)施構(gòu)建商業(yè)化Hadoop發(fā)行、解決方案支持
Hadoop國內(nèi)應(yīng)用
百度
用戶搜索表征的需求數(shù)據(jù)、阿拉丁爬蟲數(shù)據(jù)存儲數(shù)據(jù)分析和挖掘 競價排名
阿里巴巴
為電子商務(wù)網(wǎng)絡(luò)平臺提供底層的基礎(chǔ)計算和存儲服務(wù)交易數(shù)據(jù)、信用數(shù)據(jù)
騰訊
用戶關(guān)系數(shù)據(jù)基于Hadoop、Hive構(gòu)建TDW(騰訊分布式數(shù)據(jù)倉庫)
華為
對Hadoop的HA方案,以及HBase領(lǐng)域有深入研究
Hadoop發(fā)行版本
Apache開源社區(qū)版本
http://hadoop.apache.org/
商業(yè)發(fā)行版本
Cloudera:https://www.cloudera.com/products/open-source/apache-hadoop.html
Hortonworks :https://www.cloudera.com/products/hdp.html
本文章中使用的是Apache版的Hadoop,版本號為:
3.3.0
Hadoop學(xué)習(xí)內(nèi)容
Hadoop離線是大數(shù)據(jù)生態(tài)圈的核心與基石,是整個大數(shù)據(jù)開發(fā)的入門,是為后期的Spark、Flink打下堅實基礎(chǔ)的課程。掌握三部分內(nèi)容:Linux、Hadoop、Hive,就可以獨立的基于數(shù)據(jù)倉庫實現(xiàn)離線數(shù)據(jù)分析的可視化報表開發(fā)。
Hadoop MapReduce
是一種用于處理大數(shù)據(jù)的編程模型。它將數(shù)據(jù)集切分成多個小任務(wù),每一個小任務(wù)都可以通過獨立的計算來完成,最終的結(jié)果可以通過合并或更新數(shù)據(jù)來進行聚合。Hadoop MapReduce極大地簡化了處理大數(shù)據(jù)的過程,因為它可以同時進行多個計算任務(wù),并且可以快速地進行計算結(jié)果的合并和更新。
1. MapReduce的思想很好理解,關(guān)鍵在于如何基于這 個思想設(shè)計出一款
分布式計算程序?
2. 下面看看Hadoop團隊針對MapReduce的設(shè)計構(gòu)思是怎樣的?這決定了你將如何使用MapReduce?
(1)如何對付大數(shù)據(jù)處理場景
? 對相互間不具有計算依賴關(guān)系的大數(shù)據(jù)計算任務(wù),實現(xiàn)并行最自然的辦法就是采取MapReduce分而治之的策略。
? 首先Map階段進行拆分,把大數(shù)據(jù)拆分成若干份小數(shù)據(jù),多個程序同時并行計算產(chǎn)生中間結(jié)果;然后是Reduce聚合階段,通過程序?qū)Σ⑿械慕Y(jié)果進行最終的匯總計算,得出最終的結(jié)果。
? 不可拆分的計算任務(wù)或相互間有依賴關(guān)系的數(shù)據(jù)無法進行并行計算!
(2)構(gòu)建抽象編程模型
? MapReduce借鑒了函數(shù)式語言中的思想,用Map和Reduce兩個函數(shù)提供了高層的并行編程抽象模型。
map:?對一組數(shù)據(jù)元素進行某種重復(fù)式的處理;
reduce:?對Map的中間結(jié)果進行某種進一步的結(jié)果整理。
? MapReduce中定義了如下的Map和Reduce兩個抽象的編程接口,由用戶去編程實現(xiàn):
map: (k1; v1) → (k2; v2)
reduce: (k2; [v2]) → (k3; v3)
? 通過以上兩個編程接口,大家可以看出MapReduce處理的數(shù)據(jù)類型是
(3)統(tǒng)一架構(gòu)、隱藏底層細節(jié)
? 如何提供統(tǒng)一的計算框架,如果沒有統(tǒng)一封裝底層細節(jié),那么程序員則需要考慮諸如數(shù)據(jù)存儲、劃分、分發(fā)、結(jié)果收集、錯誤恢復(fù)等諸多細節(jié);為此,MapReduce設(shè)計并提供了統(tǒng)一的計算框架,為程序員隱藏了絕大多數(shù)系統(tǒng)層面的處理細節(jié)。
? MapReduce最大的亮點在于通過抽象模型和計算框架把需要做什么(what need to do)與具體怎么做(how to
do)分開了,為程序員提供一個抽象和高層的編程接口和框架。
? 程序員僅需要關(guān)心其應(yīng)用層的具體計算問題,僅需編寫少量的處理應(yīng)用本身計算問題的業(yè)務(wù)程序代碼。
? 至于如何具體完成這個并行計算任務(wù)所相關(guān)的諸多系統(tǒng)層細節(jié)被隱藏起來,交給計算框架去處理:從分布代碼的執(zhí)行,到大到數(shù)千小到單個節(jié)點集群的自動調(diào)度使用。
分布式計算概念
? 分布式計算是一種計算方法,和集中式計算是相對的。
? 隨著計算技術(shù)的發(fā)展,有些應(yīng)用需要非常巨大的計算能力才能完成,如果采用集中式計算,需要耗費相當長的時間來完成。
? 分布式計算將該應(yīng)用分解成許多小的部分,分配給多臺計算機進行處理。這樣可以節(jié)約整體計算時間,大大提高計算效率。
[yishangjieguojunlaizibaiduyijibozhu(sixiclion)jielunchengguo]
柚子快報邀請碼778899分享:大數(shù)據(jù)和Hadoop簡單介紹
相關(guān)鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。