Hadoop yarn完全分散式安裝筆記

停不下的腳步發表於2014-12-18


版本及配置簡潔
Java:   JDK1.7.0_71
Hadoop: hadoop-2.5.2
Linux:  centos6.4 64bit


暫且配置3臺機器,假設三臺機器IP如下:
192.168.40.138 master
192.168.40.137 slave-1
192.168.40.136 slave-2
一.前置環境配置
1.建立hadoop使用者
以下操作使用root使用者
$useradd -d /home/hadoop -s /bin/bash hadoop
$passwd hadoop
hadoop
2.關閉防火牆 (每臺機器都需)
$chkconfig iptables off
關閉selinux
$vi /etc/selinux/config
SELINUX=disabled


修改機器名
$vi /etc/sysconfig/network
將三臺機器的名字分別改為master,slave-1,slave-2


配置hosts檔案
$vi /etc/hosts 追加
192.168.40.138 master
192.168.40.137 slave-1
192.168.40.136 slave-2


重啟機器
$reboot
3.配置SSH互信
修改SSH配置檔案
$vi /etc/ssh/sshd_config
找到下列行 去掉註釋#
RSAAuthentication yes //字面意思..允許RSA認證 PubkeyAuthentication yes //允許公鑰認證 AuthorizedKeysFile .ssh/authorized_keys //公鑰存放在.ssh/au..檔案中 


重啟SSH
$/etc/init.d/sshd restart


#切換至hadoop使用者在master上進行如下操作
$ssh-keygen -t rsa
回車


在slave-1上操作
$ssh-keygen -t rsa
$scp /home/hadoop/.ssh/id_rsa.pub hadoop@master:~/.ssh/id_rsa.pub.slave-1


在slave-2上操作
$ssh-keygen -t rsa
$scp /home/hadoop/.ssh/id_rsa.pub hadoop@master:~/.ssh/id_rsa.pub.slave-2


在master上操作
$cat id_rsa.pub >> authorized_keys
$cat id_rsa.pub.slave-1 >> authorized_keys
$cat id_rsa.pub.slave-2 >> authorized_keys
$scp authorized_keys hadoop@slave-1:~/.ssh/
$scp authorized_keys hadoop@slave-2:~/.ssh/


在每臺機器上修改下面兩個檔案的許可權:
$chmod 600 ~/.ssh/authorized_keys
$chmod 700 ~/.ssh/


測試是否SSH互信配置好了:
$ssh master
$ssh slave-1
$ssh slave-2


4.JDK安裝
給叢集每臺機器安裝JDK,並且設定好JAVA_HOME
$mkdir /usr/java
將jdk-7u71-linux-x64.tar上傳到/usr/java目錄並解壓
$tar -xvf jdk-7u71-linux-x64.tar /usr/java
$rm -rf jdk-7u71-linux-x64.tar
$mv /usr/java/jdk1.7.0_71 /usr/java/jdk1.7


設定JAVA_HOME
$vi /etc/profile 追加下面檔案
export JAVA_HOME=/usr/java/jdk1.7
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=.:$JAVA_HOME/bin:$PATH
$source /etc/profile
$java -version 檢驗JAVA環境變數是否設定好了
二.hadoop安裝
1.解壓並重新命名hadoop
在master操作
將hadoop-2.5.2.tar 上傳到/home/hadoop目錄下並解壓
$tar -xvf hadoop-2.5.2.tar
$rm -rf hadoop-2.5.2.tar


2.建立hadoop需要的目錄
建立如下資料夾(在每臺節點建立)
mkdir -p /home/hadoop/tmp
mkdir -p /home/hadoop/dfs/name
mkdir -p /home/hadoop/dfs/data


3.配置HADOOP_HOME
$vi /etc/profile 新增
export HADOOP_HOME=/home/hadoop/hadoop-2.5.2/
export PATH=$PATH:$HADOOP_HOME/bin


4.編輯slaves
vi /home/hadoop/hadoop-2.5.2/etc/hadoop/slaves
#新增如下內容
slave-1
slave-2
5.給hadoop指定JAVA_HOME
vi hadoop_env.sh
找到JAVA_HOME 設值為/usr/java/jdk1.7
6.修改hadoop配置檔案
1).修改core-site.xml
$vi /home/hadoop/hadoop-2.5.2/etc/hadoop/core-site.xml
<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
  </property>
  <property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>file:/home/hadoop/tmp</value>
    <description>Abase for other temporary   directories.</description>
  </property>
  <property>
    <name>hadoop.proxyuser.hadoop.hosts</name>
    <value>*</value>
  </property>
  <property>
    <name>hadoop.proxyuser.hadoop.groups</name>
    <value>*</value>
  </property>
</configuration>
2).修改hdfs-site.xml
$vi /home/hadoop/hadoop-2.5.2/etc/hadoop/hdfs-site.xml
<configuration>
  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>master:9001</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/home/hadoop/dfs/name</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/home/hadoop/dfs/data</value>
  </property>
  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>
  <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
  </property>
</configuration>
3).修改mapred-site.xml
$mv mapred-site.xml.templete mapred-site.xml
$vi /home/hadoop/hadoop-2.5.2/etc/hadoop/mapred-site.xml
<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.address</name>
    <value>master:10020</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>master:19888</value>
  </property>
</configuration>
4).修改yarn-site.xml
$vi /home/hadoop/hadoop-2.5.2/etc/hadoop/yarn-site.xml
<configuration>
  <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>
  <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>
</configuration>
7.拷貝軟體到其他節點
scp -r /home/hadoop/hadoop-2.5.2 slave-1:/home/hadoop/
scp -r /home/hadoop/hadoop-2.5.2 slave-2:/home/hadoop/
scp -r /home/hadoop/hadoop-2.5.2 slave-3:/home/hadoop/


8.格式化hdfs檔案系統
 $hdfs namenode –format
9.啟動hadoop
$/home/hadoop/hadoop-2.5.2/sbin/start-all.sh
10.檢測master節點:有以下三個程式表示啟動成功
檢測master節點:有以下三個程式表示啟動成功
$jps
41837 SecondaryNameNode
41979 ResourceManager
41661 NameNode
檢測slave節點:有以下兩個程式表示啟動成功
$jps
[root@master hadoop]# jps
4543 DataNode
4635 NodeManager

相關文章