部署Hadoop須要Master無密碼訪問全部Slave主機,須要配置ssh登陸認證:java
192.168.1.22:node
ssh-keygen -t rsa #生成密鑰對。一路回車,在/root/.ssh/目錄下會生成id_rsa(私鑰)、id_rsa.pub(公鑰)密鑰對web
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.23 #將公鑰發送的被控主機apache
ssh登陸Master主機,安裝JDK環境(本次安裝的是java1.7,使用的是yum安裝,也能夠根據須要採用源碼安裝):vim
yum install java-1.7.0* -ybash
wget http://apache.fayea.com/hadoop/common/hadoop-2.6.4/hadoop-2.6.4.tar.gz tar -zxvf hadoop-2.6.4.tar.gz服務器
解壓完成後修改配置文件:app
【hadoop-2.6.4/etc/hadoop/hadoop-env.sh】框架
hadoop-env.sh:配置環境變量,指定JAVA_HOMEssh
#export JAVA_HOME=${JAVA_HOME} export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.111.x86_64 #將上面的${JAVA_HOME}修改成本機的java路徑
【hadoop-2.6.4/etc/hadoop/core-site.xml】 core-site.xml:Hadoopcore配置項,主要針對Common組件的屬性配置。
<configuration> <property> <name>hadoop.tmp.dir</name> #Hadoop用戶的臨時存儲目錄(可自定義路徑),默認路徑爲:/tmp/hadoop-${user.name} <value>/data/tmp/hadoop-${user.name}</value> </property> <property> <name>fs.defaultFS</name> <value>hdfs://192.168.1.22:9000</value> #master主機IP:9000端口 </property> </configuration>
【hadoop-2.6.4/etc/hadoop/hdfs-site.xml】 hdfs-site.xml:Hadoop的HDFS組件的配置項,包括Namenode、Secondarynamenode和Datanode
<configuration> <property> <name>dfs.namenode.name.dir</name> #Namenode持久存儲名字空間、事務日誌路徑 <value>/data/hdfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> #Datanode數據存儲路徑 <value>/data/hdfs/data</value> </property> <property> <name>dfs.datanode.max.xcievers</name> #Datanode所容許同時執行的發送和接收任務數量,默認爲256 <value>4096</value> </property> <property> <name>dfs.replication</name> #數據備份的個數,默認爲3 <value>2</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> #配置Secondarynamenode地址 <value>192.168.1.22:50090</value> </property> </configuration>
【hadoop-2.6.4/etc/hadoop/mapred-site.xml】 mapred-site.xml:配置map-reduce組件的屬性,包括jobtracker和tasktracker。
<configuration> <property> <name>mapreduce.framework.name</name> #使用yarn框架(MapReduce框架) <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> #MapReduce JobHistory Server地址 <value>192.168.1.22:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> #MapReduce JobHistory Server Web UI地址 <value>192.168.1.22:19888</value> </property> </configuration>
【hadoop-2.6.4/etc/hadoop/yarn-site.xml】
<configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.resourcemanager.hostname</name> #ResourceManager 對客戶端暴露的地址。客戶端經過該地址向RM提交應用程序,殺死應用程序等 <value>192.168.1.22</value> </property> <property> <name>yarn.nodemanager.aux-services</name> #NodeManager上運行的附屬服務。需配置成mapreduce_shuffle,纔可運行MapReduce程序 <value>mapreduce_shuffle</value> </property> </configuration>
【hadoop-2.6.4/etc/hadoop/masters】 該配置文件Master端生效 masers:配置Secondarynamenode項,起到HDFS文件系統元數據(metadata)信息的備份做用,當NameNode發生故障後能夠快速還原數據。
192.168.1.22 #本次Namenode和Secondnamenode在同一臺服務器上,生產環境應該分別使用獨立的服務器
【hadoop-2.6.4/etc/hadoop/slaves】 slaves:配置全部Slave主機信息,填寫IP地址便可。該配置文件放在Master端生效
192.168.1.23 192.168.1.24
配置完成後,從Master端複製Hadoop環境到全部Slave端,目標路徑要與Master保持一致。java環境也要保持一致。
scp -r /usr/local/hadoop-2.6.4/ root@192.168.1.23:/usr/local/ scp -r /usr/local/hadoop-2.6.4/ root@192.168.1.24:/usr/local/
配置環境變量
vim .bashrc #JAVA export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.111.x86_64 #Hadoop export HADOOP_HOME=/usr/local/hadoop-2.6.4 export PATH=$PATH:/usr/local/hadoop-2.6.4/bin:/usr/local/hadoop-2.6.4/sbin
在啓動hadoop以前,咱們須要作一步很是關鍵的步驟,須要在Master端格式化文件系統的namenode。(啓動只在Master端作,Slave不用)
hdfs namenode -format
啓動
start-dfs.sh start-yarn.sh mr-jobhistory-daemon.sh start historyserver
至此,安裝成功。
訪問測試
http://192.168.1.22:50070 HDFS存儲管理地址 http://192.168.1.22:8088 Map/Reduce管理地址
問題:
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable 解決:
wget http://dl.bintray.com/sequenceiq/sequenceiq-bin/hadoop-native-64-2.6.0.tar 解壓到 hadoop-2.6.4/lib/native/