1. HADOOP背景介紹
1.1 什么是HADOOP
1.HADOOP是apache旗下的一套開(kāi)源軟件平臺(tái)
2.HADOOP提供的功能:利用服務(wù)器集群,根據(jù)用戶的自定義業(yè)務(wù)邏輯,對(duì)海量數(shù)據(jù)進(jìn)行分布式處理
3.HADOOP的核心組件有 1.HDFS(分布式文件系統(tǒng))
2.YARN(運(yùn)算資源調(diào)度系統(tǒng))
3.MAPREDUCE(分布式運(yùn)算編程框架)
4.廣義上來(lái)說(shuō),HADOOP通常是指一個(gè)更廣泛的概念——HADOOP生態(tài)圈
Hadoop hive hbase flume kafka sqoop spark flink …….
1.2 HADOOP產(chǎn)生背景
1.HADOOP最早起源于Nutch。Nutch的設(shè)計(jì)目標(biāo)是構(gòu)建一個(gè)大型的全網(wǎng)搜索引擎,包括網(wǎng)頁(yè)抓取、索引、查詢等功能,但隨著抓取網(wǎng)頁(yè)數(shù)量的增加,遇到了嚴(yán)重的可擴(kuò)展性問(wèn)題——如何解決數(shù)十億網(wǎng)頁(yè)的存儲(chǔ)和索引問(wèn)題。
2.2003年、2004年谷歌發(fā)表的兩篇論文為該問(wèn)題提供了可行的解決方案。
——分布式文件系統(tǒng)(GFS),可用于處理海量網(wǎng)頁(yè)的存儲(chǔ)
——分布式計(jì)算框架MAPREDUCE,可用于處理海量網(wǎng)頁(yè)的索引計(jì)算問(wèn)題。
3.Nutch的開(kāi)發(fā)人員完成了相應(yīng)的開(kāi)源實(shí)現(xiàn)HDFS和MAPREDUCE,并從Nutch中剝離成為獨(dú)立項(xiàng)目HADOOP,到2008年1月,HADOOP成為Apache頂級(jí)項(xiàng)目,迎來(lái)了它的快速發(fā)展期。
1.3 HADOOP在大數(shù)據(jù)、云計(jì)算中的位置和關(guān)系
1.云計(jì)算是分布式計(jì)算、并行計(jì)算、網(wǎng)格計(jì)算、多核計(jì)算、網(wǎng)絡(luò)存儲(chǔ)、虛擬化、負(fù)載均衡等傳統(tǒng)計(jì)算機(jī)技術(shù)和互聯(lián)網(wǎng)技術(shù)融合發(fā)展的產(chǎn)物。借助IaaS(基礎(chǔ)設(shè)施即服務(wù))、PaaS(平臺(tái)即服務(wù))、SaaS(軟件即服務(wù))等業(yè)務(wù)模式,把強(qiáng)大的計(jì)算能力提供給終端用戶。
2.現(xiàn)階段,云計(jì)算的兩大底層支撐技術(shù)為“虛擬化”和“大數(shù)據(jù)技術(shù)”
3.而HADOOP則是云計(jì)算的PaaS層的解決方案之一,并不等同于PaaS,更不等同于云計(jì)算本身。
前言
最近想學(xué)習(xí)下大數(shù)據(jù),有點(diǎn)急于求成,于是去網(wǎng)上找了各種培訓(xùn)機(jī)構(gòu)的視頻,發(fā)現(xiàn)大都質(zhì)量不佳,理論基本不說(shuō)或者簡(jiǎn)單講下,然后教你照貓畫(huà)虎的敲代碼,出了問(wèn)題都沒(méi)法分析。最后還是找了廈門(mén)大學(xué)的公開(kāi)課從理論開(kāi)始穩(wěn)扎穩(wěn)打的學(xué)習(xí)了。
一 Hadoop起源
Hadoop的理論起源主要來(lái)自谷歌公司的三大論文,并迅速應(yīng)用于全球各大互聯(lián)網(wǎng)公司。因此,學(xué)習(xí)大數(shù)據(jù)Hadoop是繞不開(kāi)的一個(gè)知識(shí)點(diǎn)。今年來(lái),大數(shù)據(jù)的興起其實(shí)來(lái)自于計(jì)算機(jī)技術(shù)的發(fā)展,物聯(lián)網(wǎng)技術(shù)產(chǎn)生了大量的數(shù)據(jù),云技術(shù)使得計(jì)算機(jī)存儲(chǔ)與運(yùn)算資源更加普及,因此大數(shù)據(jù)技術(shù)應(yīng)運(yùn)而出,用以解決大量數(shù)據(jù)的存儲(chǔ)與計(jì)算的問(wèn)題。
二 Hadoop生態(tài)圈
學(xué)習(xí)Hadoop,需要知道Hadoop生態(tài)圈中各個(gè)項(xiàng)目的功能與作用,為何要用開(kāi)發(fā)這種新項(xiàng)目,而不使用已有項(xiàng)目實(shí)現(xiàn)這種功能。
2.1 HDFS
Hadoop的底層文件系統(tǒng),與傳統(tǒng)文件系統(tǒng)不同在于它是分布式的。同時(shí)與已有的分布式文件系統(tǒng)相比,它又有著舊分布式文件系統(tǒng)沒(méi)有的優(yōu)點(diǎn)。如:高可用性,高可靠性,吞吐量大,能使用廉價(jià)服務(wù)器構(gòu)建,可通過(guò)不斷增加機(jī)器數(shù)來(lái)進(jìn)行拓展。具體實(shí)現(xiàn)在HDFS文章中記錄。
2.2 HBase
構(gòu)建在HDFS之上的分布式數(shù)據(jù)庫(kù)系統(tǒng)。是一種基于列的NoSQL數(shù)據(jù)庫(kù),從另一個(gè)角度看也能看成鍵值對(duì)的NoSQL數(shù)據(jù)庫(kù)。與傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)相比,最大的優(yōu)勢(shì)在于可通過(guò)增加機(jī)器進(jìn)行橫向擴(kuò)展,并且能使用廉價(jià)服務(wù)器。
2.3 Hive
一種分布式數(shù)據(jù)倉(cāng)庫(kù),可以導(dǎo)入外部數(shù)據(jù)后用類SQL語(yǔ)言進(jìn)行操作。一般用于歷史數(shù)據(jù)的查詢與分析。與HBase不同,HBase常用于實(shí)時(shí)的交互式查詢。
2.4 MapRuduce
一種分布式計(jì)算框架,MapRuce本來(lái)就是一種計(jì)算模型的名稱。核心思想是“分而治之”,能將計(jì)算分解成多個(gè)小計(jì)算,由多個(gè)機(jī)器同時(shí)計(jì)算。適合離線批處理。
2.5 Storm
一種流式計(jì)算框架,MapRuce適合批處理,無(wú)法完成流式數(shù)據(jù)的處理,因此開(kāi)發(fā)出流式處理框架。
2.6 常見(jiàn)大數(shù)據(jù)處理需求
•離線批處理,特點(diǎn):使用歷史數(shù)據(jù),大批量的處理,要求吞吐率。
•實(shí)時(shí)交互式處理,特點(diǎn):用戶交互使用,要求反映速度在秒級(jí)到數(shù)分鐘之間。
•流式數(shù)據(jù)處理,特點(diǎn):數(shù)據(jù)以流的形式輸入,要求毫秒級(jí)的處理速度,且處理后的數(shù)據(jù)大部分都不用儲(chǔ)存。
2.7 Hadoop組件關(guān)系
基本的關(guān)系就是,底層用HDFS存儲(chǔ),之上是核心計(jì)算框架MapRuduce。而Hive,Hbase,Pig等等組件一般都是將自身的操作轉(zhuǎn)化成Mapreduce代碼然后通過(guò)Mapreduce進(jìn)行計(jì)算實(shí)現(xiàn)功能。同時(shí)與MapRuduce框架同一層次的Storm解決了流式數(shù)據(jù)的處理。Hbase雖然是使用Mapreduce框架進(jìn)行處理,但是基本也能實(shí)現(xiàn)實(shí)時(shí)交互式處理的要求。(也正是Mapreduce存在種種問(wèn)題,Spark漸漸興起,雖然Mapreduce也做了各種優(yōu)化,但是在某些領(lǐng)域相比Spark還是有些差距)。
三 Hadoop安裝
1.準(zhǔn)備。同一局域網(wǎng)的Linux服務(wù)器數(shù)臺(tái),我是用我的游戲本同時(shí)開(kāi)了3個(gè)虛擬機(jī)代替的。
2.Linux里創(chuàng)建hadoop用戶,專門(mén)負(fù)責(zé)Hadoop項(xiàng)目,便于管理與權(quán)限劃分。
3.安裝JDK,下載Hadoop時(shí)官方會(huì)指明JDK版本需求,設(shè)置JDK環(huán)境變量
4.安裝SSH并設(shè)置免密登錄。因?yàn)镠DFS的NameNode與其他DateNode等節(jié)點(diǎn)的通訊與管理就是基于SSH協(xié)議的。并且將要使用的機(jī)器域名寫(xiě)入hosts文件,方便命名。
5.去官網(wǎng)下載并解壓Hadoop。修改hadoop配置文件,位于hadoop/etc/hadoop /下面,分別有:
•slaves。寫(xiě)入DateNode的機(jī)器,因?yàn)橹靶薷牧擞蛎馕鑫募?,可以直接?xiě)域名,不用寫(xiě)IP了。
•core-site.xml。Hadoop的核心配置文件
fs.defaultFS,默認(rèn)文件系統(tǒng)的主機(jī)和端口,這里的文件系統(tǒng)就是hdfs。
hadoop.tmp.dir hadoop的臨時(shí)文件路徑,不設(shè)置則會(huì)使用系統(tǒng)臨時(shí)文件路徑,系統(tǒng)重啟后就丟失了。
configuration>
property>
name>fs.defaultFS/name>
value>hdfs://Master:9000/value>
/property>
property>
name>hadoop.tmp.dir/name>
value>file:/usr/local/hadoop/tmp/value>
description>Abase for other temporary directories./description>
/property>
/configuration>
•hdfs-site.xml。HDFS的配置文件
dfs.namenode.secondary.http-address。SecondNameNode的機(jī)器和端口
dfs.replication。HDFS系統(tǒng)保存的文件副本數(shù)。
dfs.namenode.name.dir,dfs.datanode.data.dir。NameNode和DataNode數(shù)據(jù)在原本文件系統(tǒng)中的存放位置。
configuration>
property>
name>dfs.namenode.secondary.http-address/name>
value>Master:50090/value>
/property>
property>
name>dfs.replication/name>
value>1/value>
/property>
property>
name>dfs.namenode.name.dir/name>
value>file:/usr/local/hadoop/tmp/dfs/name/value>
/property>
property>
name>dfs.datanode.data.dir/name>
value>file:/usr/local/hadoop/tmp/dfs/data/value>
/property>
/configuration>
•mapred-site.xml。MapReuce的配置文件
mapreduce.framework.name。MapReuce的資源管理系統(tǒng)。這個(gè)選yarn,原本是MapReuce自己進(jìn)行分布式計(jì)算時(shí)的資源管理,后來(lái)發(fā)現(xiàn)效率不足便分割開(kāi)來(lái)重新開(kāi)發(fā)了一套框架。
mapreduce.jobhistory.address。MapReuce的任務(wù)日志系統(tǒng),指定機(jī)器和端口。
mapreduce.jobhistory.webapp.address。任務(wù)日志系統(tǒng)web頁(yè)面所使用的機(jī)器和端口,通過(guò)這個(gè)可以在web頁(yè)面中查看任務(wù)日志系統(tǒng)。
configuration>
property>
name>mapreduce.framework.name/name>
value>yarn/value>
/property>
property>
name>mapreduce.jobhistory.address/name>
value>Master:10020/value>
/property>
property>
name>mapreduce.jobhistory.webapp.address/name>
value>Master:19888/value>
/property>
/configuration>
•yarn-site.xml。YARN的配置文件
yarn.resourcemanager.hostname。YARN的ResourceManager所使用的機(jī)器。這個(gè)負(fù)責(zé)進(jìn)行全局的資源分配,管理。
yarn.nodemanager.aux-services。可以自定義一些服務(wù),比如MapReuce的shuffle就是用這個(gè)配置的。目前我們使用填shuffle就行了。
configuration>
property>
name>mapreduce.framework.name/name>
value>yarn/value>
/property>
property>
name>mapreduce.jobhistory.address/name>
value>Master:10020/value>
/property>
property>
name>mapreduce.jobhistory.webapp.address/name>
value>Master:19888/value>
/property>
/configuration>
1.配置好以后將Hadoop文件從主節(jié)點(diǎn)復(fù)制到各個(gè)從節(jié)點(diǎn),Hadoop的HADFS與MapReduce就安裝完成了。(CentOs系統(tǒng)需要關(guān)閉相應(yīng)防火墻)
四 Hadoop生態(tài)圈其他組件安裝
看看網(wǎng)友博客和官方文檔差不多就會(huì)了,基本一個(gè)形式。下載解壓-配置環(huán)境變量-配置組件的配置文件,基本都是xxxx-env.sh,xxx-site.sh,xxx-core.sh,slave,work這種,在里面按照需求配置參數(shù)就好了,具體參數(shù)意思和必須要配置的參數(shù)看看官方文檔也就懂了(滑稽)。
總結(jié)
以上所述是小編給大家介紹的Hadoop介紹與安裝配置方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
您可能感興趣的文章:- 詳解Hadoop 運(yùn)行環(huán)境搭建過(guò)程
- hadoop分布式環(huán)境搭建過(guò)程
- hadoop基于Linux7的安裝配置圖文詳解
- Hadoop源碼分析二安裝配置過(guò)程詳解