Hadoop初级之Hadoop基本概念与应用前景
Hadoop
大數(shù)據(jù)概念
大數(shù)據(jù)(big data):指無(wú)法在一定時(shí)間范圍內(nèi)用常規(guī)軟件工具(例如java ee 中的mysql)進(jìn)行捕捉、管理和處理的數(shù)據(jù)集合,是需要新處理模式才能具有更強(qiáng)的決策力、洞察發(fā)現(xiàn)力和流程優(yōu)化能力的海量、高增長(zhǎng)率和多樣化的信息資產(chǎn)。
主要解決,海量數(shù)據(jù)的存儲(chǔ)和海量數(shù)據(jù)的分析計(jì)算問(wèn)題。
1T容量的電腦 想要存儲(chǔ)幾百T的資料 就搭建個(gè)集群 一個(gè)節(jié)點(diǎn)存放一點(diǎn)就可以
從這幾百T的資料中 查找出你想要的資料 就屬于數(shù)據(jù)的分析計(jì)算
如果hr問(wèn)對(duì)大數(shù)據(jù)的理解 就可以從數(shù)據(jù)的存儲(chǔ)于數(shù)據(jù)的計(jì)算兩個(gè)方面進(jìn)行描述
?
按順序給出數(shù)據(jù)存儲(chǔ)單位:bit、Byte、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB。
1Byte = 8bit? 1K = 1024Byte? 1MB = 1024K
1G = 1024M? 1T = 1024G?????? 1P = 1024T? (進(jìn)制都是1024)
TB、PB、Eb目前是數(shù)據(jù)的主流
大數(shù)據(jù)特點(diǎn)
Volume(大量)
Velocity(高速)
Variety(多樣)
這種類型的多樣性也讓數(shù)據(jù)被分為結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)。相對(duì)于以往便于存儲(chǔ)的以數(shù)據(jù)庫(kù)/文本為主的結(jié)構(gòu)化數(shù)據(jù),非結(jié)構(gòu)化數(shù)據(jù)越來(lái)越多,包括網(wǎng)絡(luò)日志、音頻、視頻、圖片、地理位置信息等,這些多類型的數(shù)據(jù)對(duì)數(shù)據(jù)的處理能力提出了更高要求。
?
像這種訂單文本 就是結(jié)構(gòu)化數(shù)據(jù) 像圖片啥的 就是非結(jié)構(gòu)化
?
低價(jià)值密度 數(shù)據(jù)量越大 對(duì)自己有用的信息越少? 難以篩選
大數(shù)據(jù)應(yīng)用前景
?
工廠選址要大數(shù)據(jù)分析 倉(cāng)庫(kù)存儲(chǔ)什么商品也要分析
?
?
大數(shù)據(jù)提前預(yù)測(cè)人數(shù)
?
電商商品推薦功能
4、保險(xiǎn):海量數(shù)據(jù)挖掘及風(fēng)險(xiǎn)預(yù)測(cè),助力保險(xiǎn)行業(yè)精準(zhǔn)營(yíng)銷,提升精細(xì)化定價(jià)能力。
5、金融:多維度體現(xiàn)用戶特征,幫助金融機(jī)構(gòu)推薦優(yōu)質(zhì)客戶,防范欺詐風(fēng)險(xiǎn)。
?
支付寶大數(shù)據(jù)分析 對(duì)你的余額 人脈關(guān)系 征信分析
6、房產(chǎn):大數(shù)據(jù)全面助力房地產(chǎn)行業(yè),打造精準(zhǔn)投策與營(yíng)銷,選出更合適的地,建造更合適的樓,賣給更合適的人。
大數(shù)據(jù)部門(mén)業(yè)務(wù)流程分析
?
主要是做中間的
大數(shù)據(jù)部門(mén)組織架構(gòu)
?
平臺(tái)組 各種平臺(tái)搭建? 監(jiān)控集群平臺(tái)能否穩(wěn)定運(yùn)行性能調(diào)優(yōu)? 注重技術(shù)?? 底層源碼
倉(cāng)庫(kù)組 清洗臟無(wú)用的數(shù)據(jù)? 需求量比較大 比較重視業(yè)務(wù)
算法比較難
推薦系統(tǒng)有可能
Hadoop生態(tài)圈
?
我們?cè)诠ぷ髦姓f(shuō)的hadoop 不僅僅是只hadoop框架 是hadoop里面的整體的環(huán)境都叫hadoop
Hadoop發(fā)展史
?
后面才有yarn添加進(jìn)來(lái) 這三篇論文有時(shí)間可以看一看? 創(chuàng)始人是doung cutting
?
集中式系統(tǒng)
集中式系統(tǒng)用一句話概括就是:一個(gè)主機(jī)帶多個(gè)終端。終端沒(méi)有數(shù)據(jù)處理能力,僅負(fù)責(zé)數(shù)據(jù)的錄入和輸出。而運(yùn)算、存儲(chǔ)等全部在主機(jī)上進(jìn)行。現(xiàn)在的銀行系統(tǒng),大部分都是這種集中式的系統(tǒng),此外,在大型企業(yè)、科研單位、軍隊(duì)、政府等也有分布。集中式系統(tǒng),主要流行于上個(gè)世紀(jì)。集中式系統(tǒng)的最大的特點(diǎn)就是部署結(jié)構(gòu)非常簡(jiǎn)單,底層一般采用從IBM、HP等廠商購(gòu)買(mǎi)到的昂貴的大型主機(jī)。因此無(wú)需考慮如何對(duì)服務(wù)進(jìn)行多節(jié)點(diǎn)的部署,也就不用考慮各節(jié)點(diǎn)之間的分布式協(xié)作問(wèn)題。但是,由于采用單機(jī)部署。很可能帶來(lái)系統(tǒng)大而復(fù)雜、難于維護(hù)、發(fā)生單點(diǎn)故障(單個(gè)點(diǎn)發(fā)生故障的時(shí)候會(huì)波及到整個(gè)系統(tǒng)或者網(wǎng)絡(luò),從而導(dǎo)致整個(gè)系統(tǒng)或者網(wǎng)絡(luò)的癱瘓)、擴(kuò)展性差等問(wèn)題。
Hadoop 概念
Hadoop 是一個(gè)由 Apache 基金會(huì)所開(kāi)發(fā)的分布式系統(tǒng)(多臺(tái)服務(wù)器構(gòu)建集群)基礎(chǔ)架構(gòu)(是很基礎(chǔ)的架構(gòu),以后的hive等都是基于hadoop框架)
主要解決,海量數(shù)據(jù)的存儲(chǔ)和海量數(shù)據(jù)的分析計(jì)算問(wèn)題。
廣義上來(lái)說(shuō),HADOOP 通常是指一個(gè)更廣泛的概念——HADOOP 生態(tài)圈
Hadoop??三大發(fā)行版本:?Apache、Cloudera、Hortonworks。
Apache?版本最原始(最基礎(chǔ))的版本,對(duì)于入門(mén)學(xué)習(xí)最好。所有的東西都是自己配的
Cloudera?在大型互聯(lián)網(wǎng)企業(yè)中用的較多。 也叫CDH版本 面試官也有可能問(wèn)cdh版本的 所有的框架版本都是一一對(duì)應(yīng)的? 比較方便 比如hadoop什么版本對(duì)應(yīng)什么版本的hive
Hortonworks?文檔較好。
?
解釋1 多個(gè)副本 同一數(shù)據(jù)保存在不同的地方
2可以增加服務(wù)器和減少服務(wù)器?
3并行處理數(shù)據(jù)
4假設(shè)一個(gè)節(jié)點(diǎn)掛掉了 會(huì)重新分配這個(gè)任務(wù)給其他節(jié)點(diǎn)
?
?
hadoop干啥的: 1.存儲(chǔ)大量數(shù)據(jù)。? 怎么存儲(chǔ)的···? hdfs? 只需要啟動(dòng)hdfs服務(wù)就好 start-dfs.sh 2.并行計(jì)算大量數(shù)據(jù)。????? mr ? start-dfs.sh 為什么上邊這個(gè)命令在任何路徑都可以用呢? 因?yàn)榕渲昧谁h(huán)境變量Hadoop?安裝注釋
1.下載hadoop.tar包到linux系統(tǒng)。 2.解壓? tar -zxvf? —C 3.進(jìn)入hadoop路徑配置信息。 cd /opt/hadoop-2.7.2/etc/hadoop 4.hadoop-env.sh?? 配置jdk路徑。?? 因?yàn)閔adoop就是用java寫(xiě)的 5.core-site.xml?? 配置ip和端口號(hào) 6.hdfs-site.xml?? 配置的是副本數(shù) 7.mapred-site.xml? 指定框架名稱: yarn 8.yarn-site.xml?? 配置resourcemanager相關(guān)信息 9.slaves???????? 配置你存活的機(jī)器 10.免密 11.格式化namenode,需要在有namenode的節(jié)點(diǎn)來(lái)格式 12.啟動(dòng)服務(wù)來(lái)使用Hadoop 1.X與hadoop 2.X區(qū)別
?
大數(shù)據(jù)生態(tài)學(xué)習(xí)體系
?
數(shù)據(jù)來(lái)源層
1結(jié)構(gòu)化數(shù)據(jù) 例如mysql里面存儲(chǔ)的訂單數(shù)據(jù)
2瀏覽日志一類的 是半結(jié)構(gòu)化 可以轉(zhuǎn)化成結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)里
數(shù)據(jù)傳輸層
Sqoop:主要用于在 Hadoop(Hive)與傳統(tǒng)的數(shù)據(jù)庫(kù)(mysql)間進(jìn)行數(shù)據(jù)的傳遞,可以將一個(gè)關(guān)系型數(shù)據(jù)庫(kù)(例如 : MySQL ,Oracle 等)中的數(shù)據(jù)導(dǎo)進(jìn)到Hadoop 的 HDFS 中,也可以將 HDFS 的數(shù)據(jù)導(dǎo)進(jìn)到關(guān)系型數(shù)據(jù)庫(kù)中。(導(dǎo)數(shù)據(jù))
Flume: 是 Cloudera 提供的一個(gè)高可用的,高可靠的,分布式的海量日志采集、聚
合和傳輸?shù)南到y(tǒng),Flume 支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù);同時(shí),Flume
提供對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單處理,并寫(xiě)到各種數(shù)據(jù)接受方(可定制)的能力(收集日志)
Kafka:是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),有如下特性:
(1)通過(guò) O(1)的磁盤(pán)數(shù)據(jù)結(jié)構(gòu)提供消息的持久化,這種結(jié)構(gòu)對(duì)于即使數(shù)以 TB 的消息
存儲(chǔ)也能夠保持長(zhǎng)時(shí)間的穩(wěn)定性能。
(2)高吞吐量:即使是非常普通的硬件 Kafka 也可以支持每秒數(shù)百萬(wàn)的消息
(3)支持通過(guò) Kafka 服務(wù)器和消費(fèi)機(jī)集群來(lái)分區(qū)消息。
(4)支持 Hadoop 并行數(shù)據(jù)加載。(消息隊(duì)列)
數(shù)據(jù)儲(chǔ)存層
Hdf存儲(chǔ)
kafka也可以存1g
Hbase:是一個(gè)分布式的、面向列的開(kāi)源數(shù)據(jù)庫(kù)。HBase?不同于一般的關(guān)系數(shù)據(jù)庫(kù),它是一個(gè)適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù)。
資源管理層
推薦系統(tǒng)框架圖
?
| ? | |
| ? | ? |
?
我們?cè)诰W(wǎng)上搜索一個(gè)東西 被tomcat收集日志? 然后放到文件日志里作為數(shù)據(jù)來(lái)源 放到傳輸層flume里面 放到 儲(chǔ)存層 通過(guò)資源調(diào)度獲取資源 實(shí)時(shí)搜索實(shí)時(shí)推薦? 通過(guò)任務(wù)調(diào)度層調(diào)度 放在 數(shù)據(jù)庫(kù)或者文件里? 再將同類的業(yè)務(wù)推薦? 再返回
Yarn
數(shù)據(jù)分析層
Spark streaming實(shí)際上不是真實(shí)的事實(shí)? 有點(diǎn)延遲
Storm是真實(shí)的實(shí)時(shí)處理
任務(wù)調(diào)度器
在這么一個(gè)大的集群中? 啟動(dòng)的任務(wù)幾百個(gè)? 哪個(gè)先啟動(dòng) 啟動(dòng)到幾點(diǎn)? 并行串行? 這個(gè)任務(wù)執(zhí)行的這的時(shí)候另個(gè)任務(wù)執(zhí)行到哪 都需要資源調(diào)度oozie講的比較多?
將易變化的數(shù)據(jù)放入zk中 統(tǒng)一配置服務(wù)
hadoop目錄結(jié)構(gòu)
?
進(jìn)入bin里面
?
管理hadoop yarn hdfs等
進(jìn)入etc里面
?
存放配置
Sbin
?
存放的是啟動(dòng)或者關(guān)閉hadoop的服務(wù)
HDFS
HDFS,它是一個(gè)文件系統(tǒng),用于存儲(chǔ)文件,通過(guò)目錄樹(shù)來(lái)定位文件;其次,它是分布式的,由很多服務(wù)器聯(lián)合起來(lái)實(shí)現(xiàn)其功能,集群中的服務(wù)器有各自的角色。
HDFS的設(shè)計(jì)適合一次寫(xiě)入,多次讀出的場(chǎng)景,且不支持文件的修改。適合用來(lái)做數(shù)據(jù)分析,并不適合用來(lái)做網(wǎng)盤(pán)應(yīng)用。
隨著數(shù)據(jù)量越來(lái)越大,在一個(gè)操作系統(tǒng)管轄的范圍內(nèi)存不下了,那么就分配到更多的操作系統(tǒng)管理的磁盤(pán)中,但是不方便管理和維護(hù),迫切需要一種系統(tǒng)來(lái)管理多臺(tái)機(jī)器上的文件,這就是分布式文件管理系統(tǒng)。HDFS只是分布式文件管理系統(tǒng)中的一種。
HDFS優(yōu)缺點(diǎn)
?優(yōu)點(diǎn)
高容錯(cuò)性
數(shù)據(jù)自動(dòng)保存副多個(gè)本。它通過(guò)增加副本的形式,提高容錯(cuò)性。
某一個(gè)副本丟失以后,它可以自動(dòng)恢復(fù)。
適合大數(shù)據(jù)處理
數(shù)據(jù)規(guī)模:能夠處理數(shù)據(jù)規(guī)模達(dá)到 GB、TB、甚至PB級(jí)別的數(shù)據(jù)。
文件規(guī)模:能夠處理百萬(wàn)規(guī)模以上的文件數(shù)量,數(shù)量相當(dāng)之大。
流式數(shù)據(jù)訪問(wèn)
一次寫(xiě)入,多次讀取,不能修改,只能追加。
它能保證數(shù)據(jù)的一致性。
可構(gòu)建在廉價(jià)機(jī)器上,通過(guò)多副本機(jī)制,提高可靠性。
?缺點(diǎn)
不適合低延時(shí)數(shù)據(jù)訪問(wèn),比如毫秒級(jí)的存儲(chǔ)數(shù)據(jù),是做不到的。
無(wú)法高效的對(duì)大量小文件進(jìn)行存儲(chǔ)
存儲(chǔ)大量小文件的話,它會(huì)占用 NameNode大量的內(nèi)存來(lái)存儲(chǔ)文件、目錄和塊信息。這樣是不可取的,因?yàn)镹ameNode的內(nèi)存總是有限的。
小文件存儲(chǔ)的尋道時(shí)間會(huì)超過(guò)讀取時(shí)間,它違反了HDFS的設(shè)計(jì)目標(biāo)。假設(shè)很多小文件 找這些小文件會(huì)浪費(fèi)大量的時(shí)間
多個(gè)小文件這么處理
在數(shù)據(jù)處理系統(tǒng)的最前端(預(yù)處理/采集),將小文件先合并成大文件,再上傳到HDFS做后續(xù)分析。
并發(fā)寫(xiě)入、文件隨機(jī)修改
一個(gè)文件只能有一個(gè)寫(xiě),不允許多個(gè)線程同時(shí)寫(xiě)。不允許多個(gè)文件同時(shí)上傳到hdfs上
僅支持?jǐn)?shù)據(jù) append(追加),不支持文件的隨機(jī)修改。
HDFS架構(gòu)
Client:就是客戶端。
(1)文件切分。文件上傳 HDFS 的時(shí)候,Client 將文件切分成一個(gè)一個(gè)的Block,然后進(jìn)行存儲(chǔ)。
(2)與NameNode交互,獲取文件的位置信息。
(3)與DataNode交互,讀取或者寫(xiě)入數(shù)據(jù)。
(4)Client提供一些命令來(lái)管理HDFS,比如啟動(dòng)或者關(guān)閉HDFS。
(5)Client可以通過(guò)一些命令來(lái)訪問(wèn)HDFS。
2)NameNode:就是master,它是一個(gè)主管、管理者。
?
(1)管理HDFS的名稱空間。管理元數(shù)據(jù) (2)管理數(shù)據(jù)塊(Block)映射信息(不是真實(shí)數(shù)據(jù)),知道文件在datanode的路徑(3)配置副本策略
(4)處理客戶端讀寫(xiě)請(qǐng)求。
?
namenode就相當(dāng)于這本書(shū)的目錄
3) DataNode:就是Slave。NameNode下達(dá)命令,DataNode執(zhí)行實(shí)際的操作。
(1)存儲(chǔ)實(shí)際的數(shù)據(jù)塊。(真實(shí)數(shù)據(jù))
(2)執(zhí)行數(shù)據(jù)塊的讀/寫(xiě)操作。
?
Datanode才儲(chǔ)存真實(shí)數(shù)據(jù)
4) Secondary NameNode:并非NameNode的熱備。冷備。當(dāng)NameNode掛掉的時(shí)候,它并不能馬上替換NameNode并提供服務(wù)。
(1)輔助NameNode,分擔(dān)其工作量。
(2)定期合并Fsimage和Edits,并推送給NameNode。
(3)在緊急情況下,可輔助恢復(fù)NameNode。
用來(lái)監(jiān)控HDFS狀態(tài)的輔助后臺(tái)程序,每隔一段時(shí)間獲取HDFS元數(shù)據(jù)的快照。
?
?元數(shù)據(jù):分兩塊: 1.edits 文件???? 里面記錄的是 操作信息。? 比如:put操作。 2.fsimage 鏡像文件? 文本或者文件夾的存放狀態(tài)。 比如:文件名,文件的創(chuàng)建或者上傳者。權(quán)限信息,創(chuàng)建時(shí)間。。等文件的屬性 由于鏡像文件和edits文件都會(huì)加載到內(nèi)存當(dāng)中,所以,在公司(生產(chǎn)環(huán)境) namenode這臺(tái)服務(wù)器的內(nèi)存 都會(huì)很大。 SecondaryNameNode目錄結(jié)構(gòu)和namenode目錄結(jié)構(gòu)是很像的,而且在一點(diǎn)時(shí)間內(nèi),nn里的元數(shù)據(jù)和sn里元數(shù)據(jù)是差別不大的。 ? ??????????????分布式系統(tǒng)(distributed system)
一群獨(dú)立計(jì)算機(jī)集合共同對(duì)外提供服務(wù),但是對(duì)于系統(tǒng)的用戶來(lái)說(shuō),就像是一臺(tái)計(jì)算機(jī)在提供服務(wù)一樣。分布式意味著可以采用更多的普通計(jì)算機(jī)(相對(duì)于昂貴的大型機(jī))組成分布式集群對(duì)外提供服務(wù)。計(jì)算機(jī)越多,CPU、內(nèi)存、存儲(chǔ)資源等也就越多,能夠處理的并發(fā)訪問(wèn)量也就越大。
一個(gè)標(biāo)準(zhǔn)的分布式系統(tǒng)應(yīng)該具有以下幾個(gè)主要特征:
分布性
分布式系統(tǒng)中的多臺(tái)計(jì)算機(jī)之間在空間位置上可以隨意分布,系統(tǒng)中的多臺(tái)計(jì)算機(jī)之間沒(méi)有主、從之分,即沒(méi)有控制整個(gè)系統(tǒng)的主機(jī),也沒(méi)有受控的從機(jī)。
透明性
系統(tǒng)資源被所有計(jì)算機(jī)共享。每臺(tái)計(jì)算機(jī)的用戶不僅可以使用本機(jī)的資源,還可以使用本分布式系統(tǒng)中其他計(jì)算機(jī)的資源(包括CPU、文件、打印機(jī)等)。
轉(zhuǎn)載于:https://www.cnblogs.com/zxn0628/p/11211147.html
總結(jié)
以上是生活随笔為你收集整理的Hadoop初级之Hadoop基本概念与应用前景的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Delphi编写后台监控软件
- 下一篇: 2张表,轻松搞定你的收入问题