Hadoop環(huán)境搭建過程: 1.目標: 安裝單機,偽分布式,,完全分布式環(huán)境的Hadoop,,并且使用HDFS上傳一個內(nèi)容為HelloWorld的文檔,使用Hadoop包中自帶的WordCount運行一個MapReduce過程,,熟悉部分HDFS的API使用,。 2.單機版本的環(huán)境搭建步驟: 1.使用的軟件版本介紹: 這里使用虛擬機VMware-workstation 版本12.1.1,,鏡像版本: ubuntu-16.04-desktop-amd64.iso,JDK版本:jdk-8u101-linux-x64.tar.gz,,Hadoop版本:hadoop-2.7.3.tar.gz,。 2.創(chuàng)建Hadoop用戶: 首先按 ctrl+alt+t 打開終端窗口,輸入如下命令創(chuàng)建新用戶 :sudo useradd -m hadoop -s /bin/bash,接著使用如下命令設(shè)置密碼,,可簡單設(shè)置為 hadoop,按提示輸入兩次密碼: sudo passwd hadoop,可為 hadoop 用戶增加管理員權(quán)限,,方便部署,,避免一些對權(quán)限問題:sudo adduser hadoop sudo,最后注銷當前用戶(點擊屏幕右上角的齒輪,選擇注銷),,在登陸界面使用剛創(chuàng)建的 hadoop 用戶進行登陸,。 3.安裝SSH: sudo apt-get update若出現(xiàn)如下 “Hash校驗和不符” 的提示,可通過更改軟件源來解決,。若沒有該問題,,則不需要更改。(具體更改方法:http://www./install-hadoop/)集群,、單節(jié)點模式都需要用到 SSH 登陸(類似于遠程登陸,,你可以登錄某臺 Linux 主機,并且在上面運行命令),,Ubuntu 默認已安裝了 SSH client,,此外還需要安裝 SSH server:sudo apt-get install openssh-server,安裝后,可以使用如下命令登陸本機:ssh localhost此時會有如下提示(SSH首次登陸提示),,輸入 yes ,。然后按提示輸入密碼 hadoop,這樣就登陸到本機了但這樣登陸是需要每次輸入密碼的,,我們需要配置成SSH無密碼登陸比較方便,。然后利用 ssh-keygen 生成密鑰,并將密鑰加入到授權(quán)中:exit退出剛才的 ssh,,切換目錄cd ~/.ssh/,,然后利用 ssh-keygen -t rsa 生成密鑰,cat ./id_rsa.pub >> ./authorized_keys 并將密鑰加入到授權(quán)中,,再使用 ssh localhost 登陸,,這次不用輸入用戶密碼,說明無密碼登錄成功,。 4.安裝JDK,,配置JAVA環(huán)境: (1)解壓壓縮包(使用命令解壓,命令不行使用手動解壓) (2)配置環(huán)境變量(vi ~/.bashrc,,添加一行export JAVA_HOME=JDK安裝路徑) (3)source ~/.bashrc 讓環(huán)境變量生效 (4)echo $JAVA_HOME java -version查看java 是否生效,當前終端可能有效,,但是換另外一個終端就不行,,繼續(xù)下面步驟 (5)cd /etc 然后 sudo vi environment 添加環(huán)境變量JAVA_HOME=jdk包的路徑,更新PATH,,PATH="$JAVA_HOME/bin:原來部分" (6)java -version javac -version (7)若出現(xiàn) * gcj-4.4-jre-headless * openjdk-6-jre-headless * cacao * gij-4.3 這樣的情況,,說明系統(tǒng)沒有默認的JDK,所以系統(tǒng)還是要求下載包含JDK命令的軟件,。修改現(xiàn)有的為默認jdk (8)執(zhí)行 sudo update-alternatives --install /usr/bin/java java /home/shu/soft/jdk1.8.0_101/bin/java 1000 sudo update-alternatives --install /usr/bin/javac javac /home/shu/soft/jdk1.8.0_101/bin/javac 1000 sudo update-alternatives --install /usr/bin/jps jps /usr/lib/jvm/jdk1.8.0_101/bin/jps 1000 sudo update-alternatives --config java (9)關(guān)閉終端,,重新開啟終端,再java -version和javac -version (10)命令jps 出現(xiàn)9300 Jps 說明java配置成功 5.配置Hadoop:(Hdoop下載鏈接:http://mirror./apache/hadoop/common/) (1)一般選擇下載最新的穩(wěn)定版本,,即下載 “stable” 下的 hadoop-2.x.y.tar.gz 這個格式的文件,,這是編譯好的,另一個包含 src 的則是 Hadoop 源代碼,,需要進行編譯才可使用,。 (2)建議也下載 hadoop-2.x.y.tar.gz.mds 這個文件,該文件包含了檢驗值可用于檢查 hadoop-2.x.y.tar.gz 的完整性,,否則若文件發(fā)生了損壞或下載不完整,,Hadoop 將無法正常運行。 (3)cat ~/Downloads/hadoop-2.7.3.tar.gz.mds | grep 'MD5'看輸出的MD5校驗 (4)md5sum ~/下載/hadoop-2.6.0.tar.gz | tr "a-z" "A-Z" 對比前面MD5的值是否一致,,一致說明包下載完整,,否則不完整,需要重新下載 (5)解壓壓縮包,若在根目錄下面,,需要加上sudo 或者直接給用戶管理員權(quán)限 (6)配置Hadoop環(huán)境變量和JDK配置環(huán)境變量相似 (7)cd /etc 然后 sudo vi environment 添加環(huán)境變量 (8)HADOOP_HOME=jdk包的路徑,,更新PATH,PATH="$HADOOP_HOME/sbin:原來部分" (9)Hadoop 默認模式為非分布式模式,,無需進行其他配置即可運行,。非分布式即單 Java 進程,方便進行調(diào)試?,F(xiàn)在我們可以執(zhí)行例子來感受下 Hadoop 的運行,。Hadoop 附帶了豐富的例子(運行 ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar 可以看到所有例子),包括 wordcount,、terasort,、join、grep 等,。在此我們選擇運行 grep 例子,,我們將 input 文件夾中的所有文件作為輸入,篩選當中符合正則表達式 dfs[a-z.]+ 的單詞并統(tǒng)計出現(xiàn)的次數(shù),,最后輸出結(jié)果到 output 文件夾中,。 3.偽分布式的環(huán)境搭建步驟: 1.偽分布式基本運行環(huán)境與單機環(huán)境一致 2.Hadoop 偽分布式需要修改配置文件 core-site.xml 和 hdfs-site.xml 等。 (1)cd Hadoop安裝路徑/etc/hadoop 然后 ls (2)需要編輯的文件有 hadoop-env.sh core-site.xml hdfs-site.xml (mapred-site.xml.template) yarn-site.xml slaves (3)sudo vi hadoop-env.sh 把java環(huán)境寫成絕對路徑,,以免沒有配置JAVA_HOME的時候,,找不到j(luò)dk (4)配置core-site.xml 配置Common組件的屬性 <configuration> <property> <name>hadoop.tmp.dir</name> //hadoop臨時目錄用來存放nn臨時文件 <value>file:/hadoop/hadoop-2.7.3/tmp</value> //該目錄必須預(yù)先手工創(chuàng)建不能刪除 </property> <property> <name>fs.defaultFS</name> //配置NN節(jié)點地址和端口號 <value>hdfs://localhost:9000</value> </property> <property> <name>fs.checkpoint.period</name> //snn檢查nn日志的時間周期 <value>3600</value> //單位秒,,實際情況應(yīng)該是12小時 </property> </configuration> (5)配置 hdfs-site.xml <configuration> <property> <name>dfs.replication</name> //備份數(shù)設(shè)置為1 <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> //若不自定義目錄,HDFS重啟,,則需要format <value>file:/hadoop/hadoop-2.7.3/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/hadoop/hadoop-2.7.3/tmp/dfs/data</value> </property> </configuration> (6)配置文件 mapred-site.xml(需要先將原本的文件mapred-site.xml.template cp mapred-site.xml,,然后更改mapred-site.xml即可 ) <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> (7)接著修改配置文件 yarn-site.xml <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> 3.配置完成后 (1)執(zhí)行Namenode的格式化操作 bin/hdfs namenode -format 成功的話,會看到 “successfully formatted” 和 “Exitting with status 0” 的提示,,若為 “Exitting with status 1” 則是出錯,。 (2)開啟 NameNode 和 DataNode 守護進程 sbin/start-dfs.sh然后使用jps查看進程,出現(xiàn)進程有jps SecondaryNamenode DataNode Namenode ,,即說明啟動HDFS成功 (3)開啟yarn運算框架sbin/start-yarn.sh 出現(xiàn)jps SecondaryNamenode DataNode Namenode ResourceManager NodeManager 說明啟動yarn運算框架成功 (4)成功啟動后,,可以訪問 Web 界面 http://localhost:50070 查看 NameNode 和 Datanode 信息,還可以在線查看 HDFS 中的文件,。 (5)啟動 YARN 可以通過 Web 界面查看任務(wù)的運行情況:http://localhost:8088/查看 4.完全分布式的環(huán)境搭建步驟: 1.基本環(huán)境與偽分布式環(huán)境一致 2.Hadoop 集群的安裝配置大致為如下流程: 選定一臺機器作為 Master在 Master 節(jié)點上配置 hadoop 用戶、安裝 SSH server,、安裝 Java 環(huán)境在 Master 節(jié)點上安裝 Hadoop,,并完成配置在其他 Slave 節(jié)點上配置 hadoop 用戶、安裝 SSH server,、安裝 Java 環(huán)境將 Master 節(jié)點上的 hadoop 目錄復(fù)制到其他 Slave 節(jié)點上在 Master 節(jié)點上開啟 Hadoop,。 3.將配置過的偽分布式的虛擬機關(guān)閉,使用虛擬機的克隆功能,,克隆一個主機出來當作分支節(jié)點,,原來的主機作為主節(jié)點,更改兩個主機的名字為master和slave,,以便區(qū)分主從結(jié)構(gòu),,就可以直接使用master節(jié)點配置好的hadoop環(huán)境,不用再在Slave節(jié)點上再次配置hadoop,。 4.編輯master和Slave兩個主機的etc/hosts文件,,將兩個主機的ip以及主機名加入到hosts中。 5.使用ping命令,,ping 主機名,,看是否能夠ping通,ping通說明hosts文件配置成功,。 6.配置主機和分支的SSH無密碼登陸:需要讓master節(jié)點和分支節(jié)點slave之間可以無密碼相互登陸,,所以需要先在master節(jié)點上面ssh-keygen -t rsa -p '' 產(chǎn)生 .ssh 文件夾,將公鑰加入一直authorized_keys中,,再將公鑰共享給Slave,,自己手動建立.ssh文件,后面同樣操作,,在master節(jié)點上面ssh Slave,,連接成功,,再在Slave上面ssh master。這里使用ssh 主機名 ,,必須先在etc/hosts下面寫上主機名和其對對應(yīng)的ip,,否則直接使用ssh ip。 (詳細參考鏈接:http://www./lib/view/open1386252393705.html#articleHeader4) 7.在主機中使用ssh 從機名,,”@”后面的機器名變了,,由"master"變?yōu)榱?slave",這就說明我們已經(jīng)成功實現(xiàn)了SSH無密碼登錄了,,同樣在從機上ssh 主機名,,結(jié)果變?yōu)閙aster,說明成功,,這樣主從機就可以無密碼相互登陸了,。 8.文件 hdfs-site.xml,dfs.replication 一般設(shè)為 3,,但我們只有一個 Slave 節(jié)點,,所以 dfs.replication 的值還是設(shè)為 1。 9.配置mapred-site.xml,,修改Hadoop中MapReduce的配置文件,,配置的是JobTracker的地址和端口。 9.將主機中的slaves文件中的localhost改為從機的主機名,,有多少個從機就配置多少個,,從機的salves文件中就直接寫localhost就可以。 10.配置完成后,,使用bin/hdfs namenode -format 格式化HDFS,,然后再使用命令sbin/start-dfs.sh啟動HDFS。 To be continue.......... |
|
來自: 關(guān)平藏書 > 《Hadoop家族》