偽分布式搭建Hadoop

前提
默認(rèn)安裝前準(zhǔn)備已經(jīng)做好(jdk,ssh)
1.偽分布式:以分離的Java進(jìn)程來運(yùn)行,結(jié)點(diǎn)即作為NameNode也作為DataNode,同時(shí)讀取的是HDFS
2.修改Hadoop環(huán)境變量(這些變量也可以在/usr/local/hadoop/etc/hadoop/hadoop-env.sh修改)


3.修改Hadoop的配置(hadoop的配置文件位置/usr/local/hadoop/etc/hadoop/)
配置文件格式:Hadoop的配置文件是 xml 格式,每個配置以聲明 property 的 name 和 value 的方式來實(shí)現(xiàn)。
1)修改core-site.xml


2)修改hdfs-site.xml


3)修改hadoop-env.sh



4.開啟NameNode與DataNode守護(hù)進(jìn)程

5.檢驗(yàn)是否配置成功

一般回看到NameNode和DataNode和SecondaryNameNode
如果沒有Secondary的話,先運(yùn)行

6.成功啟動后,可以訪問 Web 界面 http://localhost:50070 查看 NameNode 和 Datanode 信息,還可以在線查看 HDFS 中的文件。

7.啟動Yarn
以前跟很多人交流的時(shí)候發(fā)現(xiàn),這里安裝沒出現(xiàn)JobTracker和TaskTracker,后來才知道這是因?yàn)槌霈F(xiàn)流yarn。
上面的/usr/local/hadoop/etc/hadoop/sbin/start-dfs.sh僅僅是啟動MapReduce環(huán)境,我們啟動Yarn,讓Yarn來負(fù)責(zé)資源管理與任務(wù)調(diào)度。
1)首先修改配置文件mapred-site.xml.template?,這邊需要先進(jìn)行重命名為mapred-site.xml




2)啟動Yarn(這一步前提條件是已經(jīng)執(zhí)行(/usr/local/hadoop/etc/hadoop/sbin/start-dfs.sh)

3)這時(shí)通過jps,可以看到多了NodeManager和ResourceManager兩個后臺程序


注意:
(1)啟動 YARN 之后,運(yùn)行實(shí)例的方法還是一樣的,僅僅是資源管理方式、任務(wù)調(diào)度不同。觀察日志信息可以發(fā)現(xiàn),不啟用 YARN 時(shí),是 “mapred.LocalJobRunner” 在跑任務(wù),啟用 YARN 之后,是 “mapred.YARNRunner” 在跑任務(wù)。啟動 YARN 有個好處是可以通過 Web 界面查看任務(wù)的運(yùn)行情況:http://localhost:8088/cluster

(2)不啟動 YARN 需重命名 mapred-site.xml
如果不想啟動 YARN,務(wù)必把配置文件 mapred-site.xml 重命名,改成 mapred-site.xml.template,需要用時(shí)改回來就行。否則在該配置文件存在,而未開啟 YARN 的情況下,運(yùn)行程序會提示 “Retrying connect to server: 0.0.0.0/0.0.0.0:8032” 的錯誤,這也是為何該配置文件初始文件名為 mapred-site.xml.template。

4)關(guān)閉Yarn的腳本

8.感受一下Hadoop的運(yùn)行
同單機(jī)模式的例子,選擇運(yùn)行 grep 例子,我們將 input 文件夾中的所有文件作為輸入,篩選當(dāng)中符合正則表達(dá)式?dfs[a-z.]+
?的單詞并統(tǒng)計(jì)出現(xiàn)的次數(shù)。
偽分布式運(yùn)行 MapReduce 作業(yè)的方式跟單機(jī)模式相同,區(qū)別在于偽分布式讀取的是HDFS中的文件(可以將單機(jī)步驟中創(chuàng)建的本地 input 文件夾,輸出結(jié)果 output 文件夾都刪掉來驗(yàn)證這一點(diǎn))。



在實(shí)際開發(fā)應(yīng)用程序時(shí),可考慮在程序中加上如下代碼,能在每次運(yùn)行時(shí)自動刪除輸出目錄,避免繁瑣的命令行操作
