hadoop-2.2.0装配方法详解

hadoop-2.2.0安装方法详解

hadoop有三种安装模式:
         单机模式:安装简单,几乎不用作任何配置,但仅限于调试用途
         伪分布模式:在单节点上同时启动namenode、datanode、ResourceManager、NodeManager、secondary namenode等5个进程,模拟分布式运行的各个节点
         完全分布式模式:正常的Hadoop集群,由多个各司其职的节点构成

hadoop-2.2.0的安装步骤和hadoop-1.2.1的安装步骤有些相同,建议先看看 hadoop-1.2.1安装方法详解 ,前7步直接按hadoop-1.2.1的步骤,从第8步开始有所不同


一、环境准备
1、安装VMware软件,然后在VMware里安装三台Linux虚拟机(我使用的是redhat)
2、设置虚拟机

主机名
ip
内存
硬盘
master
192.168.10.200
500M
8G
slave1
192.168.10.201
500M
8G
slave2
192.168.10.202
500M
8G

3、下载hadoop-1.2.1安装文件hadoop-1.2.1-bin.tar.gz

二、安装
注:标示“三台主机”的表示要在三台电脑上都做该操作,“master节点”表示只在mdw主机上操作
1、关闭防火墙(三台主机)(学习时可以直接关闭,正式环境是通过开放端口)
service iptables stop  停止防火墙服务,重启电脑后仍然会开启
chkconfig iptables off  关闭防火墙服务开机启动,重启后生效
可以两个命令结合使用避免重启

2、关闭SELINUX(三台主机)
修改/etc/selinux/config 中的SELINUX="" 为 disabled 

3、修改hosts文件(三台主机)
在hosts文件中添加或修改一下内容
192.168.10.200 master
192.168.10.201 slave1
192.168.10.202 slave2

由于我以前安装greenplum时已经修改过hosts文件,所以我直接追加相应的解析名:
192.168.10.200 mdw master
192.168.10.201 sdw1 slave1
192.168.10.202 sdw2 slave2

greendplum安装方法: http://blog.csdn.net/gnail_oug/article/details/46945283

添加之后,可以通过ping命令测试是否正确,如:ping slave1 测试是否能访问slave1节点

4、配置java环境(三台主机)
上传jdk文件并授权之后,执行安装配置
[root@mdw temp]# . /jdk-6u45-linux-i586-rpm.bin


验证jdk安装
[root@mdw temp]# java -version
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) Client VM (build 20.45-b01, mixed mode, sharing)

5、创建hadoop用户,并设置密码(三台主机)
[root@mdw temp]# useradd hadoop
[root@mdw temp]# passwd hadoop


6、设置无密码登录(三台主机)
      (1)三台主机上分别使用hadoop用户登录,生成密钥
[hadoop@mdw ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa): (按Enter键)
Created directory '/home/hadoop/.ssh'.
Enter passphrase (empty for no passphrase): (按Enter键)
Enter same passphrase again: (按Enter键)
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
02:68:05:12:5b:b2:8e:53:e8:d0:0d:85:b8:77:ad:49 hadoop@mdw
The key's randomart image is:
+--[ RSA 2048]----+
|+o++o            |
|.O.=             |
|=.= o.           |
|*o. E..          |
|o+ o o. S        |
| .  o  .         |
|                 |
|                 |
|                 |
+-----------------+


这样在hadoop用户目录下产生了一个.ssh隐藏文件夹

        (2)配置SSH无密码登录主机
三台主机分别将公钥id_rsa.pub的内容追加到authorized_keys文件,并将authorized_keys文件发送到其他两台主机
[hadoop@mdw ~]$ cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
[hadoop@mdw ~]$ scp ~/.ssh/authorized_keys slave1:~/.ssh/
执行完以上操作后,每台主机的authorized_keys文件里都包含这三台主机的公钥

       (3)三台主机上分别更改authorized_keys文件的权限为600
[hadoop@mdw .ssh]$ chmod 600 authorized_keys 
       (4)验证SSH无密码登录
[hadoop@mdw ~]$ ssh slave1
[hadoop@mdw ~]$ ssh slave2
在任意一台主机上,都可以无密码登录到另外两台主机


7、配置hadoop用的jdk环境变量(master主机)
在hadoop用户文件夹下的 .bashrc文件中添加以下内容

export JAVA_HOME=/usr/java/jdk1.6.0_45
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib
将 .bashrc文件发送到另外两台主机
[hadoop@mdw ~]$ scp .bashrc slave1:~
[hadoop@mdw ~]$ scp .bashrc slave2:~


8、上传hadoop-2.2.0.tar.gz安装程序并解压(master主机)
[hadoop@mdw temp]$ cp /mnt/cdrom/hadoop-2.2.0.tar.gz .
[hadoop@mdw temp]$ tar xzf hadoop-2.2.0.tar.gz 


9、修改.bashrc文件,配置环境变量,添加或修改以下内容,并发送到另外两台主机

export HADOOP_HOME=/home/hadoop/hadoop-2.2.0
export HADOOP_MAPARED_HOME=${HADOOP_HOME}
export HADOOP_COMMON_HOME=${HADOOP_HOME}
export HADOOP_HDFS_HOME=${HADOOP_HOME}
export YARN_HOME=${HADOOP_HOME}
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HDFS_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export YARN_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

注意,如果已经安装过hadoop-1.2.1,需要把hadoop-1.2.1的环境变量去掉,hadoop-2.2.0配置时PATH中添加了bin和sbin两个目录
发送到另外两台主机:
[hadoop@mdw ~]$ scp .bashrc slave1:~
[hadoop@mdw ~]$ scp .bashrc slave2:~

10、修改/home/hadoop/hadoop-2.2.0/etc/hadoop/hadoop-env.sh文件,配置hadoop的运行环境(master主机)
将里面的
#export HADOOP_HEAPSIZE=
去掉注释,并改为
export HADOOP_HEAPSIZE=100
如果你电脑的内存够大,这里可以不用配置,也可以根据你自己的电脑内存情况配置

11、修改/home/hadoop/hadoop-2.2.0/etc/hadoop/mapred-env.sh文件,添加修改JAVA_HOME环境变量
export JAVA_HOME=/usr/java/jdk1.6.0_45

12、修改/home/hadoop/hadoop-2.2.0/etc/hadoop/yarn-env.sh文件
添加环境变量:
export JAVA_HOME=/usr/java/jdk1.6.0_45
YARN_HEAPSIZE=100

修改JAVA_HEAP_MAX最大为300m
JAVA_HEAP_MAX=-Xmx300m 
如果主机的内存比较大,可以使用默认不设置YARN_HEAPSIZE和JAVA_HEAP_MAX,也可以根据主机内存大小做相应配置

13、修改/home/hadoop/hadoop-2.2.0/etc/hadoop/slaves文件,内容改为:
slave1
slave2

14、创建hadoop的工作目录,并把所属者改为hadoop,我这里是直接在根目录创建了一个hadoop2的文件夹
root用户:
[root@mdw /]# mkdir /hadoop2
[root@mdw /]# chown hadoop:hadoop /hadoop2

然后使用hadoop用户创建name和data文件夹
[hadoop@mdw hadoop2]$ mkdir -p /hadoop2/dfs/data /hadoop2/dfs/name

15、修改/home/hadoop/hadoop-2.2.0/etc/hadoop/core-site.xml 配置文件,添加修改以下配置
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/hadoop2/tmp</value>
        </property>
        <property>
                <name>hadoop.proxyuser.hadoop.hosts</name>
                <value>*</value>
        </property>
        <property>
                <name>hadoop.proxyuser.hadoop.groups</name>
                <value>*</value>
        </property>


16、修改/home/hadoop/hadoop-2.2.0/etc/hadoop/hdfs-site.xml 配置文件,添加修改以下配置
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>master:9001</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>/hadoop2/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>/hadoop2/dfs/data</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
        </property>
        <property>
                <name>dfs.webhdfs.enabled</name>
                <value>true</value>
        </property>


17、配置mapred-site.xml文件
根据/home/hadoop/hadoop-2.2.0/etc/hadoop/mapred-site.xml.template创建mapred-site.xml
[hadoop@mdw hadoop]$ cp mapred-site.xml.template mapred-site.xml
在mapred-site.xml里添加以下配置
        <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>
        <property>
                <name>mapreduce.map.memory.mb</name>
                <value>512</value>
        </property>
        <property>
                <name>mapreduce.map.cpu.vcores</name>
                <value>1</value>
        </property>
        <property>
                <name>mapreduce.reduce.memory.mb</name>
                <value>512</value>
        </property>

后面三个为可选的配置,根据自己电脑配置适当修改

18、修改/home/hadoop/hadoop-2.2.0/etc/hadoop/yarn-site.xml  配置文件,添加修改以下配置
        <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>
        <property>
                <name>yarn.scheduler.minimum-allocation-mb</name>
                <value>100</value>
        </property>
        <property>
                <name>yarn.scheduler.maximum-allocation-mb</name>
                <value>2000</value>
        </property>
        <property>
                <name>yarn.scheduler.minimum-allocation-vcores</name>
                <value>1</value>
        </property>
        <property>
                <name>yarn.scheduler.maximum-allocation-vcores</name>
                <value>2</value>
        </property>

后面四个为可选的配置,根据自己电脑配置适当修改

19、将.bashrc文件和配置好的hadoop-2.2.0文件夹发送到slave1和slave2节点
[hadoop@mdw ~]$ scp .bashrc slave1:~
[hadoop@mdw ~]$ scp .bashrc slave2:~
[hadoop@mdw ~]$ scp -r hadoop-2.2.0/ slave1:~
[hadoop@mdw ~]$ scp -r hadoop-2.2.0/ slave2:~

20、在slave1和slave2节点上分别创建hadoop2工作目录,并将所属用户改为hadoop用户
[root@sdw1 ~]# mkdir -p /hadoop2/dfs/data
[root@sdw1 ~]# chown -R hadoop:hadoop /hadoop2
[root@sdw2 ~]# mkdir -p /hadoop2/dfs/data
[root@sdw2 ~]# chown -R hadoop:hadoop /hadoop2


21、格式化namenode节点(master节点)
[hadoop@mdw ~]$ hdfs namenode -format

22、启动dfs,在master节点上执行命令start-dfs.sh
[hadoop@mdw ~]$ start-dfs.sh 
Starting namenodes on [master]
master: starting namenode, logging to /home/hadoop/hadoop-2.2.0/logs/hadoop-hadoop-namenode-mdw.out
slave2: starting datanode, logging to /home/hadoop/hadoop-2.2.0/logs/hadoop-hadoop-datanode-sdw2.out
slave1: starting datanode, logging to /home/hadoop/hadoop-2.2.0/logs/hadoop-hadoop-datanode-sdw1.out
Starting secondary namenodes [master]
master: starting secondarynamenode, logging to /home/hadoop/hadoop-2.2.0/logs/hadoop-hadoop-secondarynamenode-mdw.out

jps查看进程
[hadoop@mdw ~]$ jps
7050 NameNode
7189 SecondaryNameNode
7311 Jps

[hadoop@sdw1 ~]$ jps
4587 DataNode
4671 Jps

[hadoop@sdw2 ~]$ jps
4603 DataNode
4679 Jps

也可通过web界面访问,访问地址为:
http://192.168.10.200:50070/

23、在master节点上启动yarn
[hadoop@mdw ~]$ start-yarn.sh 
starting yarn daemons
starting resourcemanager, logging to /home/hadoop/hadoop-2.2.0/logs/yarn-hadoop-resourcemanager-mdw.out
slave2: starting nodemanager, logging to /home/hadoop/hadoop-2.2.0/logs/yarn-hadoop-nodemanager-sdw2.out
slave1: starting nodemanager, logging to /home/hadoop/hadoop-2.2.0/logs/yarn-hadoop-nodemanager-sdw1.out

jps查看进程
[hadoop@mdw ~]$ jps
7050 NameNode
7650 Jps
7408 ResourceManager
7189 SecondaryNameNode

[hadoop@sdw1 ~]$ jps
4587 DataNode
4735 NodeManager
4853 Jps

[hadoop@sdw2 ~]$ jps
4861 Jps
4603 DataNode
4743 NodeManager


可以登录Web控制台,查看ResourceManager状态: http://192.168.10.200:8088

到目前为止,基本能说明hadoop-2.2.0已成功安装,后续可再使用wordcount程序进一步测试








版权声明:本文为博主原创文章,转载请注明本文链接。