hadoop-2.7.2偽分布模式安裝教程
hadoop-2.7.2偽分布模式安裝教程
?
安裝環(huán)境:
Ubuntu14.04- server
?
1.??創(chuàng)建hadoop用戶
若安裝Ubuntu時(shí)已創(chuàng)建hadoop用戶,可跳過此步驟。
(注:亦可使用其他用戶安裝hadoop,但建議最好使用hadoop用戶。)
sudo useradd hadoop
????? 設(shè)置密碼:
sudo passwd hadoop
????? 為hadoop用戶添加管理員權(quán)限:
? ? ? 方法一:
? ? ? ? ? ? sudo adduser hadoop sudo
? ? ? 方法二:
? ? ? ? ? ? 打開/etc/sudoers文件,在root用戶組中添加hadoop
? ? ? ? ? ? sudo nano /etc/sudoers
使用hadoop用戶登錄:
????? su hadoop
(注意:以下步驟均需在hadoop用戶下完成?。?/p>
2.??安裝ssh,配置ssh無密碼登錄
安裝ssh前,先更新一下apt:
sudo apt-get update
安裝ssh命令:
sudo apt-get install openssh-server
安裝后,啟動(dòng)ssh登錄本機(jī):
ssh localhost
? ? ? ? 作為一個(gè)安全通信協(xié)議,使用ssh登錄時(shí)需要輸入密碼,而在hadoop集群中,需要將ssh改成無密碼登錄,hadoop節(jié)點(diǎn)間才能正常通信。
退出ssh登錄:
exit
生成私鑰和公鑰:
cd ~/.ssh/
ssh-keygen -t rsa
將公鑰追加到authorized_keys文件中:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
再次使用ssh localhost登錄本機(jī),此時(shí)便不在需要輸入密碼了。
?
3.??安裝Java環(huán)境
安裝JRE和JDK:
sudo apt-get install openjdk-7-jre openjdk-7-jdk
(注意:hadoop2.7.2不再支持jdk1.6及以下版本)
配置Java環(huán)境變量:
為了方便對(duì)環(huán)境變量的統(tǒng)一管理,我們將其添加到/etc/profile文件中。
打開/etc/profile文件:
sudo nano /etc/profile
將以下內(nèi)容追加到文件中:
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
(注:JAVA_HOME為JDK的安裝路徑)
更新一下配置文件:
source /etc/profile
測(cè)試JAVA_HOME環(huán)境變量和Java版本:
echo $JAVA_HOME
java –version
若能正確輸出JAVA_HOME和Java版本,則Java環(huán)境配置成功。
?
4.??安裝hadoop-2.7.2
從Apache官網(wǎng)下載hadoop-2.7.2.tar.gz:
http://apache.fayea.com/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz
解壓hadoop-2.7.2.tar.gz:
sudo tar –zxvf ~/hadoop-2.7.2.tar.gz
將其移動(dòng)到合適位置:
sudo mv hadoop-2.7.2 /usr/local
重命名文件夾:
sudo mv hadoop-2.7.2 hadoop
配置hadoop環(huán)境變量:
為方便執(zhí)行hadoop命令,需在/etc/profile文件中配置hadoop環(huán)境變量。
打開/etc/profile文件:
sudo nano /etc/profile
將以下內(nèi)容追加到/etc/profile文件中:
export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin export PATH=$PATH:$HADOOP_HOME/lib export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
(注:HADOOP_HOME為HADOOP的安裝路徑)
更新一下配置文件:
source /etc/profile
修改hadoop-env.sh文件中的JAVA_HOME環(huán)境變量:
打開hadoop-env.sh文件:
sudo nano /usr/local/hadoop/etc/hadoop/hadoop-env.sh
將export JAVA_HOME=$JAVA_HOME改為JDK具體的安裝路徑。
更新hadoop-env.sh文件,使其生效:
source /usr/local/hadoop/etc/hadoop/hadoop-env.sh
查看hadoop版本:
hadoop version
若能正確顯示hadoop版本,則hadoop單機(jī)模式安裝成功。
?
5.??配置偽分布模式
? ? ? ?需要在/hadoop/etc/hadoop目錄下的core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml四個(gè)配置文件中添加配置,其中后兩個(gè)是用于配置YARN的。
? ? ? ?為方便偽分布模式的配置,可先對(duì)主機(jī)名進(jìn)行修改,將/etc/hostname文件中的內(nèi)容改為Master(名字可隨意,不一定是Master),這樣有利于后繼的完全分布式配置。
在core-site.xml中添加:
hadoop.tmp.dir file:/usr/local/hadoop/tmp Abase for other temporarydirectories. fs.defaultFS hdfs://Master:9000
在hdfs-site.xml文件中添加:
dfs.replication 1 dfs.namenode.name.dir file:/tmp/hadoop/dfs/name dfs.datanode.data.dir file:/tmp/hadoop/dfs/data dfs.namenode.secondary.http-address Master:50090
mapred-site.xml文件原先并不存在,需先將mapred-site.xml.template更名為mapred-site.xml:
sudo mv mapred-site.xml.template mapred-site.xml
然后在mapred-site.xml文件中添加:
mapreduce.framework.name yarn mapreduce.jobhistory.address Master:10020 mapreduce.jobhistory.webapp.address Master:19888
在yarn-site.xml文件中添加:
yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.hostname Master
修改完配置文件后,對(duì)namenode進(jìn)行格式化:
./bin/hdfs namenode –format
至此hadoop-2.7.2的偽分布模式配置完畢。
6.??啟動(dòng)hadoop守護(hù)進(jìn)程
啟動(dòng)dfs:
start-dfs.sh
啟動(dòng)后使用jps命令查看進(jìn)程,將看到NameNode、DataNode、SecondaryNamenode三個(gè)進(jìn)程。
啟動(dòng)YARN:
start-yarn.sh
啟動(dòng)后將增加ResourceManager、NodeManager兩個(gè)進(jìn)程。
也可以使用start-all.sh命令啟動(dòng)全部進(jìn)程(start-all.sh = start-dfs.sh + start-yarn.sh)
啟動(dòng)JobHistoryServer:
因?yàn)閙apred-site.xml文件中配置了JobHistoryServer,所以必須啟動(dòng)hadoop才能正常運(yùn)行。mr-jobhistory-daemon.sh start historyserver
?
7.??運(yùn)行hadoop偽分布式實(shí)例
在hdfs中創(chuàng)建輸入文件夾,并將文件拷貝到文件夾中:
./bin/hdfs dfs -mkdir input
./bin/hdfs dfs -put ./etc/hadoop/*.xml input
運(yùn)行mapreduce作業(yè):
hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar wordcount input output
等待mapreduce作業(yè)運(yùn)行結(jié)束,查看運(yùn)行結(jié)果:
hdfs dfs -cat output/*
(注意:在作業(yè)運(yùn)行之前,輸出路徑不能存在?。?/p>