原文位址:http://blog.chinaunix.net/uid-23062171-id-4217333.html
1 安裝準備
此叢集共三台機器,一台作為master: NameNode/ResouceManager,其餘作為slaves: DataNode/NodeManager
三台機器都增加一個使用者名,比如:hadoop
1.1 安裝jdk
請參考《ubuntu 12.04安裝oracle jdk1.7》
1.2 設定叢集中每台機器的hostname
$sudo vim /etc/hostname 在此檔案中修改自己的hostname,修改好後可以使用以下指令進行檢視
$hostname
在叢集中的每台機器中修改hosts檔案,一般是修改好一個檔案後将檔案傳到其他機器相應的路徑下
$sudo vim /etc/hosts
在此檔案中加入以下内容,比如
192.168.8.1 master
192.168.8.2 slave1
192.168.8.3 slave2
1.3 安裝ssh
直接使用指令進行安裝
$sudo apt-get install ssh
2 安裝部署
2.1 設定叢集ssh無密碼登入
$ssh-keygen -t dsa -P '' 在.ssh目錄下生成兩個檔案一個是id_dsa,一個是id_dsa.pub
$cat id_dsa.pub >> authorized_keys 将id_dsa.pub中的内容追加到認證的公鑰檔案authorized_keys
$cat ~/.ssh/authorized_keys | ssh [email protected] "cat - >> ~/.ssh/authorized_keys" 将authorized_keys的内容追加到其他兩個機器的authorized_keys中
2.2 下載下傳hadoop2.2.0安裝包
下載下傳位址:http://apache.dataguru.cn/hadoop/common/hadoop-2.2.0/hadoop-2.2.0.tar.gz
2.3 解壓安裝包
$tar -xzvf hadoop-2.2.0.tar.gz
$cd hadoop-2.2.0
2.4 修改配置檔案
2.4.1
$sudo vim /etc/profile
在檔案末尾加上以下内容
# Hadoop
export HADOOP_HOME="/home/hadoop/hadoop-2.2.0"
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_MAPRED_HOME=${HADOOP_HOME}
export HADOOP_COMMON_HOME=${HADOOP_HOME}
export HADOOP_HDFS_HOME=${HADOOP_HOME}
export YARN_HOME=${HADOOP_HOME}
# Native Path
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
運作以下指令是環境變量生效
sudo source /etc/profile
2.4.2 hadoop-env.sh
$cd ~/hadoop-2.2.0/etc/hadoop/hadoop-env.sh
在檔案中加入以下内容
export JAVA_HOME=/usr/local/jdk1.7
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
2.4.3 yarn-env.sh
$cd ~/hadoop-2.2.0/etc/hadoop/yarn-env.sh
在檔案中加入以下内容
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
2.4.4 core-site.xml
$cd ~/hadoop-2.2.0/etc/hadoop/core-site.xml
在檔案中加入以下内容,臨時檔案夾需要自己建立。
點選(此處)折疊或打開
- <property>
- <name>fs.defaultFS</name>
- <value>hdfs://192.168.8.1:9000</value>
- <final>true</final>
- </property>
- <property>
- <name>hadoop.tmp.dir</name>
- <value>/home/hadoop/hadoop-2.2.0/temp</value>
- </property>
2.4.5 hdfs-site.xml
$cd ~/hadoop-2.2.0/etc/hadoop/hdfs-site.xml
在檔案中加入以下内容,name和data檔案夾需要自己建立
點選(此處)折疊或打開
- <property>
- <name>dfs.namenode.name.dir</name>
- <value>file:/opt/hadoo/dfs/name</value>
- <final>true</final>
- </property>
- <property>
- <name>dfs.datanode.data.dir</name>
- <value>file:/opt//hadoop/dfs/data</value>
- <final>true</final>
- </property>
- <property>
- <name>dfs.replication</name>
- <value>1</value>
- </property>
- <property>
- <name>dfs.permissions</name>
- <value>false</value>
- </property>
2.4.6 mapred-site.xml
$cd ~/hadoop-2.2.0/etc/hadoop/mapred-site.xml
在檔案中加入以下内容
點選(此處)折疊或打開
- <property>
- <name>mapreduce.framework.name</name>
- <value>yarn</value>
- </property>
- <property>
- <name>mapred.system.dir</name>
- <value>file:/opt/hadoop/mapred/system</value>
- <final>true</final>
- </property>
- <property>
- <name>mapred.local.dir</name>
- <value>file:/opt/hadoop/mapred/local</value>
- <final>true</final>
- </property>
2.4.7 yarn-site.xml
$cd ~/hadoop-2.2.0/etc/hadoop/yarn-site.xml
在檔案中加入以下内容
點選(此處)折疊或打開
- <property>
- <name>yarn.resourcemanager.address</name>
- <value>master:8032</value>
- </property>
- <property>
- <name>yarn.resourcemanager.scheduler.address</name>
- <value>master:8030</value>
- </property>
- <property>
- <name>yarn.resourcemanager.resource-tracker.address</name>
- <value>master:8031</value>
- </property>
- <property>
- <name>yarn.resourcemanager.admin.address</name>
- <value>master:8033</value>
- </property>
- <property>
- <name>yarn.resourcemanager.webapp.address</name>
- <value>master:8088</value>
- </property>
- <property>
- <name>yarn.nodemanager.aux-services</name>
- <value>mapreduce_shuffle</value>
- </property>
- <property>
- <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
- <value>org.apache.hadoop.mapred.ShuffleHandler</value>
- </property>
2.4.8 配置slaves檔案
在檔案中加入一下内容
slave1
slave2
2.5 将配置好的hadoop檔案夾考到其餘節點上
$scp -r ~/hadoop-2.2.0 hadoop@ 192.168.8.2:~/
$scp -r ~/hadoop-2.2.0 hadoop@ 192.168.8.3:~/
2.6 啟動叢集
2.6.1 格式化叢集
$cd ~/hadoop-2.2.0
$bin/hdfs namenode -format 如果成功啟動,那麼就可以啟動叢集完成自己的工作了
2.6.2 啟動叢集
$cd ~/hadoop-2.2.0/sbin
$./start-dfs.sh
$./start-yarn.sh
啟動完成之後可以在master和slave節點檢視,啟動的程序是否成功,使用一下指令
$jps
在master節點上應該有以下程序:ResourceManager、NameNode、SecondaryNameNode
在slave節點上應該有以下程序:NodeManager、DataNode